diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-11-11 08:00:42 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-11-11 08:00:42 +0000 |
commit | 2756437f4bd1c0def6877e3742f018b3fbb721da (patch) | |
tree | 77a50265b96bff13535689934a1c597487d96406 | |
parent | 15b9946a4094d22f3bde6ef5af67fbb526807329 (diff) | |
download | rtmux-2756437f4bd1c0def6877e3742f018b3fbb721da.tar.gz rtmux-2756437f4bd1c0def6877e3742f018b3fbb721da.tar.bz2 rtmux-2756437f4bd1c0def6877e3742f018b3fbb721da.zip |
Only need to chmod +x or -x the socket when a client is created, lost or
attached, rather than every event loop.
-rw-r--r-- | cmd-attach-session.c | 1 | ||||
-rw-r--r-- | cmd-new-session.c | 1 | ||||
-rw-r--r-- | server-client.c | 1 | ||||
-rw-r--r-- | server.c | 9 | ||||
-rw-r--r-- | tmux.h | 1 |
5 files changed, 7 insertions, 6 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c index 92be3085..59c2b479 100644 --- a/cmd-attach-session.c +++ b/cmd-attach-session.c @@ -101,6 +101,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx) server_redraw_client(ctx->cmdclient); } recalculate_sizes(); + server_update_socket(); return (1); /* 1 means don't tell command client to exit */ } diff --git a/cmd-new-session.c b/cmd-new-session.c index 4889ab4b..a9657a97 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -277,6 +277,7 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) } } recalculate_sizes(); + server_update_socket(); return (!detached); /* 1 means don't tell command client to exit */ } diff --git a/server-client.c b/server-client.c index dd386001..b5d29b7b 100644 --- a/server-client.c +++ b/server-client.c @@ -156,6 +156,7 @@ server_client_lost(struct client *c) c->flags |= CLIENT_DEAD; recalculate_sizes(); + server_update_socket(); } /* Process a single client event. */ @@ -59,7 +59,6 @@ void server_loop(void); int server_should_shutdown(void); void server_send_shutdown(void); void server_clean_dead(void); -int server_update_socket(void); void server_accept_callback(int, short, void *); void server_signal_callback(int, short, void *); void server_child_signal(void); @@ -105,6 +104,8 @@ server_create_socket(void) if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) fatal("fcntl failed"); + server_update_socket(); + return (fd); } @@ -208,8 +209,6 @@ void server_loop(void) { while (!server_should_shutdown()) { - server_update_socket(); - event_loop(EVLOOP_ONCE); server_window_loop(); @@ -288,7 +287,7 @@ server_clean_dead(void) } /* Update socket execute permissions based on whether sessions are attached. */ -int +void server_update_socket(void) { struct session *s; @@ -312,8 +311,6 @@ server_update_socket(void) else chmod(socket_path, S_IRUSR|S_IWUSR); } - - return (n); } /* Callback for server socket. */ @@ -1557,6 +1557,7 @@ extern struct clients dead_clients; int server_start(char *); void server_signal_set(void); void server_signal_clear(void); +void server_update_socket(void); /* server-client.c */ void server_client_create(int); |