version 1.2.2.19, 2010/12/07 15:15:34
|
version 1.2.2.20, 2010/12/07 16:20:24
|
Line 1254 int
|
Line 1254 int
|
cliNetLoop(linebuffer_t * __restrict buffer, const char *csHistFile, int sock) |
cliNetLoop(linebuffer_t * __restrict buffer, const char *csHistFile, int sock) |
{ |
{ |
u_char buf[BUFSIZ]; |
u_char buf[BUFSIZ]; |
int pty, r, s, alen, flg, attrlen = 0, ret = 0; | int pid, stat, pty, r, s, alen, flg, attrlen = 0, ret = 0; |
fd_set fds; |
fd_set fds; |
struct timeval tv = { DEFAULT_SOCK_TIMEOUT, 0 }; |
struct timeval tv = { DEFAULT_SOCK_TIMEOUT, 0 }; |
struct telnetAttrs *a, Attr[10]; |
struct telnetAttrs *a, Attr[10]; |
|
|
switch (forkpty(&pty, NULL, NULL, NULL)) { | switch ((pid = forkpty(&pty, NULL, NULL, NULL))) { |
case -1: |
case -1: |
LOGERR; |
LOGERR; |
return -1; |
return -1; |
Line 1288 cliNetLoop(linebuffer_t * __restrict buffer, const cha
|
Line 1288 cliNetLoop(linebuffer_t * __restrict buffer, const cha
|
flg = 0; |
flg = 0; |
|
|
while (42) { |
while (42) { |
|
if (waitpid(pid, &stat, WNOHANG)) |
|
break; |
|
|
FD_ZERO(&fds); |
FD_ZERO(&fds); |
FD_SET(sock, &fds); |
FD_SET(sock, &fds); |
FD_SET(pty, &fds); |
FD_SET(pty, &fds); |
Line 1414 cliLoop(linebuffer_t * __restrict buffer, const char *
|
Line 1417 cliLoop(linebuffer_t * __restrict buffer, const char *
|
cli_Printf(buffer, "\nCommand '%s' not found!\n", items[0]); |
cli_Printf(buffer, "\nCommand '%s' not found!\n", items[0]); |
ret = -1; |
ret = -1; |
} else |
} else |
if (cmd->cmd_func) | if (cmd->cmd_func) { |
| cli_Printf(buffer, "\n"); |
ret = cmd->cmd_func(buffer, i, items); |
ret = cmd->cmd_func(buffer, i, items); |
else { | } else { |
clrscrEOL(buffer); |
clrscrEOL(buffer); |
printfCR(buffer, 1); |
printfCR(buffer, 1); |
} |
} |