summaryrefslogtreecommitdiff
path: root/src/or/rendclient.c
AgeCommit message (Collapse)Author
2007-05-22 r12853@catbus: nickm | 2007-05-22 11:36:54 -0400Nick Mathewson
Make connection_array into a smartlist. svn:r10292
2007-05-15 r12764@catbus: nickm | 2007-05-15 17:17:39 -0400Nick Mathewson
Enable (and cope with) more GCC 4.2 warnings. svn:r10196
2007-03-24 r12643@0-41-wifi: nickm | 2007-03-23 14:56:35 -0400Nick Mathewson
Refactor a bunch of functions that take edge_connection_t not to also take a crypt_path_t; the cpath is implicit. svn:r9899
2007-03-09forward-port the bugfix from juliuszRoger Dingledine
svn:r9772
2007-03-04 r12074@catbus: nickm | 2007-03-04 15:11:43 -0500Nick Mathewson
Make all LD_BUG log messsages get prefixed with "Bug: ". Remove manually-generated "Bug: "s from log-messages. (Apparently, we remembered to add them about 40% of the time.) svn:r9733
2007-02-12 r11775@catbus: nickm | 2007-02-12 16:39:09 -0500Nick Mathewson
Update copyright dates. svn:r9570
2006-11-14 r9313@totoro: nickm | 2006-11-13 20:07:41 -0500Nick Mathewson
Try to compile with fewer warnings on irix64's MIPSpro compiler / environment, which apparently believes that: - off_t can be bigger than size_t. - only mean kids assign things they do not subsequently inspect. I don't try to fix the "error" that makes it say: cc-3970 cc: WARNING File = main.c, Line = 1277 conversion from pointer to same-sized integral type (potential portability problem) uintptr_t sig = (uintptr_t)arg; Because really, what can you do about a compiler that claims to be c99 but doesn't understand that void* x = NULL; uintptr_t y = (uintptr_t) x; is safe? svn:r8948
2006-10-31 r9449@Kushana: nickm | 2006-10-31 00:12:02 -0500Nick Mathewson
Dump breakdown of PK operations when we get a USR2 signal. This should help us figure out of we are doing some of them for stupid reasons. svn:r8881
2006-10-17 r9060@totoro: nickm | 2006-10-17 11:12:48 -0400Nick Mathewson
Apply patch from Mike Perry: add more reasons for circuit destroys. (Slightly tweaked to avoid allocating a number for an "internal" reason.) svn:r8739
2006-10-09 r8972@totoro: nickm | 2006-10-09 10:36:22 -0400Nick Mathewson
Patch from Mike Perry: add a REASON field to closed and failed circ events. svn:r8671
2006-08-11 r7328@Kushana: nickm | 2006-08-11 00:04:26 -0700Nick Mathewson
remove an assert that can never be false (an array in a non-null struct cannot be null). svn:r7024
2006-07-26 r6908@Kushana: nickm | 2006-07-26 12:38:52 -0400Nick Mathewson
Refactor connection_t into edge, or, dir, control, and base subtypes. This might save some RAM on busy exit servers, but really matters most in terms of correctness. svn:r6906
2006-07-26 r6903@Kushana: nickm | 2006-07-25 18:22:48 -0400Nick Mathewson
No circuit can be both an intro point and a rend point, so we can merge both the cookie and the pk digest into one "rend_token" field for or circuits. This saves another 20 bytes per or circuit. svn:r6904
2006-07-26 r6902@Kushana: nickm | 2006-07-25 17:30:27 -0400Nick Mathewson
Move rend_query to origin_circuit_t where it belongs; save another 17 bytes per OR circuit. svn:r6903
2006-07-23Don't tell anybody, but we're going OO here. This patch splitsNick Mathewson
circuit_t into origin_circuit_t and or_circuit_t. I fixed some segaults; there may be more. We still need to move more rendezvous stuff into subtypes. This is a trial run for splitting up connection_t; if the approach is insane, please say so soon so we can do something smarter. Also, this discards the old HALF_OPEN code, which nobody seems to want. svn:r6817
2006-06-04Add a new warning to our "warn a lot" list: unused parameters. This means ↵Nick Mathewson
we have to explicitly "use" unuseds, but it can catch bugs. (It caught two coding mistakes so far.) svn:r6532
2006-03-06Add some "to-be-safe" escaped() wrappers to log statements in rend*.c, ↵Nick Mathewson
though I am not 100% sure that each one is necessary. svn:r6088
2006-02-19New config options to address bug 251:Roger Dingledine
FetchServerDescriptors and FetchHidServDescriptors for whether to fetch server info and hidserv info or let the controller do it, and also PublishServerDescriptor and PublishHidServDescriptors. Add AllDirActionsPrivate undocumented option -- if you set it, you'll need the controller to bootstrap you enough to build your first circuits. svn:r6047
2006-02-13the last of the log convention conversion. finally.Roger Dingledine
svn:r6005
2006-02-09Happy new year!Roger Dingledine
svn:r5949
2006-01-17attempted patch for bug 220: don't assert when we've tried all theRoger Dingledine
intro points for a hidden service and we try fetching the service descriptor again. svn:r5838
2006-01-05Add reasons to DESTROY and RELAY_TRUNCATED cells.Nick Mathewson
svn:r5734
2005-12-19more asserts in case weasel can trigger themRoger Dingledine
svn:r5616
2005-12-14Bite the bullet and limit all our source lines to 80 characters, the way IBM ↵Nick Mathewson
intended. svn:r5582
2005-12-10when we changed from log_fn to debug/info/notice/warn/err,Roger Dingledine
we screwed up the formatting in wild and unpredictable ways. fix it before it becomes convention to format logs in wild and unpredictable ways. still need to do src/common/ someday. svn:r5551
2005-11-15Make new logging stuff work on windows; fix a couple of windows typos.Nick Mathewson
svn:r5375
2005-10-25Remove last vestiges of old logging interface.Nick Mathewson
svn:r5317
2005-10-24Use LD_BUG as appropriate; convert rend* and router* to new logging ↵Nick Mathewson
interface; use new circ_log_path interface svn:r5302
2005-10-18Update more files to new log stuff.Nick Mathewson
svn:r5286
2005-10-06Using RAND_pseudo_bytes instead of RAND_bytes is an accident waiting to ↵Nick Mathewson
happen, and does not really speed us up much when we do it. So stop doing it. svn:r5210
2005-10-04Check for named servers when looking them up by nickname;Nick Mathewson
warn when we'recalling a non-named server by its nickname; don't warn twice about the same name. Fix a bug in routers_update_status_from_networkstatus that made nearly all clients never update routerinfo_t.is_named. Try to list MyFamily elements by key, not by nickname. Only warn about names that we generated ourself, or got from the local user. On TLS handshake, only check the other router's nickname against its expected nickname if is_named is set. svn:r5185
2005-09-09clean up the rendezvous warn log msgs, and downgrade some to infoRoger Dingledine
svn:r4964
2005-07-14trivial changes on nick's rendezvous commitRoger Dingledine
svn:r4553
2005-06-29Logic to implement rendezvous/introduction via unknown servers.Nick Mathewson
- Add a new extend_info_t datatype to hold information needed to extend a circuit (addr,port,keyid,onion_key). Use it in cpath and build_state. Make appropriate functions take or return it instead of routerinfo_t or keyid. - #if 0 needless check in circuit_get_by_edge_conn; if nobody triggers this error in 0.1.0.10, nobody will trigger it. - Implement new hidden service descriptor format, which contains "extend info" for introduction points, along with protocol version list. - Parse new format. - Generate new format - Cache old and new formats alongside each other. - Directories serve "old" format if asked in old way, "newest available" format if asked in new way. - Use new format to find introduction points if possible; otherwise fall back. Keep nickname lists and extendinfo lists in sync. - Tests for new format. - Implement new "v2" INTRODUCE cell format. - Accept new format - Use new format if we have a versioned service descriptor that says the server accepts the new format. - Add documentation for functions and data types. svn:r4506
2005-06-11Docment or add DOCDOC comments to undocumented functions in src/or. Make ↵Nick Mathewson
function definition format uniform. svn:r4411
2005-06-09Change end-of-file NLNL convention. It turns out arma I and I agree.Nick Mathewson
svn:r4382
2005-06-09New whitespace normalization rule: no blank line at EOF.Nick Mathewson
svn:r4378
2005-05-03first iteration of scrubbing sensitive strings from logs.Roger Dingledine
also generally clean up log messages. svn:r4174
2005-05-02New and frightening code to implement fast-path first-hop CREATE_FAST cells. ↵Nick Mathewson
Watch out when we bump the version to 0.1.0.6-rc! svn:r4162
2005-04-26hidden service client connections were using some of theirRoger Dingledine
60 seconds fetching the hidserv descriptor, which made them more likely to fail on the first attempt, yet they work fine on the second. so now give them extra time for the first try. svn:r4127
2005-04-02Give better warnings if connection_close_unattached_ap gets called twice or ↵Nick Mathewson
called on a marked connection; rename it to connection_mark_unattached_ap. svn:r3990
2005-04-01update copyright notices.Nick Mathewson
svn:r3982
2005-03-27clean up socks reply stuff more.Roger Dingledine
add a few more reasons so we can be more informative. svn:r3895
2005-03-27stop most cases of hanging up on a socks connection without sendingRoger Dingledine
the socks reject. audit for remaining ones. also make things more uniform so we always remember to hold-open-until-flushed, etc. svn:r3891
2005-03-23Add a magic value to cpath_layer_t to make sure that we can tell valid ↵Nick Mathewson
cpaths from freed ones. I audited this once; it could use another audit. svn:r3831
2005-03-22clean up and refactor some moreRoger Dingledine
svn:r3798
2005-03-22Implement controller's "extendcircuit" directive.Roger Dingledine
Also refactor circuit building so we plan the whole path ahead of time. svn:r3797
2005-01-19Handle unavailable hidden services better. We try each intro pointRoger Dingledine
until none are left, then we try to refetch the descriptor. If it's the same one we had before, then close streams right then. Whenever a new stream arrives, even if it's right after, optimistically try refetching the descriptor, just in case. svn:r3379
2005-01-19bugfix for cvs: we were needing a rendezvous circ, so we cannibalizedRoger Dingledine
a general circ, and called rend_client_rendcirc_has_opened(), which called connection_ap_attach_pending(), which was needing a rendezvous circ, so it cannibalized a general circuit, and called ... svn:r3370
2005-01-17Introduce a notion of 'internal' circs, which are chosen without regardRoger Dingledine
to the exit policy of the last hop. Intro and rendezvous circs must be internal circs, to avoid leaking information. Resolve and connect streams can use internal circs if they want. New circuit pooling algorithm: make sure to have enough circs around to satisfy any predicted ports, and also make sure to have 2 internal circs around if we've required internal circs lately (with high uptime if we've seen that lately). Split NewCircuitPeriod config option into NewCircuitPeriod (30 secs), which describes how often we retry making new circuits if current ones are dirty, and MaxCircuitDirtiness (10 mins), which describes how long we're willing to make use of an already-dirty circuit. Once rendezvous circuits are established, keep using the same circuit as long as you attach a new stream to it at least every 10 minutes. (So web browsing doesn't require you to build new rend circs every 30 seconds.) Cannibalize GENERAL circs to be C_REND, C_INTRO, S_INTRO, and S_REND circ as necessary, if there are any completed ones lying around when we try to launch one. Re-instate the ifdef's to use version-0 style introduce cells, since there was yet another bug in handling version-1 style. We'll try switching over again after 0.0.9 is obsolete. Bugfix: when choosing an exit node for a new non-internal circ, don't take into account whether it'll be useful for any pending x.onion addresses -- it won't. Bugfix: we weren't actually publishing the hidden service descriptor when it became dirty. So we only published it every 20 minutes or so, which means when you first start your Tor, the hidden service will seem broken. svn:r3360