[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

client problem on slow connection



I'm expiriencing next problem using tor version 0.1.0.17 via slow GPRS
connection (though it is slow, speed is enough for IRC and ICQ for
ex.): when client is receiving directory from directory server,
connection housekeeping engine kills connection:

Mar 24 14:25:01.625 [debug] conn_read_callback(): socket 1664 wants to read.
Mar 24 14:25:01.625 [debug] read_to_buf_impl(): Read 1460 bytes. 259880 on inbuf.
Mar 24 14:25:01.625 [debug] connection_dir_process_inbuf(): Got data, not eof. Leaving on inbuf.
Mar 24 14:25:01.796 [info] run_connection_housekeeping(): Expiring wedged directory conn (fd 1664, p
urpose 1)
Mar 24 14:25:01.796 [info] conn_close_if_marked(): Cleaning up connection (fd 1664).
Mar 24 14:25:01.796 [info] connection_remove(): removing socket 1664 (type Dir), nfds now 1
Mar 24 14:25:01.796 [info] _connection_free(): closing fd 1664.

As i dig into the source, i've found that there's DIR_CONN_MAX_STALL
constant (coded as #define), which is 5*60 seconds. (110 line of
src/or/main.c revision 1.638). So when 5 minutes are gone, connection
is killed.

Possibly solutions:
1. Increase time directly fixing main.c (straight, but dumb way)
2. Read constant from torrc (more work, but completely solves this
problem)