houskeeping
git-svn-id: svn://svn.berlios.de/openocd/trunk@1255 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
ff2cb7714f
commit
bb56339761
|
@ -419,60 +419,6 @@ static int zylinjtag_Jim_Command_reboot(Jim_Interp *interp, int argc,
|
||||||
return JIM_OK;
|
return JIM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int zylinjtag_Jim_Command_mac(Jim_Interp *interp, int argc,
|
|
||||||
Jim_Obj * const *argv)
|
|
||||||
{
|
|
||||||
|
|
||||||
Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
|
|
||||||
|
|
||||||
Jim_AppendString(httpstate.jim_interp, tclOutput, hwaddr, strlen(hwaddr));
|
|
||||||
|
|
||||||
Jim_SetResult(interp, tclOutput);
|
|
||||||
|
|
||||||
return JIM_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int zylinjtag_Jim_Command_ip(Jim_Interp *interp, int argc,
|
|
||||||
Jim_Obj * const *argv)
|
|
||||||
{
|
|
||||||
Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
|
|
||||||
|
|
||||||
struct ifaddrs *ifa = NULL, *ifp = NULL;
|
|
||||||
|
|
||||||
if (getifaddrs(&ifp) < 0)
|
|
||||||
{
|
|
||||||
return JIM_ERR;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (ifa = ifp; ifa; ifa = ifa->ifa_next)
|
|
||||||
{
|
|
||||||
char ip[200];
|
|
||||||
socklen_t salen;
|
|
||||||
|
|
||||||
if (ifa->ifa_addr->sa_family == AF_INET)
|
|
||||||
salen = sizeof(struct sockaddr_in);
|
|
||||||
else if (ifa->ifa_addr->sa_family == AF_INET6)
|
|
||||||
salen = sizeof(struct sockaddr_in6);
|
|
||||||
else
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (getnameinfo(ifa->ifa_addr, salen, ip, sizeof(ip), NULL, 0,
|
|
||||||
NI_NUMERICHOST) < 0)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Jim_AppendString(httpstate.jim_interp, tclOutput, ip, strlen(ip));
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
freeifaddrs(ifp);
|
|
||||||
|
|
||||||
Jim_SetResult(interp, tclOutput);
|
|
||||||
|
|
||||||
return JIM_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern Jim_Interp *interp;
|
extern Jim_Interp *interp;
|
||||||
|
|
||||||
|
@ -506,10 +452,6 @@ static void zylinjtag_startNetwork()
|
||||||
zylinjtag_Jim_Command_reboot, NULL, NULL);
|
zylinjtag_Jim_Command_reboot, NULL, NULL);
|
||||||
Jim_CreateCommand(httpstate.jim_interp, "threads",
|
Jim_CreateCommand(httpstate.jim_interp, "threads",
|
||||||
zylinjtag_Jim_Command_threads, NULL, NULL);
|
zylinjtag_Jim_Command_threads, NULL, NULL);
|
||||||
Jim_CreateCommand(httpstate.jim_interp, "mac", zylinjtag_Jim_Command_mac,
|
|
||||||
NULL, NULL);
|
|
||||||
Jim_CreateCommand(httpstate.jim_interp, "ip", zylinjtag_Jim_Command_ip,
|
|
||||||
NULL, NULL);
|
|
||||||
Jim_CreateCommand(httpstate.jim_interp, "format_jffs2",
|
Jim_CreateCommand(httpstate.jim_interp, "format_jffs2",
|
||||||
zylinjtag_Jim_Command_format_jffs2, NULL, NULL);
|
zylinjtag_Jim_Command_format_jffs2, NULL, NULL);
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include <ifaddrs.h>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -557,6 +559,120 @@ zylinjtag_Jim_Command_poke(Jim_Interp *interp,
|
||||||
return JIM_OK;
|
return JIM_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* not so pretty code to fish out ip number*/
|
||||||
|
static int zylinjtag_Jim_Command_ip(Jim_Interp *interp, int argc,
|
||||||
|
Jim_Obj * const *argv)
|
||||||
|
{
|
||||||
|
Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
|
||||||
|
|
||||||
|
struct ifaddrs *ifa = NULL, *ifp = NULL;
|
||||||
|
|
||||||
|
if (getifaddrs(&ifp) < 0)
|
||||||
|
{
|
||||||
|
return JIM_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ifa = ifp; ifa; ifa = ifa->ifa_next)
|
||||||
|
{
|
||||||
|
char ip[200];
|
||||||
|
socklen_t salen;
|
||||||
|
|
||||||
|
if (ifa->ifa_addr->sa_family == AF_INET)
|
||||||
|
salen = sizeof(struct sockaddr_in);
|
||||||
|
else if (ifa->ifa_addr->sa_family == AF_INET6)
|
||||||
|
salen = sizeof(struct sockaddr_in6);
|
||||||
|
else
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (getnameinfo(ifa->ifa_addr, salen, ip, sizeof(ip), NULL, 0,
|
||||||
|
NI_NUMERICHOST) < 0)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Jim_AppendString(interp, tclOutput, ip, strlen(ip));
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
freeifaddrs(ifp);
|
||||||
|
|
||||||
|
Jim_SetResult(interp, tclOutput);
|
||||||
|
|
||||||
|
return JIM_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* not so pretty code to fish out eth0 mac address */
|
||||||
|
static int zylinjtag_Jim_Command_mac(Jim_Interp *interp, int argc,
|
||||||
|
Jim_Obj * const *argv)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
struct ifreq *ifr, *ifend;
|
||||||
|
struct ifreq ifreq;
|
||||||
|
struct ifconf ifc;
|
||||||
|
struct ifreq ifs[5];
|
||||||
|
int SockFD;
|
||||||
|
|
||||||
|
SockFD = socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
|
if (SockFD < 0)
|
||||||
|
{
|
||||||
|
return JIM_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
ifc.ifc_len = sizeof(ifs);
|
||||||
|
ifc.ifc_req = ifs;
|
||||||
|
if (ioctl(SockFD, SIOCGIFCONF, &ifc) < 0)
|
||||||
|
{
|
||||||
|
close(SockFD);
|
||||||
|
return JIM_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
ifend = ifs + (ifc.ifc_len / sizeof(struct ifreq));
|
||||||
|
for (ifr = ifc.ifc_req; ifr < ifend; ifr++)
|
||||||
|
{
|
||||||
|
//if (ifr->ifr_addr.sa_family == AF_INET)
|
||||||
|
{
|
||||||
|
if (strcmp("eth0", ifr->ifr_name)!=0)
|
||||||
|
continue;
|
||||||
|
strncpy(ifreq.ifr_name, ifr->ifr_name, sizeof(ifreq.ifr_name));
|
||||||
|
if (ioctl(SockFD, SIOCGIFHWADDR, &ifreq) < 0)
|
||||||
|
{
|
||||||
|
close(SockFD);
|
||||||
|
return JIM_ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
close(SockFD);
|
||||||
|
|
||||||
|
|
||||||
|
Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
|
||||||
|
|
||||||
|
char buffer[256];
|
||||||
|
sprintf(buffer, "%02x-%02x-%02x-%02x-%02x-%02x",
|
||||||
|
ifreq.ifr_hwaddr.sa_data[0]&0xff,
|
||||||
|
ifreq.ifr_hwaddr.sa_data[1]&0xff,
|
||||||
|
ifreq.ifr_hwaddr.sa_data[2]&0xff,
|
||||||
|
ifreq.ifr_hwaddr.sa_data[3]&0xff,
|
||||||
|
ifreq.ifr_hwaddr.sa_data[4]&0xff,
|
||||||
|
ifreq.ifr_hwaddr.sa_data[5]&0xff);
|
||||||
|
|
||||||
|
Jim_AppendString(interp, tclOutput, buffer, strlen(buffer));
|
||||||
|
|
||||||
|
Jim_SetResult(interp, tclOutput);
|
||||||
|
|
||||||
|
return JIM_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close(SockFD);
|
||||||
|
|
||||||
|
return JIM_ERR;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int ioutil_init(struct command_context_s *cmd_ctx)
|
int ioutil_init(struct command_context_s *cmd_ctx)
|
||||||
{
|
{
|
||||||
register_command(cmd_ctx, NULL, "rm", handle_rm_command, COMMAND_ANY,
|
register_command(cmd_ctx, NULL, "rm", handle_rm_command, COMMAND_ANY,
|
||||||
|
@ -583,6 +699,11 @@ int ioutil_init(struct command_context_s *cmd_ctx)
|
||||||
Jim_CreateCommand(interp, "poke", zylinjtag_Jim_Command_poke, NULL, NULL);
|
Jim_CreateCommand(interp, "poke", zylinjtag_Jim_Command_poke, NULL, NULL);
|
||||||
Jim_CreateCommand(interp, "ls", zylinjtag_Jim_Command_ls, NULL, NULL);
|
Jim_CreateCommand(interp, "ls", zylinjtag_Jim_Command_ls, NULL, NULL);
|
||||||
|
|
||||||
|
Jim_CreateCommand(interp, "mac", zylinjtag_Jim_Command_mac,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
|
Jim_CreateCommand(interp, "ip", zylinjtag_Jim_Command_ip,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -626,7 +626,7 @@ int telnet_register_commands(command_context_t *command_context)
|
||||||
COMMAND_EXEC, "exit telnet session");
|
COMMAND_EXEC, "exit telnet session");
|
||||||
|
|
||||||
register_command(command_context, NULL, "telnet_port", handle_telnet_port_command,
|
register_command(command_context, NULL, "telnet_port", handle_telnet_port_command,
|
||||||
COMMAND_CONFIG, "port on which to listen for incoming telnet connections");
|
COMMAND_ANY, "port on which to listen for incoming telnet connections");
|
||||||
|
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue