version 1.70, 2018/06/06 18:22:41 |
version 1.71, 2018/06/09 03:01:12 |
|
|
{ |
{ |
Buffer m; |
Buffer m; |
char *e, *term; |
char *e, *term; |
u_int i, rid, sid, esid, exitval, type, exitval_seen; |
u_int rid, sid, esid, exitval, type, exitval_seen; |
extern char **environ; |
extern char **environ; |
int devnull, rawmode; |
int i, devnull, rawmode; |
|
|
debug3("%s: entering", __func__); |
debug3("%s: entering", __func__); |
|
|
|
|
buffer_put_cstring(&m, term == NULL ? "" : term); |
buffer_put_cstring(&m, term == NULL ? "" : term); |
buffer_put_string(&m, buffer_ptr(&command), buffer_len(&command)); |
buffer_put_string(&m, buffer_ptr(&command), buffer_len(&command)); |
|
|
|
/* Pass environment */ |
if (options.num_send_env > 0 && environ != NULL) { |
if (options.num_send_env > 0 && environ != NULL) { |
/* Pass environment */ |
|
for (i = 0; environ[i] != NULL; i++) { |
for (i = 0; environ[i] != NULL; i++) { |
if (env_permitted(environ[i])) { |
if (env_permitted(environ[i])) { |
buffer_put_cstring(&m, environ[i]); |
buffer_put_cstring(&m, environ[i]); |
} |
} |
} |
} |
} |
} |
|
for (i = 0; i < options.num_setenv; i++) |
|
buffer_put_cstring(&m, options.setenv[i]); |
|
|
if (mux_client_write_packet(fd, &m) != 0) |
if (mux_client_write_packet(fd, &m) != 0) |
fatal("%s: write packet: %s", __func__, strerror(errno)); |
fatal("%s: write packet: %s", __func__, strerror(errno)); |