version 1.106, 2015/11/18 14:27:44 |
version 1.107, 2015/11/24 22:04:36 |
|
|
event_set(&client_stdin, STDIN_FILENO, EV_READ|EV_PERSIST, |
event_set(&client_stdin, STDIN_FILENO, EV_READ|EV_PERSIST, |
client_stdin_callback, NULL); |
client_stdin_callback, NULL); |
if (client_flags & CLIENT_CONTROLCONTROL) { |
if (client_flags & CLIENT_CONTROLCONTROL) { |
if (tcgetattr(STDIN_FILENO, &saved_tio) != 0) { |
if (tcgetattr(STDIN_FILENO, &saved_tio) != 0) |
fprintf(stderr, "tcgetattr failed: %s\n", |
fatal("tcgetattr failed"); |
strerror(errno)); |
|
return (1); |
|
} |
|
cfmakeraw(&tio); |
cfmakeraw(&tio); |
tio.c_iflag = ICRNL|IXANY; |
tio.c_iflag = ICRNL|IXANY; |
tio.c_oflag = OPOST|ONLCR; |
tio.c_oflag = OPOST|ONLCR; |
|
|
s = ""; |
s = ""; |
proc_send(client_peer, MSG_IDENTIFY_TERM, -1, s, strlen(s) + 1); |
proc_send(client_peer, MSG_IDENTIFY_TERM, -1, s, strlen(s) + 1); |
|
|
proc_send(client_peer, MSG_IDENTIFY_TTYNAME, -1, ttynam, strlen(ttynam) + 1); |
proc_send(client_peer, MSG_IDENTIFY_TTYNAME, -1, ttynam, |
|
strlen(ttynam) + 1); |
proc_send(client_peer, MSG_IDENTIFY_CWD, -1, cwd, strlen(cwd) + 1); |
proc_send(client_peer, MSG_IDENTIFY_CWD, -1, cwd, strlen(cwd) + 1); |
|
|
if ((fd = dup(STDIN_FILENO)) == -1) |
if ((fd = dup(STDIN_FILENO)) == -1) |
|
|
|
|
for (ss = environ; *ss != NULL; ss++) { |
for (ss = environ; *ss != NULL; ss++) { |
sslen = strlen(*ss) + 1; |
sslen = strlen(*ss) + 1; |
if (sslen <= MAX_IMSGSIZE - IMSG_HEADER_SIZE) |
if (sslen > MAX_IMSGSIZE - IMSG_HEADER_SIZE) |
proc_send(client_peer, MSG_IDENTIFY_ENVIRON, -1, *ss, sslen); |
continue; |
|
proc_send(client_peer, MSG_IDENTIFY_ENVIRON, -1, *ss, sslen); |
} |
} |
|
|
proc_send(client_peer, MSG_IDENTIFY_DONE, -1, NULL, 0); |
proc_send(client_peer, MSG_IDENTIFY_DONE, -1, NULL, 0); |