mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Remove old sockets after error.
This commit is contained in:
		
							
								
								
									
										1
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								TODO
									
									
									
									
									
								
							@@ -14,3 +14,4 @@
 | 
				
			|||||||
- mouse handling and some other bits elinks needs
 | 
					- mouse handling and some other bits elinks needs
 | 
				
			||||||
- scrollback
 | 
					- scrollback
 | 
				
			||||||
- server doesn't handle SIGTERM anymore...
 | 
					- server doesn't handle SIGTERM anymore...
 | 
				
			||||||
 | 
					- sleep(1) to wait for server frankly sucks
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								tmux.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								tmux.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: tmux.c,v 1.4 2007-08-27 13:53:55 nicm Exp $ */
 | 
					/* $Id: tmux.c,v 1.5 2007-08-28 08:30:36 nicm Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
					 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
				
			||||||
@@ -155,6 +155,8 @@ main(int argc, char **argv)
 | 
				
			|||||||
	xfree(path);
 | 
						xfree(path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Start server if necessary. */
 | 
						/* Start server if necessary. */
 | 
				
			||||||
 | 
						n = 0;
 | 
				
			||||||
 | 
					restart:
 | 
				
			||||||
	if (stat(socket_path, &sb) != 0) {
 | 
						if (stat(socket_path, &sb) != 0) {
 | 
				
			||||||
		if (errno != ENOENT)
 | 
							if (errno != ENOENT)
 | 
				
			||||||
			err(1, "%s", socket_path);
 | 
								err(1, "%s", socket_path);
 | 
				
			||||||
@@ -169,8 +171,13 @@ main(int argc, char **argv)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Connect to server. */
 | 
						/* Connect to server. */
 | 
				
			||||||
	if ((server_fd = connect_server()) == -1)
 | 
						if ((server_fd = connect_server()) == -1) {
 | 
				
			||||||
 | 
							if (errno == ECONNREFUSED && n++ < 5) {
 | 
				
			||||||
 | 
								unlink(socket_path);
 | 
				
			||||||
 | 
								goto restart;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		errx(1, "couldn't find server");
 | 
							errx(1, "couldn't find server");
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if ((mode = fcntl(server_fd, F_GETFL)) == -1)
 | 
						if ((mode = fcntl(server_fd, F_GETFL)) == -1)
 | 
				
			||||||
		err(1, "fcntl");
 | 
							err(1, "fcntl");
 | 
				
			||||||
	if (fcntl(server_fd, F_SETFL, mode|O_NONBLOCK) == -1)
 | 
						if (fcntl(server_fd, F_SETFL, mode|O_NONBLOCK) == -1)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user