[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.190 and 1.191

version 1.190, 2020/05/16 15:47:22 version 1.191, 2020/05/16 16:07:55
Line 161 
Line 161 
         struct client   *c;          struct client   *c;
         char            *cause = NULL;          char            *cause = NULL;
   
         if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)  
                 fatal("socketpair failed");  
         server_client_flags = flags;  
   
         sigfillset(&set);          sigfillset(&set);
         sigprocmask(SIG_BLOCK, &set, &oldset);          sigprocmask(SIG_BLOCK, &set, &oldset);
         switch (fork()) {  
         case -1:          if (~flags & CLIENT_NOFORK) {
                 fatal("fork failed");                  if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)
         case 0:                          fatal("socketpair failed");
                 break;  
         default:                  switch (fork()) {
                 sigprocmask(SIG_SETMASK, &oldset, NULL);                  case -1:
                 close(pair[1]);                          fatal("fork failed");
                 return (pair[0]);                  case 0:
                           break;
                   default:
                           sigprocmask(SIG_SETMASK, &oldset, NULL);
                           close(pair[1]);
                           return (pair[0]);
                   }
                   close(pair[0]);
                   if (daemon(1, 0) != 0)
                           fatal("daemon failed");
         }          }
         close(pair[0]);  
         if (daemon(1, 0) != 0)          server_client_flags = flags;
                 fatal("daemon failed");  
         proc_clear_signals(client, 0);          proc_clear_signals(client, 0);
   
         if (event_reinit(base) != 0)          if (event_reinit(base) != 0)
                 fatalx("event_reinit failed");                  fatalx("event_reinit failed");
         server_proc = proc_start("server");          server_proc = proc_start("server");
   
         proc_set_signals(server_proc, server_signal);          proc_set_signals(server_proc, server_signal);
         sigprocmask(SIG_SETMASK, &oldset, NULL);          sigprocmask(SIG_SETMASK, &oldset, NULL);
   
Line 205 
Line 211 
         server_fd = server_create_socket(flags, &cause);          server_fd = server_create_socket(flags, &cause);
         if (server_fd != -1)          if (server_fd != -1)
                 server_update_socket();                  server_update_socket();
         c = server_client_create(pair[1]);          if (~flags & CLIENT_NOFORK)
                   c = server_client_create(pair[1]);
           else
                   options_set_number(global_options, "exit-empty", 0);
   
         if (lockfd >= 0) {          if (lockfd >= 0) {
                 unlink(lockfile);                  unlink(lockfile);
Line 396 
Line 405 
   
         log_debug("%s: %s", __func__, strsignal(sig));          log_debug("%s: %s", __func__, strsignal(sig));
         switch (sig) {          switch (sig) {
           case SIGINT:
         case SIGTERM:          case SIGTERM:
                 server_exit = 1;                  server_exit = 1;
                 server_send_exit();                  server_send_exit();

Legend:
Removed from v.1.190  
changed lines
  Added in v.1.191