[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.85 and 1.86

version 1.85, 2010/04/06 21:35:44 version 1.86, 2010/05/03 16:06:32
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 134 
Line 131 
         }          }
         close(pair[0]);          close(pair[0]);
   
           /* event_init() was called by the parent, need to reinit. */
           if (event_reinit(ev_base) != 0)
                   fatal("event_reinit failed");
   
           clear_signals();
   
         /*          /*
          * Must daemonise before loading configuration as the PID changes so           * Must daemonise before loading configuration as the PID changes so
          * $TMUX would be wrong for sessions created in the config file.           * $TMUX would be wrong for sessions created in the config file.
Line 162 
Line 165 
         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 203 
         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 340 
                 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.85  
changed lines
  Added in v.1.86