aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2013-10-06 00:28:35 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2013-10-06 00:28:35 +0100
commitf141e9b37a8d8a0c89c4f74137df9e5088b4b7af (patch)
tree88b623f63240deb4169f965f97ac68c65bad36a9 /server-client.c
parent3fba377ddd6fd234c614b53d5402153c6489b505 (diff)
downloadrtmux-f141e9b37a8d8a0c89c4f74137df9e5088b4b7af.tar.gz
rtmux-f141e9b37a8d8a0c89c4f74137df9e5088b4b7af.tar.bz2
rtmux-f141e9b37a8d8a0c89c4f74137df9e5088b4b7af.zip
Instead of fixed size buffers for some messages, send only the string length.
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/server-client.c b/server-client.c
index 41d1bb22..31a286b7 100644
--- a/server-client.c
+++ b/server-client.c
@@ -695,8 +695,6 @@ server_client_repeat_timer(unused int fd, unused short events, void *data)
void
server_client_check_exit(struct client *c)
{
- struct msg_exit_data exitdata;
-
if (!(c->flags & CLIENT_EXIT))
return;
@@ -707,9 +705,7 @@ server_client_check_exit(struct client *c)
if (EVBUFFER_LENGTH(c->stderr_data) != 0)
return;
- exitdata.retcode = c->retval;
- server_write_client(c, MSG_EXIT, &exitdata, sizeof exitdata);
-
+ server_write_client(c, MSG_EXIT, &c->retval, sizeof c->retval);
c->flags &= ~CLIENT_EXIT;
}
@@ -995,16 +991,12 @@ server_client_msg_identify(
void
server_client_msg_shell(struct client *c)
{
- struct msg_shell_data data;
- const char *shell;
+ const char *shell;
shell = options_get_string(&global_s_options, "default-shell");
-
if (*shell == '\0' || areshell(shell))
shell = _PATH_BSHELL;
- if (strlcpy(data.shell, shell, sizeof data.shell) >= sizeof data.shell)
- strlcpy(data.shell, _PATH_BSHELL, sizeof data.shell);
+ server_write_client(c, MSG_SHELL, shell, strlen(shell) + 1);
- server_write_client(c, MSG_SHELL, &data, sizeof data);
c->flags |= CLIENT_BAD; /* it will die after exec */
}