version 1.1.1.1.2.10, 2011/10/17 09:28:19
|
version 1.3.2.1, 2012/01/23 16:13:07
|
Line 133 pktRx(sched_task_t *task)
|
Line 133 pktRx(sched_task_t *task)
|
proc->proc_rlen_[NET2FD] = rlen; |
proc->proc_rlen_[NET2FD] = rlen; |
memset(proc->proc_buf_[NET2FD], 0, proc->proc_blen); |
memset(proc->proc_buf_[NET2FD], 0, proc->proc_blen); |
memcpy(proc->proc_buf_[NET2FD], buf, proc->proc_rlen_[NET2FD]); |
memcpy(proc->proc_buf_[NET2FD], buf, proc->proc_rlen_[NET2FD]); |
schedWrite(TASK_ROOT(task), fdTx, proc, proc->proc_pty); | schedWrite(TASK_ROOT(task), fdTx, proc, proc->proc_pty, NULL, 0); |
end: |
end: |
free(buf); |
free(buf); |
schedRead(TASK_ROOT(task), pktRx, NULL, proc ? proc->proc_sock : TASK_FD(task)); | schedRead(TASK_ROOT(task), pktRx, NULL, proc ? proc->proc_sock : TASK_FD(task), NULL, 0); |
return NULL; |
return NULL; |
} |
} |
|
|
Line 159 fdTx(sched_task_t *task)
|
Line 159 fdTx(sched_task_t *task)
|
|
|
/* if Timeout defined, disarm timer */ |
/* if Timeout defined, disarm timer */ |
if (Timeout) |
if (Timeout) |
schedCancelby(TASK_ROOT(task), &TASK_ROOT(task)->root_timer, CRITERIA_CALL, TOfunc, NULL); | schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_CALL, TOfunc, NULL); |
|
|
wlen = write(TASK_FD(task), proc->proc_buf_[NET2FD], proc->proc_rlen_[NET2FD]); |
wlen = write(TASK_FD(task), proc->proc_buf_[NET2FD], proc->proc_rlen_[NET2FD]); |
switch (wlen) { |
switch (wlen) { |
Line 176 fdTx(sched_task_t *task)
|
Line 176 fdTx(sched_task_t *task)
|
/* if Timeout defined, go arm timer */ |
/* if Timeout defined, go arm timer */ |
if (Timeout) { |
if (Timeout) { |
tv.tv_sec = Timeout; |
tv.tv_sec = Timeout; |
schedTimer(TASK_ROOT(task), TOfunc, proc, tv); | schedTimer(TASK_ROOT(task), TOfunc, proc, tv, NULL, 0); |
} |
} |
return NULL; |
return NULL; |
} |
} |
Line 198 fdRx(sched_task_t *task)
|
Line 198 fdRx(sched_task_t *task)
|
|
|
/* if Timeout defined, disarm timer */ |
/* if Timeout defined, disarm timer */ |
if (Timeout) |
if (Timeout) |
schedCancelby(TASK_ROOT(task), &TASK_ROOT(task)->root_timer, CRITERIA_CALL, TOfunc, NULL); | schedCancelby(TASK_ROOT(task), taskTIMER, CRITERIA_CALL, TOfunc, NULL); |
|
|
memset(proc->proc_buf_[FD2NET], 0, proc->proc_blen); |
memset(proc->proc_buf_[FD2NET], 0, proc->proc_blen); |
rlen = read(TASK_FD(task), proc->proc_buf_[FD2NET], |
rlen = read(TASK_FD(task), proc->proc_buf_[FD2NET], |
Line 215 fdRx(sched_task_t *task)
|
Line 215 fdRx(sched_task_t *task)
|
} |
} |
VERB(3) LOG("Readed %d bytes - %s", rlen, proc->proc_buf_[FD2NET]); |
VERB(3) LOG("Readed %d bytes - %s", rlen, proc->proc_buf_[FD2NET]); |
|
|
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); | schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock, NULL, 0); |
schedRead(TASK_ROOT(task), fdRx, proc, proc->proc_pty); | schedRead(TASK_ROOT(task), fdRx, proc, proc->proc_pty, NULL, 0); |
|
|
/* if Timeout defined, go arm timer */ |
/* if Timeout defined, go arm timer */ |
if (Timeout) { |
if (Timeout) { |
tv.tv_sec = Timeout; |
tv.tv_sec = Timeout; |
schedTimer(TASK_ROOT(task), TOfunc, proc, tv); | schedTimer(TASK_ROOT(task), TOfunc, proc, tv, NULL, 0); |
} |
} |
return NULL; |
return NULL; |
} |
} |
Line 245 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
Line 245 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
case 0: |
case 0: |
printf("anshd ELWIX remote management system (%s)\n\n", proc->proc_ttyname); |
printf("anshd ELWIX remote management system (%s)\n\n", proc->proc_ttyname); |
strlcpy(str, "-hansh@", sizeof str); |
strlcpy(str, "-hansh@", sizeof str); |
io_ether_ntoa((const struct io_ether_addr*) &proc->proc_ea, str + 7, 18); | io_ether_ntoa((const io_ether_addr_t*) &proc->proc_ea, str + 7, 18); |
|
|
execl("/usr/bin/login", "login", str, NULL); |
execl("/usr/bin/login", "login", str, NULL); |
/* never reached */ |
/* never reached */ |
Line 255 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
Line 255 spawnLogin(sched_task_t *task, struct tagProc *proc)
|
fcntl(proc->proc_pty, F_SETFL, flg | O_NONBLOCK); |
fcntl(proc->proc_pty, F_SETFL, flg | O_NONBLOCK); |
|
|
VERB(3) LOG("Parent know child pid %d", proc->proc_pid); |
VERB(3) LOG("Parent know child pid %d", proc->proc_pid); |
schedRead(TASK_ROOT(task), fdRx, proc, proc->proc_pty); | schedRead(TASK_ROOT(task), fdRx, proc, proc->proc_pty, NULL, 0); |
|
|
/* if Timeout defined, go arm timer */ |
/* if Timeout defined, go arm timer */ |
if (Timeout) { |
if (Timeout) { |
tv.tv_sec = Timeout; |
tv.tv_sec = Timeout; |
schedTimer(TASK_ROOT(task), TOfunc, proc, tv); | schedTimer(TASK_ROOT(task), TOfunc, proc, tv, NULL, 0); |
} |
} |
break; |
break; |
} |
} |