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

Diff for /src/usr.bin/tmux/proc.c between version 1.1 and 1.2

version 1.1, 2015/10/27 13:23:24 version 1.2, 2015/10/29 09:35:31
Line 49 
Line 49 
         void            *arg;          void            *arg;
 };  };
   
 static void proc_update_event(struct tmuxpeer *);  static int      peer_check_version(struct tmuxpeer *, struct imsg *);
   static void     proc_update_event(struct tmuxpeer *);
   
 static void  static void
 proc_event_cb(unused int fd, short events, void *arg)  proc_event_cb(unused int fd, short events, void *arg)
Line 57 
Line 58 
         struct tmuxpeer *peer = arg;          struct tmuxpeer *peer = arg;
         ssize_t          n;          ssize_t          n;
         struct imsg      imsg;          struct imsg      imsg;
         int              v;  
   
         if (!(peer->flags & PEER_BAD) && (events & EV_READ)) {          if (!(peer->flags & PEER_BAD) && (events & EV_READ)) {
                 if ((n = imsg_read(&peer->ibuf)) == -1 || n == 0) {                  if ((n = imsg_read(&peer->ibuf)) == -1 || n == 0) {
Line 73 
Line 73 
                                 break;                                  break;
                         log_debug("peer %p message %d", peer, imsg.hdr.type);                          log_debug("peer %p message %d", peer, imsg.hdr.type);
   
                         v = imsg.hdr.peerid;                          if (peer_check_version(peer, &imsg) != 0) {
                         if (imsg.hdr.type != MSG_VERSION &&  
                             v != PROTOCOL_VERSION) {  
                                 log_debug("peer %p bad version %d", peer, v);  
   
                                 proc_send(peer, MSG_VERSION, -1, NULL, 0);  
                                 peer->flags |= PEER_BAD;  
   
                                 if (imsg.fd != -1)                                  if (imsg.fd != -1)
                                         close(imsg.fd);                                          close(imsg.fd);
                                 imsg_free(&imsg);                                  imsg_free(&imsg);
Line 113 
Line 106 
         struct tmuxproc *tp = arg;          struct tmuxproc *tp = arg;
   
         tp->signalcb(signo);          tp->signalcb(signo);
   }
   
   static int
   peer_check_version(struct tmuxpeer *peer, struct imsg *imsg)
   {
           int     version;
   
           version = imsg->hdr.peerid & 0xff;
           if (imsg->hdr.type != MSG_VERSION && version != PROTOCOL_VERSION) {
                   log_debug("peer %p bad version %d", peer, version);
   
                   proc_send(peer, MSG_VERSION, -1, NULL, 0);
                   peer->flags |= PEER_BAD;
   
                   return (-1);
           }
           imsg->hdr.peerid >>= 8;
           return (0);
 }  }
   
 static void  static void

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2