version 1.1.1.1.2.7, 2011/10/14 07:47:21
|
version 1.1.1.1.2.8, 2011/10/14 12:03:10
|
Line 174 fdTx(sched_task_t *task)
|
Line 174 fdTx(sched_task_t *task)
|
if (proc->proc_flg != ANSH_FLG_CPOUT || !proc->proc_pid) |
if (proc->proc_flg != ANSH_FLG_CPOUT || !proc->proc_pid) |
return NULL; |
return NULL; |
|
|
|
/* |
if (waitpid(proc->proc_pid, &wlen, WNOHANG)) { |
if (waitpid(proc->proc_pid, &wlen, WNOHANG)) { |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
Line 186 fdTx(sched_task_t *task)
|
Line 187 fdTx(sched_task_t *task)
|
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
return NULL; |
return NULL; |
} |
} |
|
*/ |
|
|
/* if Timeout defined, disarm timer */ |
/* if Timeout defined, disarm timer */ |
if (Timeout) |
if (Timeout) |
Line 196 fdTx(sched_task_t *task)
|
Line 198 fdTx(sched_task_t *task)
|
case -1: |
case -1: |
ERR("write2tty #%d - %s", errno, strerror(errno)); |
ERR("write2tty #%d - %s", errno, strerror(errno)); |
/* exit from shell and release tty */ |
/* exit from shell and release tty */ |
|
/* |
waitpid(proc->proc_pid, &wlen, 0); |
waitpid(proc->proc_pid, &wlen, 0); |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
Line 206 fdTx(sched_task_t *task)
|
Line 209 fdTx(sched_task_t *task)
|
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
|
|
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
|
*/ |
return NULL; |
return NULL; |
default: |
default: |
proc->proc_flg = ANSH_FLG_OK; |
proc->proc_flg = ANSH_FLG_OK; |
Line 236 fdRx(sched_task_t *task)
|
Line 240 fdRx(sched_task_t *task)
|
if (!proc->proc_pid) |
if (!proc->proc_pid) |
return NULL; |
return NULL; |
|
|
|
/* |
if (waitpid(proc->proc_pid, &rlen, WNOHANG)) { |
if (waitpid(proc->proc_pid, &rlen, WNOHANG)) { |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
Line 248 fdRx(sched_task_t *task)
|
Line 253 fdRx(sched_task_t *task)
|
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
return NULL; |
return NULL; |
} |
} |
|
*/ |
|
|
/* if Timeout defined, disarm timer */ |
/* if Timeout defined, disarm timer */ |
if (Timeout) |
if (Timeout) |
Line 261 fdRx(sched_task_t *task)
|
Line 267 fdRx(sched_task_t *task)
|
ERR("readtty #%d - %s", errno, strerror(errno)); |
ERR("readtty #%d - %s", errno, strerror(errno)); |
case 0: |
case 0: |
/* exit from shell and release tty */ |
/* exit from shell and release tty */ |
|
/* |
waitpid(proc->proc_pid, &rlen, 0); |
waitpid(proc->proc_pid, &rlen, 0); |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
ioFreePTY(TASK_FD(task), proc->proc_ttyname); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
Line 272 fdRx(sched_task_t *task)
|
Line 279 fdRx(sched_task_t *task)
|
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
|
|
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
schedCallOnce(TASK_ROOT(task), pktTx, proc, proc->proc_sock); |
|
*/ |
return NULL; |
return NULL; |
default: |
default: |
proc->proc_flg = ANSH_FLG_OK; |
proc->proc_flg = ANSH_FLG_OK; |