mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Only need to chmod +x or -x the socket when a client is created, lost or
attached, rather than every event loop.
This commit is contained in:
		| @@ -101,6 +101,7 @@ cmd_attach_session_exec(struct cmd *self, struct cmd_ctx *ctx) | |||||||
| 		server_redraw_client(ctx->cmdclient); | 		server_redraw_client(ctx->cmdclient); | ||||||
| 	} | 	} | ||||||
| 	recalculate_sizes(); | 	recalculate_sizes(); | ||||||
|  | 	server_update_socket(); | ||||||
|  |  | ||||||
| 	return (1);	/* 1 means don't tell command client to exit */ | 	return (1);	/* 1 means don't tell command client to exit */ | ||||||
| } | } | ||||||
|   | |||||||
| @@ -277,6 +277,7 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	recalculate_sizes(); | 	recalculate_sizes(); | ||||||
|  | 	server_update_socket(); | ||||||
|  |  | ||||||
| 	return (!detached);	/* 1 means don't tell command client to exit */ | 	return (!detached);	/* 1 means don't tell command client to exit */ | ||||||
| } | } | ||||||
|   | |||||||
| @@ -156,6 +156,7 @@ server_client_lost(struct client *c) | |||||||
| 	c->flags |= CLIENT_DEAD; | 	c->flags |= CLIENT_DEAD; | ||||||
|  |  | ||||||
| 	recalculate_sizes(); | 	recalculate_sizes(); | ||||||
|  | 	server_update_socket(); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Process a single client event. */ | /* Process a single client event. */ | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								server.c
									
									
									
									
									
								
							| @@ -59,7 +59,6 @@ void		 server_loop(void); | |||||||
| int		 server_should_shutdown(void); | int		 server_should_shutdown(void); | ||||||
| void		 server_send_shutdown(void); | void		 server_send_shutdown(void); | ||||||
| void		 server_clean_dead(void); | void		 server_clean_dead(void); | ||||||
| int		 server_update_socket(void); |  | ||||||
| void		 server_accept_callback(int, short, void *); | void		 server_accept_callback(int, short, void *); | ||||||
| void		 server_signal_callback(int, short, void *); | void		 server_signal_callback(int, short, void *); | ||||||
| void		 server_child_signal(void); | void		 server_child_signal(void); | ||||||
| @@ -105,6 +104,8 @@ server_create_socket(void) | |||||||
| 	if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) | 	if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) | ||||||
| 		fatal("fcntl failed"); | 		fatal("fcntl failed"); | ||||||
|  |  | ||||||
|  | 	server_update_socket(); | ||||||
|  |  | ||||||
| 	return (fd); | 	return (fd); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -208,8 +209,6 @@ void | |||||||
| server_loop(void) | server_loop(void) | ||||||
| { | { | ||||||
| 	while (!server_should_shutdown()) { | 	while (!server_should_shutdown()) { | ||||||
| 		server_update_socket(); |  | ||||||
|  |  | ||||||
| 		event_loop(EVLOOP_ONCE); | 		event_loop(EVLOOP_ONCE); | ||||||
|  |  | ||||||
| 		server_window_loop(); | 		server_window_loop(); | ||||||
| @@ -288,7 +287,7 @@ server_clean_dead(void) | |||||||
| } | } | ||||||
|  |  | ||||||
| /* Update socket execute permissions based on whether sessions are attached. */ | /* Update socket execute permissions based on whether sessions are attached. */ | ||||||
| int | void | ||||||
| server_update_socket(void) | server_update_socket(void) | ||||||
| { | { | ||||||
| 	struct session	*s; | 	struct session	*s; | ||||||
| @@ -312,8 +311,6 @@ server_update_socket(void) | |||||||
| 		else | 		else | ||||||
| 			chmod(socket_path, S_IRUSR|S_IWUSR); | 			chmod(socket_path, S_IRUSR|S_IWUSR); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return (n); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Callback for server socket. */ | /* Callback for server socket. */ | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.h
									
									
									
									
									
								
							| @@ -1557,6 +1557,7 @@ extern struct clients dead_clients; | |||||||
| int	 server_start(char *); | int	 server_start(char *); | ||||||
| void	 server_signal_set(void); | void	 server_signal_set(void); | ||||||
| void	 server_signal_clear(void); | void	 server_signal_clear(void); | ||||||
|  | void	 server_update_socket(void); | ||||||
|  |  | ||||||
| /* server-client.c */ | /* server-client.c */ | ||||||
| void	 server_client_create(int); | void	 server_client_create(int); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicholas Marriott
					Nicholas Marriott