mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
Be loud when decompressing
svn:r213
This commit is contained in:
parent
fceb457276
commit
29da03cbdc
@ -192,6 +192,9 @@ int decompress_buf_to_buf(char **buf_in, int *buflen_in, int *buf_datalen_in,
|
|||||||
{
|
{
|
||||||
case Z_OK:
|
case Z_OK:
|
||||||
case Z_STREAM_END:
|
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);
|
memmove(*buf_in, zstream->next_in, zstream->avail_in);
|
||||||
*buf_datalen_in = zstream->avail_in;
|
*buf_datalen_in = zstream->avail_in;
|
||||||
*buf_datalen_out = *buflen_out - zstream->avail_out;
|
*buf_datalen_out = *buflen_out - zstream->avail_out;
|
||||||
|
@ -744,7 +744,7 @@ repeat_connection_package_raw_inbuf:
|
|||||||
return -1;
|
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);
|
*(uint16_t *)(cell.payload+2) = htons(conn->topic_id);
|
||||||
*cell.payload = TOPIC_COMMAND_DATA;
|
*cell.payload = TOPIC_COMMAND_DATA;
|
||||||
|
@ -196,6 +196,7 @@ int connection_exit_process_data_cell(cell_t *cell, circuit_t *circ) {
|
|||||||
connection_t *conn;
|
connection_t *conn;
|
||||||
int topic_command;
|
int topic_command;
|
||||||
int topic_id;
|
int topic_id;
|
||||||
|
int len;
|
||||||
static int num_seen=0;
|
static int num_seen=0;
|
||||||
|
|
||||||
/* an outgoing data cell has arrived */
|
/* 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) {
|
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(): 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
|
#ifdef USE_ZLIB
|
||||||
if(connection_decompress_to_buf(cell->payload + TOPIC_HEADER_SIZE,
|
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,
|
cell->length - TOPIC_HEADER_SIZE,
|
||||||
conn, Z_SYNC_FLUSH) < 0) {
|
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.");
|
log(LOG_INFO,"connection_exit_process_data_cell(): write to buf failed. Marking for close.");
|
||||||
conn->marked_for_close = 1;
|
conn->marked_for_close = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#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,
|
if(connection_write_to_buf(cell->payload + TOPIC_HEADER_SIZE,
|
||||||
cell->length - TOPIC_HEADER_SIZE, conn) < 0) {
|
cell->length - TOPIC_HEADER_SIZE, conn) < 0) {
|
||||||
log(LOG_INFO,"connection_exit_process_data_cell(): write to buf failed. Marking for close.");
|
log(LOG_INFO,"connection_exit_process_data_cell(): write to buf failed. Marking for close.");
|
||||||
|
Loading…
Reference in New Issue
Block a user