aboutsummaryrefslogtreecommitdiff
path: root/src/or/onion.c
Commit message (Collapse)AuthorAge
* remove trailing whitespaceRoger Dingledine2003-12-17
| | | | svn:r951
* end-to-end integrity checking now worksRoger Dingledine2003-12-17
| | | | | | | | initialize digests from shared secrets at handshake make circuit_send_next_onion_skin use connection_edge_send_command svn:r948
* move cell size to 512 bytesRoger Dingledine2003-12-16
| | | | | | | | | move length to 2 bytes, put it in the relay header remove 4 reserved bytes in cell add 4 bytes to relay header for the integrity check svn:r942
* add H(K|1) to the onionskin replyRoger Dingledine2003-12-16
| | | | | | | | | | verify it at the client end abstract the onionskin handshake lengths breaks backward compatibility (again) svn:r941
* start to track the 'unexpected relay cell' warningRoger Dingledine2003-12-14
| | | | svn:r928
* add options.ExcludedNodes -- nodes that are never picked in path buildingRoger Dingledine2003-12-14
| | | | svn:r924
* more general cleanupRoger Dingledine2003-12-14
| | | | svn:r915
* make options.ExitNodes workRoger Dingledine2003-12-13
| | | | | | | | if your best choices happen to include any of your preferred exit nodes, you choose among just those preferred exit nodes. svn:r911
* revamp circuit node selection to use smartlists:Roger Dingledine2003-12-13
| | | | | | | | | * now we know for sure if an acceptable node is available; we don't have to keep guessing and checking * we try options.EntryNodes first for picking the first node svn:r904
* use the smartlist to pick random routers, rather than our own idiomRoger Dingledine2003-12-13
| | | | svn:r898
* if >=2 circs are being built that handle a given stream,Roger Dingledine2003-12-12
| | | | | | | no need to have new circs handle it too. svn:r896
* our circuit symmetric key (for aes) is 127 bits, not 128 bits.Roger Dingledine2003-12-09
| | | | | | | we accept that. svn:r892
* general cleanupsRoger Dingledine2003-12-07
| | | | svn:r889
* break routers.c into router.c for stuff the router does,Roger Dingledine2003-12-06
| | | | | | | and routerlist.c for handling routerlist. svn:r887
* terminology shift:Roger Dingledine2003-12-05
| | | | | | | | | | | | | directory is the string that dirserv.c and directory.c deal with routerlist is routerinfo's that are bundled together in routers.c rename some of the get_routerlist functions to set_routerlist preparing to break into router.c for stuff the router does, and routerlist.c for handling routerlist. svn:r886
* pick nodes for a circuit only from those the directory says are upRoger Dingledine2003-12-03
| | | | svn:r880
* stop segfault when choose_good_exit_server returns NULLRoger Dingledine2003-12-03
| | | | svn:r879
* 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
* simplify: options.OnionRouter==1 iff options.ORPort>0Roger Dingledine2003-11-20
| | | | svn:r857
* Patch last patch to last patchNick Mathewson2003-11-19
| | | | svn:r845
* Patch last patch.Nick Mathewson2003-11-19
| | | | svn:r843
* Skip non-running routers for exit node selectionNick Mathewson2003-11-19
| | | | svn:r842
* bugfix: sometimes we closed a circ while cpuworker was cranking,Roger Dingledine2003-11-18
| | | | | | | and it didn't notice svn:r841
* bugfix: don't ask for ->next of an expired circuitRoger Dingledine2003-11-18
| | | | | | | | | | | | | | | bugfix: keep going when a circ fails in circuit_n_conn_open (make circuit_enumerate_by_naddr_nport obsolete) bugfix: make circuit_n_conn_open only look at circ's that start at us bugfix: only try circuit_n_conn_open if we're an OP. Otherwise we expect connections to always already be up. bugfix: when choosing path length, pay attention to whether the directory says a router is down. bugfix: when picking good exit, skip routers which are known to be down (more work needs to be done on this one) svn:r838
* use the tor_malloc_zero wrapperRoger Dingledine2003-11-18
| | | | svn:r837
* "I don't think it's quite fair to condemn a whole program because of aNick Mathewson2003-11-17
| | | | | | | | single slip-up." -- General "Buck" Turgidson, _Doctor Strangelove_ svn:r828
* comment choose_good_exit_serverNick Mathewson2003-11-17
| | | | svn:r822
* Fix a segfault caused by a weird logic error and masked by another.Nick Mathewson2003-11-17
| | | | svn:r820
* bugfixesRoger Dingledine2003-11-16
| | | | svn:r818
* 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
* bump default pathlen to 3; clean up surrounding codeRoger Dingledine2003-11-13
| | | | svn:r810
* lay groundwork for EntryNodes and ExitNodesRoger Dingledine2003-11-12
| | | | svn:r805
* Make crypto_pseudo_rand* never fail.Nick Mathewson2003-11-12
| | | | svn:r797
* Remove dead codeNick Mathewson2003-11-12
| | | | svn:r794
* Compute paths as we build them.Nick Mathewson2003-11-12
| | | | svn:r793
* Refactor onion_generate_cpath to build cpaths one hop at a time. ThisNick Mathewson2003-11-12
| | | | | | | | | | | is a the first step in computing hops one step at a time. Next, we move the responsibility for calling onion_extend_cpath into circuit.c (Later, we may want to special-case onion_extend_cpath to treat entry and exit routers differently.) svn:r792
* Rename aci to circ_id throughout.Nick Mathewson2003-11-11
| | | | svn:r784
* move closer to being able to reload config on HUPRoger Dingledine2003-10-21
| | | | | | | | rename APPort to SocksPort introduce new tor_free() macro svn:r642
* change WARNING to WARNRoger Dingledine2003-10-10
| | | | | | | and fix a few typos svn:r571
* Refactor, rename, and clarifyNick Mathewson2003-10-09
| | | | svn:r569
* Update LICENSE and copyright dates.Nick Mathewson2003-10-08
| | | | svn:r560
* minor fixes; bump to 0.0.2pre10Roger Dingledine2003-10-07
| | | | svn:r551
* refactor so connection_write_to_buf() never failsRoger Dingledine2003-10-04
| | | | svn:r537
* my_routerinfo, router_is_me, and learn_my_address are obsoleteRoger Dingledine2003-10-01
| | | | | | | ACIs are decided now by strcmp'ing nicknames, rather than comparing addr:port svn:r529
* getting closer to having dirserv workingRoger Dingledine2003-09-30
| | | | | | | | we now add our own descriptor to the descriptor list and we rebuild the directory (and dump to disk) after receiving a POST svn:r509
* 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