Commit f00dc6fe authored by Roger Dingledine's avatar Roger Dingledine
Browse files

last minute fix: don't early-flush non-tls streams

e.g., this breaks directory service


svn:r1033
parent ddcc03ac
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -530,8 +530,8 @@ void connection_write_to_buf(const char *string, int len, connection_t *conn) {
 * push data out as soon as we know there's enough for a tls record, so
 * during periods of high load we won't read the entire megabyte from
 * input before pushing any data out. */
/* We follow the same algorithm for non-tls streams, because hey, why not. */
  if(conn->outbuf_flushlen < MIN_TLS_FLUSHLEN &&
  if(connection_speaks_cells(conn) &&
     conn->outbuf_flushlen < MIN_TLS_FLUSHLEN &&
     conn->outbuf_flushlen+len >= MIN_TLS_FLUSHLEN) {
    len -= (MIN_TLS_FLUSHLEN - conn->outbuf_flushlen);
    conn->outbuf_flushlen = MIN_TLS_FLUSHLEN;
+1 −1
Original line number Diff line number Diff line
@@ -261,7 +261,7 @@ int connection_dir_finished_flushing(connection_t *conn) {
      log_fn(LOG_INFO,"Finished writing server response. Closing.");
      return -1; /* kill it */
    default:
      log_fn(LOG_WARN,"BUG: called in unexpected state.");
      log_fn(LOG_WARN,"BUG: called in unexpected state %d.", conn->state);
      return -1;
  }
  return 0;