summaryrefslogtreecommitdiff
path: root/src/or/buffers.c
AgeCommit message (Collapse)Author
2003-12-14oops, i broke buffers. fixed.Roger Dingledine
svn:r931
2003-12-14more friendly warning when a connection buffer overflowsRoger Dingledine
svn:r918
2003-11-16initial patches on patchesRoger Dingledine
svn:r814
2003-11-11Make AP connections wait for a circuit if none exists.Nick Mathewson
Also: - Refactor socks request into a separate struct - Add a separate 'waiting for circuit' state to AP connections between 'waiting for socks' and 'open'. Arma: can you check out the XXX's I've added to connection_edge? I may be mishandling some async and close logic. svn:r783
2003-10-19put small buffers back in placeRoger Dingledine
svn:r629
2003-10-17try to make cvs more stable for now. need to test this more in a bit.Roger Dingledine
svn:r612
2003-10-15change buf->buf to buf->memRoger Dingledine
maybe this will mean fewer dumb errors svn:r599
2003-10-15fix bug with overzealous shrinking; add more comments.Nick Mathewson
svn:r597
2003-10-14make the buffer resize stuff workRoger Dingledine
and make listener connections not have bufs svn:r584
2003-10-14Make buffers grow and shrink as needed.Nick Mathewson
svn:r583
2003-10-11clarify the warning for unrecognized socks versionRoger Dingledine
(generally happens when people use tor as an httpd proxy) svn:r576
2003-10-10change WARNING to WARNRoger Dingledine
and fix a few typos svn:r571
2003-10-08Update LICENSE and copyright dates.Nick Mathewson
svn:r560
2003-10-04socks5 now worksRoger Dingledine
(or at least, we can talk to mozilla.) svn:r536
2003-09-27clean up connection_assert_ok compiler warningsRoger Dingledine
svn:r498
2003-09-27connection_new() can't ever failRoger Dingledine
svn:r497
2003-09-26first pass: obey log conventionRoger Dingledine
ERR is if something fatal just happened WARNING is something bad happened, but we're still running. The bad thing is either a bug in the code, an attack or buggy protocol/implementation of the remote peer, etc. The operator should examine the bad thing and try to correct it. (No error or warning messages should be expected. I expect most people to run on -l warning eventually.) NOTICE is never ever used. INFO means something happened (maybe bad, maybe ok), but there's nothing you need to (or can) do about it. DEBUG is for everything louder than INFO. svn:r486
2003-09-25various bugfixes and updatesRoger Dingledine
redo all the config files for the new format (we'll redo them again soon) fix (another! yuck) segfault in log_fn when input is too large tor_tls_context_new() returns -1 for error, not NULL fix segfault in check_conn_marked() on conn's that die during tls handshake make ORs also initialize conn from router when we're the receiving node make non-dirserver ORs upload descriptor to every dirserver on startup add our local address to the descriptor add Content-Length field to POST command revert the Content-Length search in fetch_from_buf_http() to previous code fix segfault in memmove in fetch_from_buf_http() raise maximum allowed headers/body size in directory.c svn:r484
2003-09-25Refactor buffers; implement descriptors.Nick Mathewson
'buf_t' is now an opaque type defined in buffers.c . Router descriptors now include all keys; routers generate keys as needed on startup (in a newly defined "data directory"), and generate their own descriptors. Descriptors are now self-signed. Implementation is not complete: descriptors are never published; and upon receiving a descriptor, the directory doesn't do anything with it. At least "routers.or" and orkeygen are now obsolete, BTW. svn:r483
2003-09-24cleanups, bugfixes, more verbose logsRoger Dingledine
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
2003-09-21get network/host order working right again for socks4Roger Dingledine
svn:r476
2003-09-21bugfixes and note missing featuresRoger Dingledine
deal with content-length headers better when reading http don't assume struct socks4_info is a packed struct fail the socks handshake if destip is zero flesh out conn_state_to_string() for dir conn fix typo (bug) in connection_handle_read() directory get is now called fetch, post is now upload reopen logs on sighup svn:r475
2003-09-18leave the socks handshake on the inbuf until it's completeRoger Dingledine
this paves the way for supporting socks5 and other handshakes it also removes those pesky AP-only variables from connection_t also hacked a fix for a bug where some streams weren't ending properly -- maybe because marked connections weren't flushing properly? svn:r472
2003-09-17add in directory 'post' supportRoger Dingledine
svn:r471
2003-09-08fix confirmed win32 bugRoger Dingledine
svn:r435
2003-09-07more futzing towards tlsRoger Dingledine
not there yet svn:r429
2003-09-05clean read_to_buf moreRoger Dingledine
svn:r428
2003-09-04Add initial interfaces and code for TLS support. Interfaces are right; code ↵Nick Mathewson
needs work and testing. svn:r424
2003-08-14Attempt to make sockets code work right on windows.Nick Mathewson
svn:r398
2003-07-05implemented total read rate limitingRoger Dingledine
svn:r365
2003-06-25simplify fetch_from_buf; cull idle dnsworkers.Roger Dingledine
svn:r354
2003-06-17Change many files to new log_fn formatNick Mathewson
svn:r333
2003-06-13remove on-the-fly compression featureRoger Dingledine
it wasn't working, and it was harder than we'd anticipated not worth it. svn:r316
2003-05-20add circuit-level sendme relay cellsRoger Dingledine
remove sendme cells replace malloc with tor_malloc patch (but not track down) bug in onion pending list streamline connection_ap handshake svn:r293
2003-05-01terminology shift: data->relay, topic->relay, topic->streamRoger Dingledine
svn:r258
2003-04-16Tests for crypto; more tests for buffersNick Mathewson
svn:r234
2003-04-15Introduce a few unit tests (from older code), refactor compression ↵Nick Mathewson
setup/teardown svn:r232
2003-04-07Add magic to end of C files to make emacs happy; split test invocation into ↵Nick Mathewson
separate file. svn:r224
2003-03-24get rid of those nasty tabsRoger Dingledine
svn:r216
2003-03-19Fix message when decompressingNick Mathewson
svn:r214
2003-03-19Be loud when decompressingNick Mathewson
svn:r213
2003-03-19Make decompression loud.Nick Mathewson
svn:r209
2003-03-17Add code for end-to-end zlib compression. Still needs flow-controlNick Mathewson
svn:r187
2003-03-10pack into data cells more intelligentlyRoger Dingledine
svn:r173
2003-03-04better comments and a few patchesRoger Dingledine
svn:r164
2003-01-26major overhaul: dns slave subsystem, topicsRoger Dingledine
on startup, it forks off a master dns handler, which forks off dns slaves (like the apache model). slaves as spawned as load increases, and then reused. excess slaves are not ever killed, currently. implemented topics. each topic has a receive window in each direction at each edge of the circuit, and sends sendme's at the data level, as per before. each circuit also has receive windows in each direction at each hop; an edge sends a circuit-level sendme as soon as enough data cells have arrived (regardless of whether the data cells were flushed to the exit conns). removed the 'connected' cell type, since it's now a topic command within data cells. at the edge of the circuit, there can be multiple connections associated with a single circuit. you find them via the linked list conn->next_topic. currently each new ap connection starts its own circuit, so we ought to see comparable performance to what we had before. but that's only because i haven't written the code to reattach to old circuits. please try to break it as-is, and then i'll make it reuse the same circuit and we'll try to break that. svn:r152
2002-09-28more robust http(ish) handlingRoger Dingledine
svn:r123
2002-08-24cleanup: don't use size_t when you mean intRoger Dingledine
size_t is what you get back from sizeof(). no more, no less. svn:r80
2002-08-23linkpadding is now off by default.Roger Dingledine
svn:r79
2002-07-18Implemented congestion controlRoger Dingledine
Servers are allowed to send 100 cells initially, and can't send more until they receive a 'sendme' cell from that direction, indicating that they can send 10 more cells. As it currently stands, the exit node quickly runs out of window, and sends bursts of 10 whenever a sendme cell gets to him. This is much much much faster (and more flexible) than the old "give each circuit 1 kB/s and hope nothing overflows" approach. Also divided out the connection_watch_events into stop_reading, start_writing, etc. That way we can control them separately. svn:r54