main.c: remove set_signal_handler code duplication
This commit is contained in:
		
							parent
							
								
									8ba0ac4e86
								
							
						
					
					
						commit
						95b1a8ea06
					
				
							
								
								
									
										35
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								src/main.c
									
									
									
									
									
								
							| @ -271,6 +271,15 @@ done: | |||||||
|         return ret; |         return ret; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | static void setup_sig(int sig, signal_func *sigh, | ||||||
|  |                      const char* signame, const char* argv0) { | ||||||
|  |         if (set_signal_handler (sig, sigh) == SIG_ERR) { | ||||||
|  |                 fprintf (stderr, "%s: Could not set the \"%s\" signal.\n", | ||||||
|  |                          argv0, signame); | ||||||
|  |                 exit (EX_OSERR); | ||||||
|  |         } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| int | int | ||||||
| main (int argc, char **argv) | main (int argc, char **argv) | ||||||
| { | { | ||||||
| @ -338,11 +347,7 @@ main (int argc, char **argv) | |||||||
|                 makedaemon (); |                 makedaemon (); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if (set_signal_handler (SIGPIPE, SIG_IGN) == SIG_ERR) { |         setup_sig(SIGPIPE, SIG_IGN, "SIGPIPE", argv[0]); | ||||||
|                 fprintf (stderr, "%s: Could not set the \"SIGPIPE\" signal.\n", |  | ||||||
|                          argv[0]); |  | ||||||
|                 exit (EX_OSERR); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
| #ifdef FILTER_ENABLE | #ifdef FILTER_ENABLE | ||||||
|         if (config->filter) |         if (config->filter) | ||||||
| @ -380,23 +385,9 @@ main (int argc, char **argv) | |||||||
|         /* These signals are only for the parent process. */ |         /* These signals are only for the parent process. */ | ||||||
|         log_message (LOG_INFO, "Setting the various signals."); |         log_message (LOG_INFO, "Setting the various signals."); | ||||||
| 
 | 
 | ||||||
|         if (set_signal_handler (SIGCHLD, takesig) == SIG_ERR) { |         setup_sig (SIGCHLD, takesig, "SIGCHLD", argv[0]); | ||||||
|                 fprintf (stderr, "%s: Could not set the \"SIGCHLD\" signal.\n", |         setup_sig (SIGTERM, takesig, "SIGTERM", argv[0]); | ||||||
|                          argv[0]); |         if (daemonized) setup_sig (SIGHUP, takesig, "SIGHUP", argv[0]); | ||||||
|                 exit (EX_OSERR); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         if (set_signal_handler (SIGTERM, takesig) == SIG_ERR) { |  | ||||||
|                 fprintf (stderr, "%s: Could not set the \"SIGTERM\" signal.\n", |  | ||||||
|                          argv[0]); |  | ||||||
|                 exit (EX_OSERR); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         if (daemonized && set_signal_handler (SIGHUP, takesig) == SIG_ERR) { |  | ||||||
|                 fprintf (stderr, "%s: Could not set the \"SIGHUP\" signal.\n", |  | ||||||
|                          argv[0]); |  | ||||||
|                 exit (EX_OSERR); |  | ||||||
|         } |  | ||||||
| 
 | 
 | ||||||
|         /* Start the main loop */ |         /* Start the main loop */ | ||||||
|         log_message (LOG_INFO, "Starting main loop. Accepting connections."); |         log_message (LOG_INFO, "Starting main loop. Accepting connections."); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 rofl0r
						rofl0r