broadcast mac address in UDP hello message
git-svn-id: svn://svn.berlios.de/openocd/trunk@1152 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
parent
3de3de0b37
commit
6707cf5b9a
|
@ -119,6 +119,7 @@ void diag_write(char *buf, int len)
|
||||||
static bool serialLog = true;
|
static bool serialLog = true;
|
||||||
static bool writeLog = true;
|
static bool writeLog = true;
|
||||||
|
|
||||||
|
char hwaddr[512];
|
||||||
|
|
||||||
struct FastLoad
|
struct FastLoad
|
||||||
{
|
{
|
||||||
|
@ -1215,33 +1216,9 @@ zylinjtag_Jim_Command_mac(Jim_Interp *interp,
|
||||||
int argc,
|
int argc,
|
||||||
Jim_Obj * const *argv)
|
Jim_Obj * const *argv)
|
||||||
{
|
{
|
||||||
int s;
|
|
||||||
struct ifreq ifr;
|
|
||||||
s = socket(AF_INET, SOCK_DGRAM, 0);
|
|
||||||
if (s >= 0)
|
|
||||||
{
|
|
||||||
strcpy(ifr.ifr_name, "eth0");
|
|
||||||
int res;
|
|
||||||
res = ioctl(s, SIOCGIFHWADDR, &ifr);
|
|
||||||
close(s);
|
|
||||||
|
|
||||||
if (res < 0)
|
|
||||||
{
|
|
||||||
return JIM_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
|
Jim_Obj *tclOutput = Jim_NewStringObj(interp, "", 0);
|
||||||
|
|
||||||
char hwaddr[512];
|
|
||||||
sprintf(hwaddr, "%02x:%02x:%02x:%02x:%02x:%02x",
|
|
||||||
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[0],
|
|
||||||
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[1],
|
|
||||||
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[2],
|
|
||||||
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[3],
|
|
||||||
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[4],
|
|
||||||
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[5]);
|
|
||||||
|
|
||||||
Jim_AppendString(httpstate.jim_interp, tclOutput, hwaddr, strlen(hwaddr));
|
Jim_AppendString(httpstate.jim_interp, tclOutput, hwaddr, strlen(hwaddr));
|
||||||
|
|
||||||
Jim_SetResult(interp, tclOutput);
|
Jim_SetResult(interp, tclOutput);
|
||||||
|
@ -1295,6 +1272,7 @@ zylinjtag_Jim_Command_ip(Jim_Interp *interp,
|
||||||
|
|
||||||
extern Jim_Interp *interp;
|
extern Jim_Interp *interp;
|
||||||
|
|
||||||
|
|
||||||
static void zylinjtag_startNetwork()
|
static void zylinjtag_startNetwork()
|
||||||
{
|
{
|
||||||
// Bring TCP/IP up immediately before we're ready to accept commands.
|
// Bring TCP/IP up immediately before we're ready to accept commands.
|
||||||
|
@ -1337,6 +1315,34 @@ static void zylinjtag_startNetwork()
|
||||||
|
|
||||||
diag_printf("Web server running\n");
|
diag_printf("Web server running\n");
|
||||||
|
|
||||||
|
int s;
|
||||||
|
struct ifreq ifr;
|
||||||
|
s = socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
|
if (s >= 0)
|
||||||
|
{
|
||||||
|
strcpy(ifr.ifr_name, "eth0");
|
||||||
|
int res;
|
||||||
|
res = ioctl(s, SIOCGIFHWADDR, &ifr);
|
||||||
|
close(s);
|
||||||
|
|
||||||
|
if (res < 0)
|
||||||
|
{
|
||||||
|
diag_printf("Can't obtain MAC address\n");
|
||||||
|
reboot();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(hwaddr, "%02x:%02x:%02x:%02x:%02x:%02x",
|
||||||
|
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[0],
|
||||||
|
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[1],
|
||||||
|
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[2],
|
||||||
|
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[3],
|
||||||
|
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[4],
|
||||||
|
(int) ((unsigned char *) &ifr.ifr_hwaddr.sa_data)[5]);
|
||||||
|
|
||||||
|
|
||||||
|
discover_message=alloc_printf("ZY1000 Zylin JTAG debugger MAC %s", hwaddr);
|
||||||
|
|
||||||
discover_launch();
|
discover_launch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue