aboutsummaryrefslogtreecommitdiff
path: root/src/or/connection_edge.c
Commit message (Collapse)AuthorAge
* fix vicious bug in connection_ap_attach_pending that caused it toRoger Dingledine2003-12-03
| | | | | | | | | | | never work. fix vicious bug in choose_good_exit_server that caused it to *skip over* pending circuits, and look only at *non-pending circuits*, when choosing a good exit node for the new circuit. bugfix: remove incorrect asserts in circuit_get_newest() svn:r876
* bugfix in exit node choice: we used to find the perfect exit node but ↵Roger Dingledine2003-12-03
| | | | | | | | | | | | | | | | | then use the wrong one. bugfix in connection_ap_can_use_exit: it was using the wrong port bugfix: the OP now handles a port of '*' correctly when the IP is not yet known and it's trying to guess whether a router's exit policy might accept it. we now don't ever pick exit routers which will reject *:* attach_circuit now fails a new stream outright if it will never work. when you get an 'end' cell that resolves an IP, now it will fail the circuit outright if no safe exit nodes exist for that IP. don't try building a new circuit after an 'end' if a suitable one is already on the way. svn:r874
* start tracking a rare bug: package_raw_inbuf gets called with package_window 0Roger Dingledine2003-11-30
| | | | | | | | Nov 25 22:39:18.294 [warn] connection_edge_package_raw_inbuf(): called with package_window 0. T ell Roger. svn:r870
* stop complaining as loudly when a dns resolve failsRoger Dingledine2003-11-30
| | | | svn:r869
* Fix a few bugs in sending and receiving DNS resultsNick Mathewson2003-11-23
| | | | svn:r864
* Separate failure-count tracking from circuit-launching.Nick Mathewson2003-11-19
| | | | | | | | Increment failure counts only when circuits close without having been built. Reset failure counts only on the second, and when circuits are done building. svn:r847
* use the tor_malloc_zero wrapperRoger Dingledine2003-11-18
| | | | svn:r837
* stop client_dns_clean from calling malloc(0)Roger Dingledine2003-11-18
| | | | svn:r831
* Fix bytesex issues on in.s_addrNick Mathewson2003-11-17
| | | | svn:r826
* continue the circuit_deliver_relay_cell forward-failure bughuntRoger Dingledine2003-11-17
| | | | svn:r823
* Fix a segfault caused by a weird logic error and masked by another.Nick Mathewson2003-11-17
| | | | svn:r820
* recognize in-progress circs and don't start redundant onesRoger Dingledine2003-11-17
| | | | | | | quickly notice streams that don't have a circ on the way, and start one svn:r819
* bugfixesRoger Dingledine2003-11-16
| | | | svn:r818
* change when circuits are built and expiredRoger Dingledine2003-11-16
| | | | | | | not quite happy with it yet svn:r817
* initial patches on patchesRoger Dingledine2003-11-16
| | | | svn:r814
* Finish implementing the rest of the exitpolicy stuff, except for ↵Nick Mathewson2003-11-16
| | | | | | automatically starting circuit builds. svn:r813
* Improved exit policy syntax; basic client-side DNS caching.Nick Mathewson2003-11-14
| | | | | | | | | | | | | | | | | | | | - Exit policies now support bitmasks (18.0.0.0/255.0.0.0) and bitcounts 18.0.0.0/8. Policies are parsed on startup, not when comparing to them. - desired_path_len is now part of an opaque cpath_build_state_t structure. - END_REASON_EXITPOLICY cells no longer include a port. - RELAY_COMMAND_CONNECTED cells now include the IP address we've connected to. - connection_edge now has a client_dns cache to remember resolved addresses. It gets populated by RELAY_COMMAND_CONNECTED cells and END_REASON_EXITPOLICY cells. It gets used by connection_ap_handshake_send_begin. We don't compare it to exit policies yet. svn:r812
* connection_ap_handshake_send_begin always succeedsRoger Dingledine2003-11-12
| | | | svn:r798
* Make crypto_pseudo_rand* never fail.Nick Mathewson2003-11-12
| | | | svn:r797
* point out bugRoger Dingledine2003-11-11
| | | | svn:r791
* leave conn->socks_request around after the beginRoger Dingledine2003-11-11
| | | | | | | that way we can reuse it if we need to try another begin later svn:r788
* conn->socks_version is obsoleteRoger Dingledine2003-11-11
| | | | svn:r787
* respond to nick's questionsRoger Dingledine2003-11-11
| | | | svn:r786
* Rename aci to circ_id throughout.Nick Mathewson2003-11-11
| | | | svn:r784
* Make AP connections wait for a circuit if none exists.Nick Mathewson2003-11-11
| | | | | | | | | | | | | 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
* client now survives going offline betterRoger Dingledine2003-11-10
| | | | | | | | | fix badness in usage() if neither socksport nor orrport is defined, quit obsolete connection_flush_buf() svn:r780
* play with connection_edge_send_commandRoger Dingledine2003-10-22
| | | | | | | maybe more robust now svn:r655
* make end relay cells have payloadsRoger Dingledine2003-10-22
| | | | | | | move default exit policy into config files svn:r653
* send the end cell when we realize we're going to end,Roger Dingledine2003-10-21
| | | | | | | | | | | | | | | not when we're closing the stream. this lets us put a payload in the end cell if we want to, to describe why we're closing the stream. there are still some places where we don't send the end cell immediately. i need to track them down. but it's a low priority, since i've made it send the end cell when we close the stream if we haven't already sent it. svn:r640
* clean up logging, allow user to specify log filesRoger Dingledine2003-10-15
| | | | | | | | | | | | If DebugLogFile is specified, log to it at -l debug If LogFile is specified, log to it at the -l from the commandline (default info) If no LogFile *and* not a Daemon, then log to stdout. Make conn->s = -1 by default (this might break things) When kill -USR1, prefer to log at INFO, but make sure they always see it. svn:r596
* i'm a little teapot, short and stoutRoger Dingledine2003-10-14
| | | | | | | cvs compiles again svn:r581
* fix segfault (connecting to dirserver when network is down)Roger Dingledine2003-10-13
| | | | svn:r580
* change WARNING to WARNRoger Dingledine2003-10-10
| | | | | | | and fix a few typos svn:r571
* Refactor, rename, and clarifyNick Mathewson2003-10-09
| | | | svn:r569
* 0.0.2pre11, new licenseRoger Dingledine2003-10-08
| | | | svn:r564
* Update LICENSE and copyright dates.Nick Mathewson2003-10-08
| | | | svn:r560
* no need to trigger an assert if socks handshake is malformedRoger Dingledine2003-10-06
| | | | svn:r542
* refactor around connection_edge_send_command()Roger Dingledine2003-10-04
| | | | svn:r539
* wrap strdup; prefer time() to gettimeofday()Roger Dingledine2003-10-04
| | | | svn:r538
* refactor so connection_write_to_buf() never failsRoger Dingledine2003-10-04
| | | | svn:r537
* socks5 now worksRoger Dingledine2003-10-04
| | | | | | | (or at least, we can talk to mozilla.) svn:r536
* Add new cell fullness and bandwidth stats.Nick Mathewson2003-10-02
| | | | svn:r533
* clean up receiver buckets; prepare for payloads in relay_end; note a few bugsRoger Dingledine2003-09-27
| | | | svn:r502
* connection_new() can't ever failRoger Dingledine2003-09-27
| | | | svn:r497
* first pass: obey log conventionRoger Dingledine2003-09-26
| | | | | | | | | | | | | | | | | | | | | 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
* Refactor buffers; implement descriptors.Nick Mathewson2003-09-25
| | | | | | | | | | | | | | | | | '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
* bugfixes and note missing featuresRoger Dingledine2003-09-21
| | | | | | | | | | | | | 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
* leave the socks handshake on the inbuf until it's completeRoger Dingledine2003-09-18
| | | | | | | | | | | 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
* bugfixes and refactoringsRoger Dingledine2003-09-16
| | | | svn:r468
* clean up exported api'sRoger Dingledine2003-09-16
| | | | svn:r461