From fb2f4a0418d1bf16d28a14b4dc80c417e61917e8 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 10 Mar 2003 22:40:02 +0000 Subject: pack into data cells more intelligently svn:r173 --- src/or/buffers.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/or') diff --git a/src/or/buffers.c b/src/or/buffers.c index 5bdc8e73e..424e2fe9e 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -52,9 +52,14 @@ int read_to_buf(int s, int at_most, char **buf, int *buflen, int *buf_datalen, i if(!options.LinkPadding && at_most > 10*sizeof(cell_t)) { /* if no linkpadding: do a rudimentary round-robin so one - * connection can't hog an outgoing connection + * connection can't hog a thickpipe + */ + at_most = 10*(CELL_PAYLOAD_SIZE - TOPIC_HEADER_SIZE); + /* XXX this still isn't perfect. now we read 10 data payloads per read -- + * but if we're reading from a connection that speaks cells, we always + * read a partial cell from the network and can't process it yet. Good + * enough for now though. (And maybe best, to stress our code more.) */ - at_most = 10*sizeof(cell_t); /* FIXME should be 10* size of usable payload */ } // log(LOG_DEBUG,"read_to_buf(): reading at most %d bytes.",at_most); -- cgit v1.2.3