Преглед на файлове

Set write low-watermarks on all bufferevents.

If we don't do this, then we never invoke the bufferevent write
callbacks until all the bufferevent's data is flushed.
Nick Mathewson преди 14 години
родител
ревизия
dfcd3d9ce0
променени са 2 файла, в които са добавени 10 реда и са изтрити 0 реда
  1. 5 0
      changes/bug3805
  2. 5 0
      src/or/connection.c

+ 5 - 0
changes/bug3805

@@ -0,0 +1,5 @@
+  o Major bugfixes (bufferevents):
+    - Correctly notice when data has been written from a bufferevent
+      without flushing it completely. Bugfix on 0.2.3.1-alpha; fixes
+      bug 3805.
+

+ 5 - 0
src/or/connection.c

@@ -2947,6 +2947,11 @@ connection_configure_bufferevent_callbacks(connection_t *conn)
                     connection_handle_write_cb,
                     connection_handle_event_cb,
                     conn);
+  /* Set a fairly high write low-watermark so that we get the write callback
+     called whenever data is written to bring us under 128K.  Leave the
+     high-watermark at 0.
+  */
+  bufferevent_setwatermark(bufev, EV_WRITE, 128*1024, 0);
 
   input = bufferevent_get_input(bufev);
   output = bufferevent_get_output(bufev);