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

Diff for /src/usr.bin/ssh/dispatch.c between version 1.10.2.2 and 1.11

version 1.10.2.2, 2002/03/09 00:20:44 version 1.11, 2001/06/10 11:29:20
Line 37 
Line 37 
 dispatch_fn *dispatch[DISPATCH_MAX];  dispatch_fn *dispatch[DISPATCH_MAX];
   
 void  void
 dispatch_protocol_error(int type, u_int32_t seq, void *ctxt)  dispatch_protocol_error(int type, int plen, void *ctxt)
 {  {
         log("dispatch_protocol_error: type %d seq %u", type, seq);          fatal("dispatch_protocol_error: type %d plen %d", type, plen);
         if (!compat20)  
                 fatal("protocol error");  
         packet_start(SSH2_MSG_UNIMPLEMENTED);  
         packet_put_int(seq);  
         packet_send();  
         packet_write_wait();  
 }  }
 void  void
 dispatch_protocol_ignore(int type, u_int32_t seq, void *ctxt)  
 {  
         log("dispatch_protocol_ignore: type %d seq %u", type, seq);  
 }  
 void  
 dispatch_init(dispatch_fn *dflt)  dispatch_init(dispatch_fn *dflt)
 {  {
         u_int i;          int i;
         for (i = 0; i < DISPATCH_MAX; i++)          for (i = 0; i < DISPATCH_MAX; i++)
                 dispatch[i] = dflt;                  dispatch[i] = dflt;
 }  }
 void  void
 dispatch_range(u_int from, u_int to, dispatch_fn *fn)  
 {  
         u_int i;  
   
         for (i = from; i <= to; i++) {  
                 if (i >= DISPATCH_MAX)  
                         break;  
                 dispatch[i] = fn;  
         }  
 }  
 void  
 dispatch_set(int type, dispatch_fn *fn)  dispatch_set(int type, dispatch_fn *fn)
 {  {
         dispatch[type] = fn;          dispatch[type] = fn;
Line 79 
Line 57 
 dispatch_run(int mode, int *done, void *ctxt)  dispatch_run(int mode, int *done, void *ctxt)
 {  {
         for (;;) {          for (;;) {
                   int plen;
                 int type;                  int type;
                 u_int32_t seqnr;  
   
                 if (mode == DISPATCH_BLOCK) {                  if (mode == DISPATCH_BLOCK) {
                         type = packet_read_seqnr(&seqnr);                          type = packet_read(&plen);
                 } else {                  } else {
                         type = packet_read_poll_seqnr(&seqnr);                          type = packet_read_poll(&plen);
                         if (type == SSH_MSG_NONE)                          if (type == SSH_MSG_NONE)
                                 return;                                  return;
                 }                  }
                 if (type > 0 && type < DISPATCH_MAX && dispatch[type] != NULL)                  if (type > 0 && type < DISPATCH_MAX && dispatch[type] != NULL)
                         (*dispatch[type])(type, seqnr, ctxt);                          (*dispatch[type])(type, plen, ctxt);
                 else                  else
                         packet_disconnect("protocol error: rcvd type %d", type);                          packet_disconnect("protocol error: rcvd type %d", type);
                 if (done != NULL && *done)                  if (done != NULL && *done)

Legend:
Removed from v.1.10.2.2  
changed lines
  Added in v.1.11