diff options
author | Roger Dingledine <arma@torproject.org> | 2003-09-24 21:24:52 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2003-09-24 21:24:52 +0000 |
commit | 40d0fca63ae25e9e98b70bd75ce356d63ebc6c45 (patch) | |
tree | f433623559193f89f01b6497a8462066d610495a /src/or/buffers.c | |
parent | 36ec1792d250a9694273c12d832229e077e9bf76 (diff) | |
download | tor-40d0fca63ae25e9e98b70bd75ce356d63ebc6c45.tar tor-40d0fca63ae25e9e98b70bd75ce356d63ebc6c45.tar.gz |
cleanups, bugfixes, more verbose logs
Fixed up the assert_*_ok funcs some (more work remains)
Changed config so it reads either /etc/torrc or the -f arg, never both
Finally tracked down a nasty bug with our use of tls:
It turns out that if you ask SSL_read() for no more than n bytes, it
will read the entire record from the network (and maybe part of the next
record, I'm not sure), give you n bytes of it, and keep the remaining
bytes internally. This is fine, except our poll-for-read looks at the
network, and there are no bytes pending on the network, so we never know
to ask SSL_read() for more bytes. Currently I've hacked it so if we ask
for n bytes and it returns n bytes, then it reads again right then. This
will interact poorly with our rate limiting; we need a cleaner solution.
svn:r481
Diffstat (limited to 'src/or/buffers.c')
-rw-r--r-- | src/or/buffers.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/or/buffers.c b/src/or/buffers.c index 087998d28..2bddcd2ef 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -69,7 +69,7 @@ int read_to_buf(int s, int at_most, char **buf, int *buflen, int *buf_datalen, i return 0; } else { /* we read some bytes */ *buf_datalen += read_result; -// log_fn(LOG_DEBUG,"Read %d bytes. %d on inbuf.",read_result, *buf_datalen); + log_fn(LOG_DEBUG,"Read %d bytes. %d on inbuf.",read_result, *buf_datalen); return read_result; } } @@ -88,6 +88,7 @@ int read_to_buf_tls(tor_tls *tls, int at_most, char **buf, int *buflen, int *buf if (r<0) return r; *buf_datalen += r; + log_fn(LOG_DEBUG,"Read %d bytes. %d on inbuf.",r, *buf_datalen); return r; } @@ -147,6 +148,8 @@ int flush_buf_tls(tor_tls *tls, char **buf, int *buflen, int *buf_flushlen, int *buf_datalen -= r; *buf_flushlen -= r; memmove(*buf, *buf+r, *buf_datalen); + log_fn(LOG_DEBUG,"flushed %d bytes, %d ready to flush, %d remain.", + r,*buf_flushlen,*buf_datalen); return r; } @@ -168,7 +171,7 @@ int write_to_buf(char *string, int string_len, memcpy(*buf+*buf_datalen, string, string_len); *buf_datalen += string_len; -// log_fn(LOG_DEBUG,"added %d bytes to buf (now %d total).",string_len, *buf_datalen); + log_fn(LOG_DEBUG,"added %d bytes to buf (now %d total).",string_len, *buf_datalen); return *buf_datalen; } |