aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2003-03-19 22:47:34 +0000
committerNick Mathewson <nickm@torproject.org>2003-03-19 22:47:34 +0000
commit29da03cbdc0c0bf46b54b30131632cdeed1adb63 (patch)
treebb6ddec190f6265e02b2230a738aba5334fb9f1b /src
parentfceb45727602223d214e55d0474976f84141d8e1 (diff)
downloadtor-29da03cbdc0c0bf46b54b30131632cdeed1adb63.tar
tor-29da03cbdc0c0bf46b54b30131632cdeed1adb63.tar.gz
Be loud when decompressing
svn:r213
Diffstat (limited to 'src')
-rw-r--r--src/or/buffers.c3
-rw-r--r--src/or/connection.c2
-rw-r--r--src/or/connection_exit.c12
3 files changed, 12 insertions, 5 deletions
diff --git a/src/or/buffers.c b/src/or/buffers.c
index 2f6c64cc5..c88fa62a1 100644
--- a/src/or/buffers.c
+++ b/src/or/buffers.c
@@ -192,6 +192,9 @@ int decompress_buf_to_buf(char **buf_in, int *buflen_in, int *buf_datalen_in,
{
case Z_OK:
case Z_STREAM_END:
+ log(LOG_DEBUG, "Uncompressed (%d/%d); filled (%d/%d)",
+ *buf_datalen_in-zstream->avail_in, *buf_datalen_in,
+ *buf_datalen_out-zstream->avail_out, *buf_datalen_out);
memmove(*buf_in, zstream->next_in, zstream->avail_in);
*buf_datalen_in = zstream->avail_in;
*buf_datalen_out = *buflen_out - zstream->avail_out;
diff --git a/src/or/connection.c b/src/or/connection.c
index c9d2c2dc5..41d07293f 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -744,7 +744,7 @@ repeat_connection_package_raw_inbuf:
return -1;
}
- log(LOG_DEBUG,"connection_package_raw_inbuf(): (%d) Packaging %d bytes (%d waiting).",conn->s,cell.length, amount_to_process);
+ log(LOG_DEBUG,"connection_package_raw_inbuf(): (%d) Packaging %d bytes (%d waiting).",conn->s,cell.length, conn->inbuf_datalen);
*(uint16_t *)(cell.payload+2) = htons(conn->topic_id);
*cell.payload = TOPIC_COMMAND_DATA;
diff --git a/src/or/connection_exit.c b/src/or/connection_exit.c
index 24b1f21b4..b797d7198 100644
--- a/src/or/connection_exit.c
+++ b/src/or/connection_exit.c
@@ -196,6 +196,7 @@ int connection_exit_process_data_cell(cell_t *cell, circuit_t *circ) {
connection_t *conn;
int topic_command;
int topic_id;
+ int len;
static int num_seen=0;
/* an outgoing data cell has arrived */
@@ -248,16 +249,19 @@ int connection_exit_process_data_cell(cell_t *cell, circuit_t *circ) {
if(conn->state != EXIT_CONN_STATE_OPEN) {
log(LOG_DEBUG,"connection_exit_process_data_cell(): data received while resolving/connecting. Queueing.");
}
- log(LOG_DEBUG,"connection_exit_process_data_cell(): put %d bytes on outbuf.",cell->length - TOPIC_HEADER_SIZE);
#ifdef USE_ZLIB
- if(connection_decompress_to_buf(cell->payload + TOPIC_HEADER_SIZE,
- cell->length - TOPIC_HEADER_SIZE,
- conn, Z_SYNC_FLUSH) < 0) {
+ log(LOG_DEBUG,"connection_exit_process_data_cell(): uncompressing %d bytes onto outbuf...",cell->length - TOPIC_HEADER_SIZE);
+ len = connection_decompress_to_buf(cell->payload + TOPIC_HEADER_SIZE,
+ cell->length - TOPIC_HEADER_SIZE,
+ conn, Z_SYNC_FLUSH);
+ log(LOG_DEBUG,"%d bytes written", len);
+ if (len<0) {
log(LOG_INFO,"connection_exit_process_data_cell(): write to buf failed. Marking for close.");
conn->marked_for_close = 1;
return 0;
}
#else
+ log(LOG_DEBUG,"connection_exit_process_data_cell(): put %d bytes on outbuf.",cell->length - TOPIC_HEADER_SIZE);
if(connection_write_to_buf(cell->payload + TOPIC_HEADER_SIZE,
cell->length - TOPIC_HEADER_SIZE, conn) < 0) {
log(LOG_INFO,"connection_exit_process_data_cell(): write to buf failed. Marking for close.");