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

Diff for /src/usr.bin/tmux/server-client.c between version 1.48 and 1.49

version 1.48, 2011/01/03 23:35:21 version 1.49, 2011/01/08 01:52:36
Line 53 
Line 53 
 server_client_create(int fd)  server_client_create(int fd)
 {  {
         struct client   *c;          struct client   *c;
         int              mode;  
         u_int            i;          u_int            i;
   
         if ((mode = fcntl(fd, F_GETFL)) == -1)          setblocking(fd, 0);
                 fatal("fcntl failed");  
         if (fcntl(fd, F_SETFL, mode|O_NONBLOCK) == -1)  
                 fatal("fcntl failed");  
   
         c = xcalloc(1, sizeof *c);          c = xcalloc(1, sizeof *c);
         c->references = 0;          c->references = 0;
Line 124 
Line 120 
         if (c->flags & CLIENT_TERMINAL)          if (c->flags & CLIENT_TERMINAL)
                 tty_free(&c->tty);                  tty_free(&c->tty);
   
         if (c->stdin_fd != -1)          if (c->stdin_fd != -1) {
                   setblocking(c->stdin_fd, 1);
                 close(c->stdin_fd);                  close(c->stdin_fd);
           }
         if (c->stdin_event != NULL)          if (c->stdin_event != NULL)
                 bufferevent_free(c->stdin_event);                  bufferevent_free(c->stdin_event);
         if (c->stdout_fd != -1)          if (c->stdout_fd != -1) {
                   setblocking(c->stdout_fd, 1);
                 close(c->stdout_fd);                  close(c->stdout_fd);
           }
         if (c->stdout_event != NULL)          if (c->stdout_event != NULL)
                 bufferevent_free(c->stdout_event);                  bufferevent_free(c->stdout_event);
         if (c->stderr_fd != -1)          if (c->stderr_fd != -1) {
                   setblocking(c->stderr_fd, 1);
                 close(c->stderr_fd);                  close(c->stderr_fd);
           }
         if (c->stderr_event != NULL)          if (c->stderr_event != NULL)
                 bufferevent_free(c->stderr_event);                  bufferevent_free(c->stderr_event);
   
Line 632 
Line 634 
                 return;                  return;
   
         bufferevent_disable(c->stdin_event, EV_READ|EV_WRITE);          bufferevent_disable(c->stdin_event, EV_READ|EV_WRITE);
           setblocking(c->stdin_fd, 1);
         close(c->stdin_fd);          close(c->stdin_fd);
         c->stdin_fd = -1;          c->stdin_fd = -1;
   
Line 647 
Line 650 
         struct client   *c = data;          struct client   *c = data;
   
         bufferevent_disable(c->stdout_event, EV_READ|EV_WRITE);          bufferevent_disable(c->stdout_event, EV_READ|EV_WRITE);
           setblocking(c->stdout_fd, 1);
         close(c->stdout_fd);          close(c->stdout_fd);
         c->stdout_fd = -1;          c->stdout_fd = -1;
 }  }
Line 659 
Line 663 
         struct client   *c = data;          struct client   *c = data;
   
         bufferevent_disable(c->stderr_event, EV_READ|EV_WRITE);          bufferevent_disable(c->stderr_event, EV_READ|EV_WRITE);
           setblocking(c->stderr_fd, 1);
         close(c->stderr_fd);          close(c->stderr_fd);
         c->stderr_fd = -1;          c->stderr_fd = -1;
 }  }
Line 672 
Line 677 
         struct msg_identify_data identifydata;          struct msg_identify_data identifydata;
         struct msg_environ_data  environdata;          struct msg_environ_data  environdata;
         ssize_t                  n, datalen;          ssize_t                  n, datalen;
         int                      mode;  
   
         if ((n = imsg_read(&c->ibuf)) == -1 || n == 0)          if ((n = imsg_read(&c->ibuf)) == -1 || n == 0)
                 return (-1);                  return (-1);
Line 712 
Line 716 
                             NULL, NULL, server_client_in_callback, c);                              NULL, NULL, server_client_in_callback, c);
                         if (c->stdin_event == NULL)                          if (c->stdin_event == NULL)
                                 fatalx("failed to create stdin event");                                  fatalx("failed to create stdin event");
                           setblocking(c->stdin_fd, 0);
   
                         if ((mode = fcntl(c->stdin_fd, F_GETFL)) != -1)  
                                 fcntl(c->stdin_fd, F_SETFL, mode|O_NONBLOCK);  
   
                         server_client_msg_identify(c, &identifydata, imsg.fd);                          server_client_msg_identify(c, &identifydata, imsg.fd);
                         break;                          break;
                 case MSG_STDOUT:                  case MSG_STDOUT:
Line 729 
Line 731 
                             NULL, NULL, server_client_out_callback, c);                              NULL, NULL, server_client_out_callback, c);
                         if (c->stdout_event == NULL)                          if (c->stdout_event == NULL)
                                 fatalx("failed to create stdout event");                                  fatalx("failed to create stdout event");
                           setblocking(c->stdout_fd, 0);
   
                         if ((mode = fcntl(c->stdout_fd, F_GETFL)) != -1)  
                                 fcntl(c->stdout_fd, F_SETFL, mode|O_NONBLOCK);  
                         break;                          break;
                 case MSG_STDERR:                  case MSG_STDERR:
                         if (datalen != 0)                          if (datalen != 0)
Line 744 
Line 745 
                             NULL, NULL, server_client_err_callback, c);                              NULL, NULL, server_client_err_callback, c);
                         if (c->stderr_event == NULL)                          if (c->stderr_event == NULL)
                                 fatalx("failed to create stderr event");                                  fatalx("failed to create stderr event");
                           setblocking(c->stderr_fd, 0);
   
                         if ((mode = fcntl(c->stderr_fd, F_GETFL)) != -1)  
                                 fcntl(c->stderr_fd, F_SETFL, mode|O_NONBLOCK);  
                         break;                          break;
                 case MSG_RESIZE:                  case MSG_RESIZE:
                         if (datalen != 0)                          if (datalen != 0)

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49