Bläddra i källkod

Some bufferevents related fixes and pointers for nickm

Sebastian Hahn 15 år sedan
förälder
incheckning
865bea3b89
4 ändrade filer med 9 tillägg och 5 borttagningar
  1. 3 1
      src/common/compat_libevent.c
  2. 1 1
      src/common/tortls.c
  3. 3 2
      src/or/buffers.c
  4. 2 1
      src/or/connection.c

+ 3 - 1
src/common/compat_libevent.c

@@ -554,7 +554,9 @@ periodic_timer_free(periodic_timer_t *timer)
 #ifdef USE_BUFFEREVENTS
 static const struct timeval *one_tick = NULL;
 /**
-   DOCDOC
+ * Return a special timeout to be passed whenever libevent's O(1) timeout
+ * implementation should be used. Only use this when the timer is supposed
+ * to fire after 1 / TOR_LIBEVENT_TICKS_PER_SECOND seconds have passed.
 */
 const struct timeval *tor_libevent_get_one_tick_timeout(void)
 {

+ 1 - 1
src/common/tortls.c

@@ -1206,7 +1206,7 @@ tor_tls_handshake(tor_tls_t *tls)
 }
 
 /** Perform the final part of the intial TLS handshake on <b>tls</b>.  This
- * should be called for the first handshake only: it determiens whether the v1
+ * should be called for the first handshake only: it determines whether the v1
  * or the v2 handshake was used, and adjusts things for the renegotiation
  * handshake as appropriate.
  *

+ 3 - 2
src/or/buffers.c

@@ -1017,7 +1017,7 @@ fetch_var_cell_from_buf(buf_t *buf, var_cell_t **out, int linkproto)
 
 #ifdef USE_BUFFEREVENTS
 /** Try to read <b>n</b> bytes from <b>buf</b> at <b>pos</b> (which may be
- * NULL for the start fo the buffer), copying the data only if necessary.  Set
+ * NULL for the start of the buffer), copying the data only if necessary.  Set
  * *<b>data</b> to a pointer to the desired bytes.  Set <b>free_out</b> to 1
  * if we needed to malloc *<b>data</b> because the original bytes were
  * noncontiguous; 0 otherwise.  Return the number of bytes actually available
@@ -1359,6 +1359,7 @@ fetch_from_buf_http(buf_t *buf,
 }
 
 #ifdef USE_BUFFEREVENTS
+/** As fetch_from_buf_http, buf works on an evbuffer. */
 int
 fetch_from_evbuffer_http(struct evbuffer *buf,
                     char **headers_out, size_t max_headerlen,
@@ -1564,7 +1565,7 @@ fetch_from_evbuffer_socks(struct evbuffer *buf, socks_request_t *req,
  * at a buffer's contents, we look at the <b>datalen</b> bytes of data in
  * <b>data</b>. Instead of removing data from the buffer, we set
  * <b>drain_out</b> to the amount of data that should be removed (or -1 if the
- * buffer should be cleared.  Instead of pulling more data into the first
+ * buffer should be cleared).  Instead of pulling more data into the first
  * chunk of the buffer, we set *<b>want_length_out</b> to the number of bytes
  * we'd like to see in the input buffer. */
 static int

+ 2 - 1
src/or/connection.c

@@ -2908,7 +2908,8 @@ int
 connection_fetch_from_buf(char *string, size_t len, connection_t *conn)
 {
   IF_HAS_BUFFEREVENT(conn, {
-    return bufferevent_read(conn->bufev, string, len);
+    /* XXX overflow -seb */
+    return (int)bufferevent_read(conn->bufev, string, len);
   }) ELSE_IF_NO_BUFFEREVENT {
     return fetch_from_buf(string, len, conn->inbuf);
   }