version 1.2, 2011/10/17 20:14:02
|
version 1.2.2.1, 2011/10/31 15:49:37
|
Line 83 void *
|
Line 83 void *
|
icmpRx(sched_task_t *task) |
icmpRx(sched_task_t *task) |
{ |
{ |
u_char *buf, *str; |
u_char *buf, *str; |
struct sockaddr sa; | io_sockaddr_t sa; |
int rlen, n = 0, salen = sizeof sa; |
int rlen, n = 0, salen = sizeof sa; |
struct tagProc *proc = NULL; |
struct tagProc *proc = NULL; |
char ret; |
char ret; |
Line 250 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
Line 250 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
int flg; |
int flg; |
struct timeval tv = { 0 }; |
struct timeval tv = { 0 }; |
char str[STRSIZ] = { 0 }; |
char str[STRSIZ] = { 0 }; |
struct sockaddr_in *sin; |
|
struct sockaddr_in6 *sin6; |
|
|
|
FTRACE(3); |
FTRACE(3); |
|
|
Line 266 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
Line 264 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
printf("ansh3d ELWIX remote management system over ICMP (%s)\n\n", |
printf("ansh3d ELWIX remote management system over ICMP (%s)\n\n", |
proc->proc_ttyname); |
proc->proc_ttyname); |
strlcpy(str, "-hansh3@", sizeof str); |
strlcpy(str, "-hansh3@", sizeof str); |
if (proc->proc_cli.sa_family == AF_INET) { | if (proc->proc_cli.sa.sa_family == AF_INET) |
sin = (struct sockaddr_in*) &proc->proc_cli; | inet_ntop(AF_INET, &proc->proc_cli.sin.sin_addr, str + 8, INET_ADDRSTRLEN); |
inet_ntop(AF_INET, &sin->sin_addr, str + 8, INET_ADDRSTRLEN); | else if (proc->proc_cli.sa.sa_family == AF_INET6) |
} else if (proc->proc_cli.sa_family == AF_INET6) { | inet_ntop(AF_INET6, &proc->proc_cli.sin6.sin6_addr, str + 8, INET6_ADDRSTRLEN); |
sin6 = (struct sockaddr_in6*) &proc->proc_cli; | |
inet_ntop(AF_INET6, &sin6->sin6_addr, str + 8, INET6_ADDRSTRLEN); | |
} | |
execl("/usr/bin/login", "login", str, NULL); |
execl("/usr/bin/login", "login", str, NULL); |
/* never reached */ |
/* never reached */ |
return -1; |
return -1; |