[tor-commits] [tor/master] Revert "Detect renegotiation when it actually happens."

nickm at torproject.org nickm at torproject.org
Thu Dec 8 02:11:41 UTC 2011


commit 9727d21f68d0ef91f9c9002bebde425477bc4c6f
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue Dec 6 19:49:21 2011 -0500

    Revert "Detect renegotiation when it actually happens."
    
    This reverts commit 4fd79f9def28996552b5739792f428c2514de1f6.
---
 src/common/tortls.c |   29 ++++++++++-------------------
 1 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/src/common/tortls.c b/src/common/tortls.c
index c0ff4e1..e26fd1f 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -1638,28 +1638,19 @@ tor_tls_read(tor_tls_t *tls, char *cp, size_t len)
   tor_assert(tls->state == TOR_TLS_ST_OPEN);
   tor_assert(len<INT_MAX);
   r = SSL_read(tls->ssl, cp, (int)len);
-  if (r > 0) /* return the number of characters read */
-    return r;
-
-  /* If we got here, SSL_read() did not go as expected. */
-
-  err = tor_tls_get_error(tls, r, CATCH_ZERO, "reading", LOG_DEBUG, LD_NET);
-
+  if (r > 0) {
 #ifdef V2_HANDSHAKE_SERVER
-  if (tls->got_renegotiate) {
-    tor_assert(tls->server_handshake_count == 2);
-    /* XXX tor_assert(err == TOR_TLS_WANTREAD); */
-
-    /* Renegotiation happened! */
-    log_info(LD_NET, "Got a TLS renegotiation from %s", ADDR(tls));
-    if (tls->negotiated_callback)
-      tls->negotiated_callback(tls, tls->callback_arg);
-    tls->got_renegotiate = 0;
-
+    if (tls->got_renegotiate) {
+      /* Renegotiation happened! */
+      log_info(LD_NET, "Got a TLS renegotiation from %s", ADDR(tls));
+      if (tls->negotiated_callback)
+        tls->negotiated_callback(tls, tls->callback_arg);
+      tls->got_renegotiate = 0;
+    }
+#endif
     return r;
   }
-#endif
-
+  err = tor_tls_get_error(tls, r, CATCH_ZERO, "reading", LOG_DEBUG, LD_NET);
   if (err == _TOR_TLS_ZERORETURN || err == TOR_TLS_CLOSE) {
     log_debug(LD_NET,"read returned r=%d; TLS is closed",r);
     tls->state = TOR_TLS_ST_CLOSED;





More information about the tor-commits mailing list