version 1.122, 2017/07/12 09:24:17 |
version 1.123, 2017/07/14 18:49:07 |
|
|
if (client_exittype == MSG_EXEC) { |
if (client_exittype == MSG_EXEC) { |
if (client_flags & CLIENT_CONTROLCONTROL) |
if (client_flags & CLIENT_CONTROLCONTROL) |
tcsetattr(STDOUT_FILENO, TCSAFLUSH, &saved_tio); |
tcsetattr(STDOUT_FILENO, TCSAFLUSH, &saved_tio); |
proc_clear_signals(client_proc); |
|
client_exec(client_execshell, client_execcmd); |
client_exec(client_execshell, client_execcmd); |
} |
} |
|
|
|
|
xasprintf(&argv0, "%s", name); |
xasprintf(&argv0, "%s", name); |
setenv("SHELL", shell, 1); |
setenv("SHELL", shell, 1); |
|
|
|
proc_clear_signals(client_proc, 1); |
|
|
setblocking(STDIN_FILENO, 1); |
setblocking(STDIN_FILENO, 1); |
setblocking(STDOUT_FILENO, 1); |
setblocking(STDOUT_FILENO, 1); |
setblocking(STDERR_FILENO, 1); |
setblocking(STDERR_FILENO, 1); |
|
|
if (datalen == 0 || data[datalen - 1] != '\0') |
if (datalen == 0 || data[datalen - 1] != '\0') |
fatalx("bad MSG_SHELL string"); |
fatalx("bad MSG_SHELL string"); |
|
|
proc_clear_signals(client_proc); |
|
client_exec(data, shell_command); |
client_exec(data, shell_command); |
/* NOTREACHED */ |
/* NOTREACHED */ |
case MSG_DETACH: |
case MSG_DETACH: |