aboutsummaryrefslogtreecommitdiff
path: root/src/or/router.c
Commit message (Collapse)AuthorAge
* Recover better from TCP connections to Tor servers that are broken butRoger Dingledine2005-11-19
| | | | | | | | | | | | | | | | don't tell you (it happens!); and rotate TLS connections once a week. 1) If an OR conn becomes more than a week old, make it obsolete. 2) If it's obsolete and empty, kill it. 3) When an OR makes a second connection to you, allow it. 4) If we want to send a new create cell, but the best conn we've got is obsolete, and the router is 0.1.1.9-alpha-cvs or later, ask for a new conn instead. 5) When we time out on circuit building on the first hop, make that connection obsolete. svn:r5429
* Remove ip address change flapping detection. It is not really needed and I ↵Peter Palfrader2005-11-18
| | | | | | do not think it works quite right. svn:r5423
* On directory servers, old_routers was wasting hundreds of bytes per ↵Nick Mathewson2005-11-05
| | | | | | superseded router descriptor. Roll the signed descriptor info and identifying info into a cache_info struct, and use only that for old_routers. svn:r5349
* more doc cleanups and reorganizingRoger Dingledine2005-11-01
| | | | svn:r5336
* Remove last vestiges of old logging interface.Nick Mathewson2005-10-25
| | | | svn:r5317
* Convert circuituse, command, config, connection, relay, router, test to new ↵Nick Mathewson2005-10-25
| | | | | | logging interface svn:r5308
* Use LD_BUG as appropriate; convert rend* and router* to new logging ↵Nick Mathewson2005-10-24
| | | | | | interface; use new circ_log_path interface svn:r5302
* Avoid potential infinite recursion when building a descriptorNick Mathewson2005-10-24
| | | | svn:r5292
* Refactor routerlist access slightly: always use router_get_by_routerlist(); ↵Nick Mathewson2005-10-18
| | | | | | change its interface; add modifier functions to add/remove elements from the current routerlist (so we can add indices). svn:r5276
* Downgrade a few INFO level logs to DEBUG again. Also add two or three newPeter Palfrader2005-10-17
| | | | | | | | logs in cases where a calling function's log was downgraded and we wouldn't get any log message otherwise. svn:r5263
* start calling it *ListenAddress rather than *BindAddress,Roger Dingledine2005-10-17
| | | | | | | since none of our users know what it means to bind an address or port. svn:r5260
* Check if our IP address has changed every 5 minutes. If it has, update our ↵Peter Palfrader2005-10-12
| | | | | | server descriptor, but not too often svn:r5246
* Do not check whether DirPort is reachable when we are suppressing it because ↵Nick Mathewson2005-10-12
| | | | | | of hibernation. (Backport candidate) svn:r5235
* you can't declare variables in the middle of a blockRoger Dingledine2005-10-07
| | | | svn:r5214
* Make doxygen marginally happierNick Mathewson2005-10-06
| | | | svn:r5208
* Rate-limit warnings related to unrecognized MyFamily elements.Nick Mathewson2005-10-05
| | | | svn:r5204
* Check for named servers when looking them up by nickname;Nick Mathewson2005-10-04
| | | | | | | | | | | | | | | | | | | 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
* link nicknames to trusted directory servers; log these nicknames when ↵Nick Mathewson2005-10-04
| | | | | | mentioning servers; also, when we get a naming conflict; log which nicknames or keys are supposed to bind. svn:r5184
* we were leaking some memory every time the client changes IPsRoger Dingledine2005-09-30
| | | | svn:r5165
* resolve a docdocRoger Dingledine2005-09-30
| | | | svn:r5157
* re-enable dirport testing againRoger Dingledine2005-09-29
| | | | | | | (still need the other half, to notice when it has worked.) svn:r5152
* Be more conservative about whether to advertise our dirport.Roger Dingledine2005-09-29
| | | | | | | | | The main change is to not advertise if we're running at capacity and either a) we could hibernate or b) our capacity is low and we're using a default dirport. svn:r5148
* make the numbers in read-history and write-history into uint64s,Roger Dingledine2005-09-23
| | | | | | | | so they don't overflow and publish negatives in the descriptor. fixes bug 193. svn:r5119
* simplifyRoger Dingledine2005-09-16
| | | | svn:r5081
* correct "your server is reachable" log entries to indicate that it wasRoger Dingledine2005-09-13
| | | | | | | self-testing that told us so. svn:r5034
* Numerous changes to move towards client-side v2 directories.Nick Mathewson2005-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | connection.c: - Add some more connection accessor functions to make directory download redundancy checking work. directory.c, or.h, router.c, routerlist.c: - Start on logic to note when networkstatus downloads fail. dirserv.c, routerlist.c, routerparse.c: - Start maintaining an is_named field in routerstatus_t. Don't actually look at it yet. dirserv.c, routerlist.c: - Remove expired networkstatus objects. or.h: - Make some booleans into bitfields - Add prototypes routerlist.c: - Sort networkstatus list by publication time - Function to remove old (older than 10 days) networkstatus objects. - Function to set a list of routerinfo_ts' status info from the current set of networkstatus objects. - Function to tell which routerinfos we need to download based no the current set of networkstatus objects. - Do not launch a networkstatus download if a redundant one is in progress. routerparse.c: - Keep router entries in networkstatus sorted by digest. svn:r5012
* Only caches download network-status for now, and they use a different ↵Nick Mathewson2005-09-08
| | | | | | strategy. Add an element to connection_t to remember what we are downloading, and a function to recognize our own fingerprint. svn:r4944
* dirserv_add_descriptor() doesn't chew up its argument anymore,Roger Dingledine2005-09-08
| | | | | | | so we can stop protecting it. svn:r4919
* strip obsolete codeRoger Dingledine2005-09-08
| | | | svn:r4918
* More stuff for new directories.Nick Mathewson2005-09-07
| | | | | | | | | | | | | | | | | | | | | | - Distinguish v1 authorities (all currently trusted directories) from v2 authorities (all trusted directories). - Add configuration option for which dirs are v1 authories. - Add configuration option for whether to be a v1 authority. - Make trusted dirserver selection functions take options to choose which functionality we need. - Remove option when getting directory cache to see whether they support running-routers; they all do now. Replace it with one to see whether caches support v2 stuff. - Parse, cache, and serve network-status objects properly. - Serve compressed groups of router descriptors. The compression logic here could be more memory-efficient. - svn:r4911
* if you're an auth dir server, start yourself out as verified.Roger Dingledine2005-09-03
| | | | svn:r4907
* when we think a router is unreachable, pass the message back to theRoger Dingledine2005-08-31
| | | | | | | | server's logs, and make it a 'warn'. also, fix a memory leak for rejected router descriptors. svn:r4889
* refactor -- no actual changesRoger Dingledine2005-08-30
| | | | svn:r4885
* fix compile complaints (and a bug)Roger Dingledine2005-08-26
| | | | svn:r4862
* No need to load cached directory twiceNick Mathewson2005-08-26
| | | | svn:r4860
* Clean up the "add myself as a trusted dirserver" code.Nick Mathewson2005-08-26
| | | | svn:r4849
* Add quotes around filenames in src/orNick Mathewson2005-08-26
| | | | svn:r4845
* Add some documentation; move the signature generation logic into ↵Nick Mathewson2005-08-26
| | | | | | routerparse.c along with the hash generation logic; make router signing use it as well. svn:r4840
* Make a new AssumeReachable config option that will publish anyway.Roger Dingledine2005-08-26
| | | | | | | | Also, let authdirservers start without setting their Address field. Something is still not working though. Will fix in morning. svn:r4839
* Start implementing the server side of the new directory protocol.Nick Mathewson2005-08-25
| | | | | | | | | | | | | | | | | | | | | | | Probably very buggy, since I can't actually run an authdir. Features - Generate and publish new network-status format - Code to cache and re-serve network-status objects generated by others. - Publish individual descriptors (by fingerprint, by "all", and by "tell me yours.") [Still needs compression logic] - Publish client and server recommended versions seprately. - Add digest of descriptor to routerinfo_t, so we can track them better, and length, so we can server them more easily. Cleanups - Unify code to sign directory-like things - Make resolve_my_address() able to tell you which name it wound up resolving. - Unify code to store and serve directory-like things so it all uses cached_dir_t. - Unify code to set the value of cached_dir_t objects. svn:r4835
* be much more conservative about logging reachability complaints.Roger Dingledine2005-08-24
| | | | | | | the ones it logs now are probably genuine problem servers. svn:r4832
* Dirservers now do their own external reachability testing of eachRoger Dingledine2005-08-24
| | | | | | | | | | | | | Tor server, and only list them as running if they've been found to be reachable. Dirservers also log trouble servers, but only start complaining loudly after they've been up for an hour, to reduce false positives. We still need to do something about the fact that it is quite loud when there are many trouble servers. svn:r4829
* fix bad logic that has been lurking for eons, that now prevented usRoger Dingledine2005-08-23
| | | | | | | from uploading descriptors after the first one. svn:r4818
* Make DirPostPeriod config option obsolete.Roger Dingledine2005-08-22
| | | | | | | | | Force new descriptor upload every 18 hours, not 24, to avoid races. Change rate-limiting on new descriptors due to bandwidth changes, from 45 minutes to 20 minutes. svn:r4814
* Implement new (reduced-frequency) upload rules. arma, you should review this.Nick Mathewson2005-08-22
| | | | svn:r4806
* Replace (Fascist)Firewall* with a new ReachableAddresses option that ↵Nick Mathewson2005-08-08
| | | | | | understands address policies. svn:r4751
* Make clients regenerate their keys when their IP address changes.Nick Mathewson2005-08-03
| | | | svn:r4688
* Rename cross-format config.c stuff to config_* and or_options_t-specific ↵Nick Mathewson2005-07-23
| | | | | | stuff to option[s]_* svn:r4641
* if you're an auth dir server, always publish your dirport,Roger Dingledine2005-07-15
| | | | | | | | | even if you haven't yet found yourself to be reachable. this is the cause of Jan Tore Morken's recent or-talk bug. svn:r4575
* forward-port the 0.1.0.11 stuffRoger Dingledine2005-07-01
| | | | svn:r4515