[BACK]Return to server.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/server.c between version 1.87 and 1.88

version 1.87, 2010/05/04 08:48:06 version 1.88, 2010/05/04 17:28:16
Line 49 
Line 49 
 int              server_fd;  int              server_fd;
 int              server_shutdown;  int              server_shutdown;
 struct event     server_ev_accept;  struct event     server_ev_accept;
 struct event     server_ev_sigterm;  
 struct event     server_ev_sigusr1;  
 struct event     server_ev_sigchld;  
 struct event     server_ev_second;  struct event     server_ev_second;
   
 int              server_create_socket(void);  int              server_create_socket(void);
Line 141 
Line 138 
         if (daemon(1, 0) != 0)          if (daemon(1, 0) != 0)
                 fatal("daemon failed");                  fatal("daemon failed");
   
           /* event_init() was called in our parent, need to reinit. */
           if (event_reinit(ev_base) != 0)
                   fatal("event_reinit failed");
           clear_signals();
   
         logfile("server");          logfile("server");
         log_debug("server started, pid %ld", (long) getpid());          log_debug("server started, pid %ld", (long) getpid());
   
Line 162 
Line 164 
         log_debug("socket path %s", socket_path);          log_debug("socket path %s", socket_path);
         setproctitle("server (%s)", rpathbuf);          setproctitle("server (%s)", rpathbuf);
   
         event_init();  
   
         server_fd = server_create_socket();          server_fd = server_create_socket();
         server_client_create(pair[1]);          server_client_create(pair[1]);
   
Line 202 
Line 202 
         evtimer_set(&server_ev_second, server_second_callback, NULL);          evtimer_set(&server_ev_second, server_second_callback, NULL);
         evtimer_add(&server_ev_second, &tv);          evtimer_add(&server_ev_second, &tv);
   
         server_signal_set();          set_signals(server_signal_callback);
         server_loop();          server_loop();
         exit(0);          exit(0);
 }  }
Line 339 
Line 339 
                 return;                  return;
         }          }
         server_client_create(newfd);          server_client_create(newfd);
 }  
   
 /* Set up server signal handling. */  
 void  
 server_signal_set(void)  
 {  
         struct sigaction         sigact;  
   
         memset(&sigact, 0, sizeof sigact);  
         sigemptyset(&sigact.sa_mask);  
         sigact.sa_flags = SA_RESTART;  
         sigact.sa_handler = SIG_IGN;  
         if (sigaction(SIGINT, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGPIPE, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGUSR2, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGTSTP, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGHUP, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
   
         signal_set(&server_ev_sigchld, SIGCHLD, server_signal_callback, NULL);  
         signal_add(&server_ev_sigchld, NULL);  
         signal_set(&server_ev_sigterm, SIGTERM, server_signal_callback, NULL);  
         signal_add(&server_ev_sigterm, NULL);  
         signal_set(&server_ev_sigusr1, SIGUSR1, server_signal_callback, NULL);  
         signal_add(&server_ev_sigusr1, NULL);  
 }  
   
 /* Destroy server signal events. */  
 void  
 server_signal_clear(void)  
 {  
         struct sigaction         sigact;  
   
         memset(&sigact, 0, sizeof sigact);  
         sigemptyset(&sigact.sa_mask);  
         sigact.sa_flags = SA_RESTART;  
         sigact.sa_handler = SIG_DFL;  
         if (sigaction(SIGINT, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGPIPE, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGUSR2, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGTSTP, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
         if (sigaction(SIGHUP, &sigact, NULL) != 0)  
                 fatal("sigaction failed");  
   
         signal_del(&server_ev_sigchld);  
         signal_del(&server_ev_sigterm);  
         signal_del(&server_ev_sigusr1);  
 }  }
   
 /* Signal handler. */  /* Signal handler. */

Legend:
Removed from v.1.87  
changed lines
  Added in v.1.88