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

Diff for /src/usr.bin/ssh/Attic/roaming_common.c between version 1.5 and 1.6

version 1.5, 2009/06/27 09:32:43 version 1.6, 2009/10/24 11:22:37
Line 143 
Line 143 
         }          }
         debug3("Wrote %ld bytes for a total of %llu", (long)ret,          debug3("Wrote %ld bytes for a total of %llu", (long)ret,
             (unsigned long long)write_bytes);              (unsigned long long)write_bytes);
           if (out_buf_size > 0 &&
               (ret == 0 || (ret == -1 && errno == EPIPE))) {
                   if (wait_for_roaming_reconnect() != 0) {
                           ret = 0;
                           *cont = 1;
                   } else {
                           ret = -1;
                           errno = EAGAIN;
                   }
           }
         return ret;          return ret;
 }  }
   
Line 154 
Line 164 
                 if (!resume_in_progress) {                  if (!resume_in_progress) {
                         read_bytes += ret;                          read_bytes += ret;
                 }                  }
           } else if (out_buf_size > 0 &&
               (ret == 0 || (ret == -1 && (errno == ECONNRESET
               || errno == ECONNABORTED || errno == ETIMEDOUT
               || errno == EHOSTUNREACH)))) {
                   debug("roaming_read failed for %d  ret=%ld  errno=%d",
                       fd, (long)ret, errno);
                   ret = 0;
                   if (wait_for_roaming_reconnect() == 0)
                           *cont = 1;
         }          }
         return ret;          return ret;
 }  }
Line 194 
Line 213 
         } else {          } else {
                 atomicio(vwrite, fd, out_buf + (out_last - needed), needed);                  atomicio(vwrite, fd, out_buf + (out_last - needed), needed);
         }          }
   }
   
   /*
    * Caclulate a new key after a reconnect
    */
   void
   calculate_new_key(u_int64_t *key, u_int64_t cookie, u_int64_t challenge)
   {
           const EVP_MD *md = EVP_sha1();
           EVP_MD_CTX ctx;
           char hash[EVP_MAX_MD_SIZE];
           Buffer b;
   
           buffer_init(&b);
           buffer_put_int64(&b, *key);
           buffer_put_int64(&b, cookie);
           buffer_put_int64(&b, challenge);
   
           EVP_DigestInit(&ctx, md);
           EVP_DigestUpdate(&ctx, buffer_ptr(&b), buffer_len(&b));
           EVP_DigestFinal(&ctx, hash, NULL);
   
           buffer_clear(&b);
           buffer_append(&b, hash, EVP_MD_size(md));
           *key = buffer_get_int64(&b);
           buffer_free(&b);
 }  }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6