diff options
author | nicm <nicm> | 2013-10-20 17:28:43 +0000 |
---|---|---|
committer | nicm <nicm> | 2013-10-20 17:28:43 +0000 |
commit | bf35441608b05d52627215aa70bd52d9460812d4 (patch) | |
tree | bfca70f3b3a04d09511654a960fa5389cde22d37 /server-client.c | |
parent | f52eac62259c431daac84ddb6c2a5b7ebd528c2c (diff) | |
download | rtmux-bf35441608b05d52627215aa70bd52d9460812d4.tar.gz rtmux-bf35441608b05d52627215aa70bd52d9460812d4.tar.bz2 rtmux-bf35441608b05d52627215aa70bd52d9460812d4.zip |
Do not run any command line command from the client which starts the
server until after the configuration file completes. This prevents it
racing against run-shell or if-shell in .tmux.conf that run in the
background.
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/server-client.c b/server-client.c index b6d4870d..82d840a0 100644 --- a/server-client.c +++ b/server-client.c @@ -155,8 +155,8 @@ server_client_lost(struct client *c) free(c->ttyname); free(c->term); - evbuffer_free (c->stdin_data); - evbuffer_free (c->stdout_data); + evbuffer_free(c->stdin_data); + evbuffer_free(c->stdout_data); if (c->stderr_data != c->stdout_data) evbuffer_free (c->stderr_data); @@ -932,7 +932,10 @@ server_client_msg_command(struct client *c, struct imsg *imsg) } cmd_free_argv(argc, argv); - cmdq_run(c->cmdq, cmdlist); + if (c != cfg_client || cfg_finished) + cmdq_run(c->cmdq, cmdlist); + else + cmdq_append(c->cmdq, cmdlist); cmd_list_free(cmdlist); return; |