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

Diff for /src/usr.bin/ssh/packet.c between version 1.97 and 1.97.2.1

version 1.97, 2002/07/04 08:12:15 version 1.97.2.1, 2003/04/01 00:12:14
Line 559 
Line 559 
         CipherContext *cc;          CipherContext *cc;
         int encrypt;          int encrypt;
   
         debug("newkeys: mode %d", mode);          debug2("set_newkeys: mode %d", mode);
   
         if (mode == MODE_OUT) {          if (mode == MODE_OUT) {
                 cc = &send_context;                  cc = &send_context;
Line 569 
Line 569 
                 encrypt = CIPHER_DECRYPT;                  encrypt = CIPHER_DECRYPT;
         }          }
         if (newkeys[mode] != NULL) {          if (newkeys[mode] != NULL) {
                 debug("newkeys: rekeying");                  debug("set_newkeys: rekeying");
                 cipher_cleanup(cc);                  cipher_cleanup(cc);
                 enc  = &newkeys[mode]->enc;                  enc  = &newkeys[mode]->enc;
                 mac  = &newkeys[mode]->mac;                  mac  = &newkeys[mode]->mac;
Line 835 
Line 835 
         cp = buffer_ptr(&input);          cp = buffer_ptr(&input);
         len = GET_32BIT(cp);          len = GET_32BIT(cp);
         if (len < 1 + 2 + 2 || len > 256 * 1024)          if (len < 1 + 2 + 2 || len > 256 * 1024)
                 packet_disconnect("Bad packet length %d.", len);                  packet_disconnect("Bad packet length %u.", len);
         padded_len = (len + 8) & ~7;          padded_len = (len + 8) & ~7;
   
         /* Check if the packet has been entirely received. */          /* Check if the packet has been entirely received. */
Line 931 
Line 931 
                 packet_length = GET_32BIT(cp);                  packet_length = GET_32BIT(cp);
                 if (packet_length < 1 + 4 || packet_length > 256 * 1024) {                  if (packet_length < 1 + 4 || packet_length > 256 * 1024) {
                         buffer_dump(&incoming_packet);                          buffer_dump(&incoming_packet);
                         packet_disconnect("Bad packet length %d.", packet_length);                          packet_disconnect("Bad packet length %u.", packet_length);
                 }                  }
                 DBG(debug("input: packet len %d", packet_length+4));                  DBG(debug("input: packet len %u", packet_length+4));
                 buffer_consume(&input, block_size);                  buffer_consume(&input, block_size);
         }          }
         /* we have a partial packet of block_size bytes */          /* we have a partial packet of block_size bytes */
Line 1221 
Line 1221 
         vsnprintf(buf, sizeof(buf), fmt, args);          vsnprintf(buf, sizeof(buf), fmt, args);
         va_end(args);          va_end(args);
   
           /* Display the error locally */
           log("Disconnecting: %.100s", buf);
   
         /* Send the disconnect message to the other side, and wait for it to get sent. */          /* Send the disconnect message to the other side, and wait for it to get sent. */
         if (compat20) {          if (compat20) {
                 packet_start(SSH2_MSG_DISCONNECT);                  packet_start(SSH2_MSG_DISCONNECT);
Line 1240 
Line 1243 
         /* Close the connection. */          /* Close the connection. */
         packet_close();          packet_close();
   
         /* Display the error locally and exit. */  
         log("Disconnecting: %.100s", buf);  
         fatal_cleanup();          fatal_cleanup();
 }  }
   
Line 1308 
Line 1309 
                 return buffer_len(&output) < 128 * 1024;                  return buffer_len(&output) < 128 * 1024;
 }  }
   
   static void
   packet_set_tos(int interactive)
   {
           int tos = interactive ? IPTOS_LOWDELAY : IPTOS_THROUGHPUT;
   
           if (!packet_connection_is_on_socket() ||
               !packet_connection_is_ipv4())
                   return;
           if (setsockopt(connection_in, IPPROTO_IP, IP_TOS, &tos,
               sizeof(tos)) < 0)
                   error("setsockopt IP_TOS %d: %.100s:",
                       tos, strerror(errno));
   }
   
 /* Informs that the current session is interactive.  Sets IP flags for that. */  /* Informs that the current session is interactive.  Sets IP flags for that. */
   
 void  void
 packet_set_interactive(int interactive)  packet_set_interactive(int interactive)
 {  {
         static int called = 0;          static int called = 0;
         int lowdelay = IPTOS_LOWDELAY;  
         int throughput = IPTOS_THROUGHPUT;  
   
         if (called)          if (called)
                 return;                  return;
Line 1327 
Line 1340 
         /* Only set socket options if using a socket.  */          /* Only set socket options if using a socket.  */
         if (!packet_connection_is_on_socket())          if (!packet_connection_is_on_socket())
                 return;                  return;
         /*          if (interactive)
          * IPTOS_LOWDELAY and IPTOS_THROUGHPUT are IPv4 only  
          */  
         if (interactive) {  
                 /*  
                  * Set IP options for an interactive connection.  Use  
                  * IPTOS_LOWDELAY and TCP_NODELAY.  
                  */  
                 if (packet_connection_is_ipv4()) {  
                         if (setsockopt(connection_in, IPPROTO_IP, IP_TOS,  
                             &lowdelay, sizeof(lowdelay)) < 0)  
                                 error("setsockopt IPTOS_LOWDELAY: %.100s",  
                                     strerror(errno));  
                 }  
                 set_nodelay(connection_in);                  set_nodelay(connection_in);
         } else if (packet_connection_is_ipv4()) {          packet_set_tos(interactive);
                 /*  
                  * Set IP options for a non-interactive connection.  Use  
                  * IPTOS_THROUGHPUT.  
                  */  
                 if (setsockopt(connection_in, IPPROTO_IP, IP_TOS, &throughput,  
                     sizeof(throughput)) < 0)  
                         error("setsockopt IPTOS_THROUGHPUT: %.100s", strerror(errno));  
         }  
 }  }
   
 /* Returns true if the current connection is interactive. */  /* Returns true if the current connection is interactive. */

Legend:
Removed from v.1.97  
changed lines
  Added in v.1.97.2.1