Commit Graph

4212 Commits

Author SHA1 Message Date
Roger Dingledine
07cfeb0198 fix a minor memory leak every time we rebuild the router store,
fix a rare memory leak if something goes wrong while rebuilding it,
and clean up some code. nick, please confirm.

reported by "fookoowa" in flyspray 346 (yay!)


svn:r8789
2006-10-22 08:08:10 +00:00
Roger Dingledine
0f33a548c2 fix a string, pointed out by matt edman.
also fix a bug next to it that i noticed.


svn:r8784
2006-10-21 02:51:35 +00:00
Roger Dingledine
a0ec758f9e stop writing arbitrary memory out on the controller port.
it's an ugly patch, but at least this way we can see that
it's fixed. maybe clean up the whole "@" syntax later on.


svn:r8783
2006-10-20 23:23:19 +00:00
Nick Mathewson
c9a01dea53 r9313@Kushana: nickm | 2006-10-20 17:04:11 -0400
Oops. Conform to spec.


svn:r8782
2006-10-20 21:04:44 +00:00
Nick Mathewson
01bc03eff4 r9312@Kushana: nickm | 2006-10-20 14:45:22 -0400
Add an event type to tell the controller when our opinion of a router status has changed.  I might have missed some cases here.


svn:r8781
2006-10-20 21:04:39 +00:00
Roger Dingledine
0459db2c0d checkpoint some changes as i read diffs
svn:r8780
2006-10-20 19:11:12 +00:00
Nick Mathewson
b27cb38dee r9307@Kushana: nickm | 2006-10-20 13:53:54 -0400
Have connection_about_to_close use an end_reason field in edge_connection_t to tell what reason to tell the controller for closing the stream.  Set end_reason in connection_edge_end, connection_mark_unattached_ap, and everwhere we set edge_has_sent_end.  Add a changelog entry.


svn:r8779
2006-10-20 17:54:48 +00:00
Nick Mathewson
8e94097edb r9306@Kushana: nickm | 2006-10-20 13:27:43 -0400
Enable reasons for stream events in all cases but CLOSED in about_to_close_connection.  That one will take a little longer.


svn:r8778
2006-10-20 17:54:43 +00:00
Nick Mathewson
12af87539b r9303@Kushana: nickm | 2006-10-20 12:07:34 -0400
Start implementing reason extension for stream events to match the one one used by circuit events. (Not a complete implementation yet; actual reasons are not passed to control.c)


svn:r8777
2006-10-20 17:54:36 +00:00
Nick Mathewson
c8c36dd227 r9304@dhcp-18-188-67-85: nickm | 2006-10-20 12:22:46 -0400
Change HT_INIT from a special-case to a macro-calling-a-function like the rest of ht.h.  This might prevent errors if somebody did, I dunno, "HT_INIT(tp, hashtable++)". Based on a patch from Watson Ladd.


svn:r8776
2006-10-20 16:22:53 +00:00
Nick Mathewson
2d7cf75e42 r9298@dhcp-18-188-67-85: nickm | 2006-10-20 11:25:07 -0400
Weasel correctly notes that we should not discard the return value from connection_exit_begin_con.  Right now, the return value is always discardable, so this does not actually cause a bug, but it might later. So fix it.


svn:r8774
2006-10-20 15:26:02 +00:00
Nick Mathewson
e5f064c983 r9290@31-35-219: nickm | 2006-10-20 10:32:33 -0400
Add a GETINFO target so controllers can ask Tor for the current state of a router.  (Results given in networkstatus format.)


svn:r8772
2006-10-20 14:58:29 +00:00
Nick Mathewson
136ed33071 r9289@31-35-219: nickm | 2006-10-20 09:43:22 -0400
Fix longstanding bug in connection_exit_begin_conn():  Since connection_edge_end() exits when the connection is unattached, we were never sending RELAY_END cells back for failed RELAY_BEGIN attempts. Fix this.  This might make clients that were otherwise timing out either fail faster or retry faster, which is good news for us.


svn:r8770
2006-10-20 14:57:46 +00:00
Nick Mathewson
7f8d9e8af2 r9287@Kushana: nickm | 2006-10-19 19:28:31 -0400
Weasel points out that a routerdesc requested by digest can never change.  Weasel is right.


svn:r8766
2006-10-19 23:28:38 +00:00
Nick Mathewson
974bdee183 r9277@Kushana: nickm | 2006-10-19 19:03:05 -0400
Add pragma:no-cache and expires headers so that directory lookups can work better in the presence of caching HTTP proxies. (I would have used Cache-Control, but that is an HTTP/1.1 thing.)  All timeouts are currently wild-assed guesses.


svn:r8765
2006-10-19 23:05:34 +00:00
Nick Mathewson
f47c49228d r9276@Kushana: nickm | 2006-10-19 17:08:15 -0400
Add some more unit tests for policies.


svn:r8764
2006-10-19 23:05:25 +00:00
Nick Mathewson
96caedecc7 r9275@Kushana: nickm | 2006-10-19 16:45:19 -0400
Split smartlist tests into their own function, and add a couple more.  Re-enable strmap iteration tests.  Remove tests for code that doesnt exist any more (parse_nickname_list, identity ciphers).


svn:r8763
2006-10-19 23:05:19 +00:00
Nick Mathewson
7551c44a53 r9274@Kushana: nickm | 2006-10-19 16:16:58 -0400
Add unit tests for tor_mmap_file(); make tor_mmap_t.size always be the size of the file (not the size of the mapping); add an extra argument to read_file_to_str() so it can return the size of the result string.


svn:r8762
2006-10-19 23:05:02 +00:00
Nick Mathewson
126a3f699a r9273@Kushana: nickm | 2006-10-19 15:43:39 -0400
Never discard a descriptor for being too old until either it is recommended by no authorities, or until we download a better (more recent and recommended) one for the same router. This will eventually make it possible for servers to publish less often.


svn:r8761
2006-10-19 23:04:56 +00:00
Nick Mathewson
bfdb93d8bd r9272@Kushana: nickm | 2006-10-19 12:52:37 -0400
Fix an XXX in handling destroy cells: when we get a destroy cell with reason FOO, do not tell the controller REASON=FOO.  Instead, say REASON=DESTROYED REMOTE_REASON=FOO. Suggested by a conversation with Mike Perry.


svn:r8760
2006-10-19 23:04:49 +00:00
Nick Mathewson
4443934702 r9091@totoro: nickm | 2006-10-19 11:45:28 -0400
Change to BadExit logic: Let authorities set an "I list bad exits" flag.  Consider an exit bad if it is listed as bad by more than half of *those* authorities.  This gives us a better migration path.


svn:r8756
2006-10-19 15:45:48 +00:00
Nick Mathewson
df40c2e1ca r9080@totoro: nickm | 2006-10-19 11:00:16 -0400
Oops, forgot the patch: Use corect macro to detect cygwin builds (patch from Pei Hanru)


svn:r8754
2006-10-19 15:02:02 +00:00
Nick Mathewson
3c459a7397 r9077@totoro: nickm | 2006-10-18 11:41:16 -0400
Another patch from Mike Perry; sprintfing a NULL pointer. (with comment).


svn:r8747
2006-10-18 15:41:46 +00:00
Nick Mathewson
efbe87cb6c r9062@totoro: nickm | 2006-10-17 11:19:43 -0400
Fix -Wlots with command.c (a uchar is never -1).  Note also that one of our ifs is very stupid.


svn:r8741
2006-10-17 15:20:20 +00:00
Nick Mathewson
faf7445255 r9061@totoro: nickm | 2006-10-17 11:18:28 -0400
Oops. Libevent 1.2 exists.  Add it to our enum, even though we dont care yet.


svn:r8740
2006-10-17 15:20:15 +00:00
Nick Mathewson
b713b370bf r9060@totoro: nickm | 2006-10-17 11:12:48 -0400
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-17 15:20:00 +00:00
Roger Dingledine
7d33c4b904 clean up and downgrade some log messages
svn:r8727
2006-10-15 07:42:51 +00:00
Roger Dingledine
584d598e8a move the 'time jump' warning back to a higher threshold.
this still occurs on moria sometimes if it's swapping to death.
so be it.


svn:r8725
2006-10-15 02:32:16 +00:00
Nick Mathewson
45b16c2d9e r9021@totoro: nickm | 2006-10-13 01:42:45 -0400
Fix for last patch. "", though empty, is true.  This ain't Python, Nick.


svn:r8701
2006-10-13 05:42:57 +00:00
Nick Mathewson
d453fd3709 r9019@totoro: nickm | 2006-10-13 01:32:34 -0400
Fix extraneous space in CIRC events when path is empty.


svn:r8700
2006-10-13 05:36:00 +00:00
Nick Mathewson
78043b8478 r9017@totoro: nickm | 2006-10-13 01:27:33 -0400
Second patch to work on circuit close reasons from Mike Perry.  Disabled partially; see comment.  Whitespace cleaned up.


svn:r8699
2006-10-13 05:27:59 +00:00
Nick Mathewson
eca28f24f5 r9004@totoro: nickm | 2006-10-11 18:05:24 -0400
Add client support for a 'BadExit' flag, so authorities can say "Server X is a poor choise for your nytimes.com connections, as it seems to direct them to HoorayForMao.com or (more likely) WouldYouLikeToBuyTheseFineEncyclopedias.com"
 


svn:r8690
2006-10-11 22:06:01 +00:00
Nick Mathewson
97e17d817b r8985@totoro: nickm | 2006-10-10 19:39:57 -0400
Fix a signed/unsigned compare in eventdns.c


svn:r8685
2006-10-10 23:46:33 +00:00
Roger Dingledine
552d828def - Stop triggering asserts if the controller tries to extend hidden
service circuits.
(also found by mwenge)


svn:r8682
2006-10-09 22:26:21 +00:00
Roger Dingledine
655859f76b When reporting verbose nicknames in entry_guards_getinfo(), avoid
printing a duplicate "$" in the keys we send. (Reported by mwenge)


svn:r8681
2006-10-09 21:26:34 +00:00
Roger Dingledine
86263acf95 Security bugfixes:
When the user sends a NEWNYM signal, clear the client-side DNS
  cache too. Otherwise we continue to act on previous information.


svn:r8679
2006-10-09 21:11:50 +00:00
Roger Dingledine
81dd9720f2 whitespace tweaks
svn:r8677
2006-10-09 20:54:51 +00:00
Nick Mathewson
69e0843f7c r8983@totoro: nickm | 2006-10-09 14:19:18 -0400
Add missing ! to code to generate short/verbose nicknames for orconn events.


svn:r8674
2006-10-09 18:19:32 +00:00
Nick Mathewson
26283e69ba r8973@totoro: nickm | 2006-10-09 11:45:47 -0400
Touch up last patch (to add REASON to CIRC events): make some reasons
 more sensible, send reasons only to controllers that have enabled
 extended events, and clean up whitespace.
 
 


svn:r8672
2006-10-09 15:47:50 +00:00
Nick Mathewson
b76fd968b4 r8972@totoro: nickm | 2006-10-09 10:36:22 -0400
Patch from Mike Perry: add a REASON field to closed and failed circ events.


svn:r8671
2006-10-09 15:47:27 +00:00
Nick Mathewson
17abfa6a6a r8971@totoro: nickm | 2006-10-09 10:16:23 -0400
Move definition of ssize_t to torint.h


svn:r8670
2006-10-09 15:47:08 +00:00
Nick Mathewson
829bf4dcd0 r8970@totoro: nickm | 2006-10-09 10:12:53 -0400
Win32 patch from Matt Edman: fix compilation bugs by casting to int; defining SSIZE_T; defining USE_TWOS_COMPLEMENT in windows orconfig.h; and using the proper names for win32 functions on GetProcAddress. Also fixes bug 295.


svn:r8669
2006-10-09 15:46:21 +00:00
Roger Dingledine
c639fd8258 was this one we missed?
svn:r8666
2006-10-09 06:22:31 +00:00
Nick Mathewson
e618c15aff r8967@totoro: nickm | 2006-10-08 23:38:50 -0400
Fix some test and warn failures in last commit


svn:r8665
2006-10-09 03:39:06 +00:00
Nick Mathewson
c6f2d725d0 r8957@totoro: nickm | 2006-10-08 22:35:17 -0400
The otherwise regrettable MIPSpro C compiler warns about values set but never used, and about mixing enums and ints; these are good warnings, and so should be fixed.  This removes some dead code and some potential bugs. Thanks to pnx.


svn:r8664
2006-10-09 02:35:51 +00:00
Nick Mathewson
c341255034 r8956@totoro: nickm | 2006-10-08 22:25:27 -0400
Fix bug with handling EVENT_NEW_DESC with verbose nicknames enabled.  Also, check for tor_vsnprintf failure in controller messages.


svn:r8663
2006-10-09 02:35:43 +00:00
Roger Dingledine
604b13c910 remove some old debugging code
svn:r8657
2006-10-08 23:20:43 +00:00
Nick Mathewson
d1c8fd9759 r8947@totoro: nickm | 2006-10-08 17:04:30 -0400
Fix signed/unsigned compare warning in eventdns.c


svn:r8654
2006-10-08 21:05:06 +00:00
Andrew Lewman
5227531744 Remove spurious void which causes builds to fail in mingw.
svn:r8650
2006-10-08 18:44:02 +00:00
Roger Dingledine
538c54e376 try dirport reachability testing five times less often.
it's already so darn thorough per test -- it chews through
like four circuits before giving up.


svn:r8646
2006-10-08 06:33:02 +00:00
Nick Mathewson
ea00437f74 r8933@totoro: nickm | 2006-10-07 20:33:16 -0400
whitespace fixes; add changelog for last commit.


svn:r8644
2006-10-08 00:33:43 +00:00
Nick Mathewson
1c01797c16 r8932@totoro: nickm | 2006-10-07 20:29:03 -0400
Try to make mingw capable of producing a working tor binary for win98: make all NT-service-related functions get lazy-loaded on demand.  I have no idea if this even compiles.


svn:r8643
2006-10-08 00:33:35 +00:00
Nick Mathewson
e230fe8ea6 r8926@totoro: nickm | 2006-10-07 15:56:14 -0400
refactor circuit_list_path and circuit_list_path_verbose into a common _impl function.


svn:r8642
2006-10-07 19:56:49 +00:00
Nick Mathewson
f07f7a7a12 r8923@totoro: nickm | 2006-10-07 11:44:33 -0400
More doxygen comments


svn:r8637
2006-10-07 16:25:28 +00:00
Roger Dingledine
9fb98b269c finish poking and prodding. i'm all happy now.
svn:r8633
2006-10-07 09:13:30 +00:00
Roger Dingledine
f2bd0e2f16 more minor cleanups
svn:r8630
2006-10-07 06:28:50 +00:00
Roger Dingledine
4f3827f1d1 resolve the entryguard uptime/capacity question. and mark a
new xxx that we'll want to address one day.


svn:r8628
2006-10-07 02:55:44 +00:00
Roger Dingledine
06e5b2283c minor cleanups
svn:r8622
2006-10-07 00:50:39 +00:00
Roger Dingledine
1cf37f90c4 bugfix and cleanups re: entry guards.
svn:r8620
2006-10-06 23:37:07 +00:00
Roger Dingledine
864069f5c7 fix a size_t-to-len compile warning
svn:r8618
2006-10-06 22:37:10 +00:00
Roger Dingledine
1d4bd3990f fetch all the v1 directory stuff way less often. plus, move
around some housecleaning calls so they still occur often.
are some of these redundant or in the wrong order? there are
so many of them, maybe they should be put into a separate
function that has better documentation.


svn:r8607
2006-10-06 09:04:11 +00:00
Roger Dingledine
d1b9de222e cleanups, closer to a changelog
svn:r8606
2006-10-06 07:50:57 +00:00
Roger Dingledine
b6e590a1a5 reapply a patch from adam langley that got clobbered when
nick merged something back in


svn:r8605
2006-10-06 06:46:08 +00:00
Roger Dingledine
baf208d7b3 bugfix: When testing reachability of our dirport, don't launch a new
test if there's already one in progress.


svn:r8604
2006-10-06 04:02:27 +00:00
Nick Mathewson
c15dc2d94c r9101@Kushana: nickm | 2006-10-05 23:05:11 -0400
Trivial fix for solaris build.  Libevent will want to use its own fix here, and probably already has.


svn:r8601
2006-10-06 03:05:19 +00:00
Nick Mathewson
4767d533f7 r9097@Kushana: nickm | 2006-10-05 14:51:57 -0400
Make eventdns.c formatting a little closer to evdns.c in libevent; add some bulletproofing to APPEND16 macro; clean some messages.


svn:r8600
2006-10-05 19:22:26 +00:00
Roger Dingledine
64b5fd3194 checkpoint some cleanups
svn:r8599
2006-10-05 08:23:21 +00:00
Nick Mathewson
5391ceb21a r9087@Kushana: nickm | 2006-10-04 01:19:15 -0400
We're trying to catch the kind of jerk who'd hijack zy6pzwohtnlq.test,
 not the kind of lunatic who'd hijack zy6pzwohtnlq%s.test, though
 apparently those exist too.
 


svn:r8595
2006-10-04 05:19:40 +00:00
Nick Mathewson
50320ac420 r8862@totoro: nickm | 2006-10-03 14:54:14 -0400
Make verbose names get used (when appropriate and selected) in responses to getinfo requests.


svn:r8593
2006-10-03 19:00:18 +00:00
Nick Mathewson
4c10464e13 r8861@totoro: nickm | 2006-10-03 14:49:54 -0400
Fix bug in r8579: TrackHostExits .foo.bar implies TrackHostExits foo.bar; also fix logic error.


svn:r8592
2006-10-03 19:00:12 +00:00
Nick Mathewson
1ae7282d9b r8857@totoro: nickm | 2006-10-03 13:54:21 -0400
Implement ORCONN with verbose names.


svn:r8588
2006-10-03 18:59:52 +00:00
Nick Mathewson
55bd42d50f r8841@totoro: nickm | 2006-10-02 15:59:21 -0400
Add EXTENDED_EVENTS to the USEFEATURE command; move flag from connection_t into control_conn, since we will probably grow more of these.


svn:r8585
2006-10-03 18:58:56 +00:00
Nick Mathewson
c796adc7df r8840@totoro: nickm | 2006-10-02 15:56:16 -0400
Add USEFEATURE to control changes to control protocol.  Use like __future__ directive from Python.  Will spec before pushing changes. No, really. :)


svn:r8584
2006-10-03 18:58:52 +00:00
Nick Mathewson
eb0f51f2a3 r8839@totoro: nickm | 2006-10-02 15:31:49 -0400
Make a field longer to accomodate verbose nicknames; note that verbose nicknames will never reach this point.


svn:r8583
2006-10-03 18:58:47 +00:00
Nick Mathewson
6e0b90a902 r8838@totoro: nickm | 2006-10-02 15:24:39 -0400
Partial implementation of revised nickname syntax for controllers.  Implement ability to look up routers by "verbose" nicknames; add a per-v1-control-connection flag to turn the feature on in events.  Needs testing, spec, ability to actually turn on the flag, double-checking that we wont overflow any nickname buffers, and changelog.


svn:r8582
2006-10-03 18:58:40 +00:00
Roger Dingledine
246fecb585 the other half of the is_local_IP patch
svn:r8581
2006-10-03 05:45:58 +00:00
Nick Mathewson
4c56ac93ca r8851@totoro: nickm | 2006-10-02 18:13:27 -0400
Remove/clarify some XXXs for no longer being accurate; for begin things we do not indend to fix; for already being parts of big todo issues (like "/* XXX ipv6 */"); etc. Also fix some spaces.


svn:r8580
2006-10-02 22:13:42 +00:00
Nick Mathewson
4de9f45d6f r8850@totoro: nickm | 2006-10-02 17:21:11 -0400
Make TrackExitHosts case-insensitive, and fix the behavior of .suffix TrackExitHosts items to avoid matching in the middle of an address. (Resolves an XXXX)


svn:r8579
2006-10-02 22:13:37 +00:00
Nick Mathewson
bff83b666c r8846@totoro: nickm | 2006-10-02 16:59:57 -0400
Move is_local_IP to config.c; have it check for same-/24; make it used only for reachability (not for banwidth, because that is probably not what we want). Fixes an XXX.


svn:r8578
2006-10-02 21:00:35 +00:00
Nick Mathewson
14f9b537d1 r8835@totoro: nickm | 2006-10-02 12:54:41 -0400
Improve error messages from AUTHENTICATE attempts to controller.


svn:r8574
2006-10-02 18:08:46 +00:00
Roger Dingledine
a3efc8e3d1 - V1 authorities should set "HSAuthoritativeDir 1" to continue being
hidden service authorities too.
- Just because your DirPort is open doesn't mean people should be
  able to remotely teach you about hidden service descriptors. Now
  only accept rendezvous posts if you've got HSAuthoritativeDir set.


svn:r8573
2006-10-01 22:16:55 +00:00
Nick Mathewson
57ffca883d r8826@totoro: nickm | 2006-10-01 17:58:45 -0400
Disprefer exit nodes for entry, middle positions (fixes bug 200).  Also, switch to using a uint64_t to hold "total bandwidth for all nodes" under consideration; crypt_rand_int would have died at 2GB/s network capacity.


svn:r8571
2006-10-01 21:59:09 +00:00
Roger Dingledine
3fcf736c83 misc touchups
svn:r8568
2006-10-01 21:42:44 +00:00
Nick Mathewson
ce72a9914e r8822@totoro: nickm | 2006-10-01 16:24:22 -0400
Fix bug 303: reject attempts to use Tor as a one-hop proxy.


svn:r8566
2006-10-01 20:50:11 +00:00
Roger Dingledine
7ed921708f Track down a seg fault that's been bothering me a while: if you
enable your dirport as a client, you'll crash.


svn:r8561
2006-10-01 07:53:17 +00:00
Roger Dingledine
4096e577c5 if we fail to build a circuit to an intended enclave, and it's
not mandatory that we use that enclave, stop wanting it.


svn:r8559
2006-10-01 06:41:13 +00:00
Roger Dingledine
96a4cb1dfa touchups
svn:r8558
2006-10-01 04:55:12 +00:00
Roger Dingledine
e6f4431722 stop trying to hammer router_rebuild_descriptor() when we don't
have a public address we like yet.


svn:r8554
2006-09-30 20:40:26 +00:00
Roger Dingledine
0fb7a7de95 Bugfix: when we tunnel our dir fetches via tor, don't believe
the X-Forwarded-For header.


svn:r8553
2006-09-30 20:14:15 +00:00
Nick Mathewson
fc9dd98d4c r8805@totoro: nickm | 2006-09-30 16:07:13 -0400
Oops; nameserver list is circular.


svn:r8552
2006-09-30 20:07:37 +00:00
Roger Dingledine
075cb54d9b make hidden service predicted circuits correct rather than
exactly incorrect. i wonder how much this will help.


svn:r8550
2006-09-30 19:22:24 +00:00
Nick Mathewson
723ff1c93d r8800@totoro: nickm | 2006-09-29 23:10:49 -0400
Resolve bug 336: When displaying circuit paths with non-named routers, use their digests, not their nicknames.


svn:r8548
2006-09-30 03:11:13 +00:00
Nick Mathewson
2cb956d1f5 r9036@Kushana: nickm | 2006-09-29 18:59:51 -0400
I am glad that arma reviews my patches.


svn:r8546
2006-09-29 22:59:59 +00:00
Nick Mathewson
c2d304366b r9032@Kushana: nickm | 2006-09-29 18:51:42 -0400
Now, all log messages should be distinct.


svn:r8545
2006-09-29 22:51:47 +00:00
Nick Mathewson
7d366f61cb r9025@Kushana: nickm | 2006-09-29 18:33:13 -0400
Differentiate more duplicated log entries


svn:r8542
2006-09-29 22:33:40 +00:00
Nick Mathewson
8308a37908 r9023@Kushana: nickm | 2006-09-29 17:27:24 -0400
Make distinct all non-bug messages at notice or higher that appear 3 or more times.


svn:r8541
2006-09-29 22:33:34 +00:00
Nick Mathewson
b21e656eaf r9007@Kushana: nickm | 2006-09-29 13:17:32 -0400
Make eventdns give strings for DNS errors, not just error numbers.


svn:r8535
2006-09-29 18:13:33 +00:00
Nick Mathewson
0335bd51d3 r9005@Kushana: nickm | 2006-09-29 10:37:55 -0400
Implement DESCCHANGED event to tell controller when our router descriptor changes.


svn:r8533
2006-09-29 18:13:25 +00:00
Nick Mathewson
8992bf6204 r8776@totoro: nickm | 2006-09-29 00:50:46 -0400
Reserve the nickname "Unnamed" for routers that can't pick a hostname; any
 router can call itself Unnamed; directory servers will never allocate Unnamed
 to any particular router; clients won't believe that any router is the
 canonical Unnamed.
 


svn:r8529
2006-09-29 04:51:28 +00:00
Nick Mathewson
9dbfb91f17 r8997@Kushana: nickm | 2006-09-28 23:40:22 -0400
[Needs review.] Add a BEGIN_DIR relay cell type for an easier
 in-protocol way to connect to directory servers through Tor.
 Previously, clients could only connect to director servers over Tor
 from exit nodes, but couldn't get directory information anonymously
 from a non-exit cache without getting a directory server involved.
 
 This needs testing, and needs client-side code to actually exercise it.
 


svn:r8527
2006-09-29 03:50:11 +00:00
Roger Dingledine
4791a4f1c9 combine the cutoff log entries
svn:r8524
2006-09-29 00:19:43 +00:00
Nick Mathewson
907fc6c73e r8977@Kushana: nickm | 2006-09-28 19:56:41 -0400
Make "is a v1 authority", "is a v2 authority", and "is a hidden service authority" into separate flags so we can eventually migrate more trust away from moria.


svn:r8523
2006-09-28 23:57:59 +00:00
Nick Mathewson
1a444e089a r8976@Kushana: nickm | 2006-09-28 17:18:57 -0400
Another tweak to guard logic: ignore check for the Guard flag if a server is listed on EntryNodes.  (Also remove redundant checks for always-set variables.)


svn:r8522
2006-09-28 23:57:56 +00:00
Nick Mathewson
d174cccd0b r8975@Kushana: nickm | 2006-09-28 17:13:53 -0400
Document entry-guard related functions


svn:r8521
2006-09-28 23:57:52 +00:00
Nick Mathewson
d3a06684bc r8974@Kushana: nickm | 2006-09-28 17:05:59 -0400
Improvement to last entry guards patch: track when we last attempted to connect to a node in our state file along with how long it has been unreachable.  Also clarify behavior of parse_iso_time() when it gets extra characters.


svn:r8520
2006-09-28 23:57:49 +00:00
Nick Mathewson
9988112c87 r8973@Kushana: nickm | 2006-09-28 16:53:19 -0400
Refactor entry guard status logic a lot; allow more factors [like not
 having a Guard flag or being listed in ExcludeNodes] to render a guard
 "unlisted" (now called "unusable"); track guard down status (now
 called "unreachable") separately from is_running.


svn:r8519
2006-09-28 23:57:44 +00:00
Peter Palfrader
bc25e87754 r9897@danube: weasel | 2006-09-29 01:08:44 +0200
Add a space in a wrapped log message


svn:r8517
2006-09-28 23:08:54 +00:00
Peter Palfrader
c339bd2713 r9895@danube: weasel | 2006-09-29 01:05:00 +0200
Restore to previous wording that svk merging made me mess up


svn:r8516
2006-09-28 23:05:17 +00:00
Peter Palfrader
540fbaae75 r9889@danube: weasel | 2006-09-29 00:57:42 +0200
bandwidth is not measured in bytes


svn:r8515
2006-09-28 22:59:36 +00:00
Peter Palfrader
9e6c0b8b3b r9888@danube: weasel | 2006-09-29 00:57:02 +0200
Also log guard bandwidth cutoff


svn:r8514
2006-09-28 22:59:25 +00:00
Peter Palfrader
14882b3ec0 r9770@danube: weasel | 2006-09-15 07:20:05 +0200
router_set_networkstatus() gets a list of status documents we asked for from
 connection_dir_client_reached_eof().  However, as a cache we (sometimes?) just
 ask for "all".  router_set_networkstatus() would freak out over that, meaning
 it would log a warning and drop the status document instead of caching it
 as it is supposed to.  Now we let router_set_networkstatus() know if the
 data comes from an all-request so it can do the right thing.


svn:r8513
2006-09-28 22:58:58 +00:00
Nick Mathewson
95132f836a r8750@totoro: nickm | 2006-09-27 20:52:01 -0400
Fix some warnings on mingw; hopefully this should let us build on mingw without warnings.


svn:r8509
2006-09-28 00:53:02 +00:00
Nick Mathewson
ba7868c7b3 r8969@Kushana: nickm | 2006-09-26 18:00:36 -0400
Remove a signed/unsigned comparison in eventdns.c


svn:r8508
2006-09-26 22:03:26 +00:00
Nick Mathewson
cd2425ffa0 r8968@Kushana: nickm | 2006-09-26 17:53:27 -0400
Fix for reverse dns: only assume we will get an answer when the result was success.


svn:r8507
2006-09-26 22:03:23 +00:00
Nick Mathewson
49ad1eefa1 Add an EnforceDistinctSubnets option so that clients who know what they are doing (mainly people with private testing networks) can disable our same-/16 detection.
svn:r8504
2006-09-25 22:12:54 +00:00
Nick Mathewson
01f9e97d43 Minor fix: add code to eventdns so it can free memory on shutdown. This should help valgrind and dmalloc freak out less.
svn:r8503
2006-09-25 20:38:58 +00:00
Nick Mathewson
52e179b942 Trivial fix to make dmalloc happier: release memory held in static member of escaped().
svn:r8502
2006-09-25 18:46:29 +00:00
Nick Mathewson
4fe76e7b6b Free named_server_map on shutdown.
svn:r8500
2006-09-25 16:06:39 +00:00
Roger Dingledine
ad430b9561 checkpoint changelog and general polishing
svn:r8497
2006-09-25 05:59:13 +00:00
Roger Dingledine
bc848c8740 add 6697 (ircs) as longlivedport.
svn:r8496
2006-09-25 05:24:43 +00:00
Roger Dingledine
bda137501e whitespace cleanups
svn:r8485
2006-09-24 20:54:59 +00:00
Nick Mathewson
11b4296b0b Marge changes from libevent evdns to our eventdns. Most are cosmetic, but one or two are stability-related. This should make it easier to push our changes back towards libevent.
svn:r8482
2006-09-24 17:52:23 +00:00
Nick Mathewson
d3af1f2189 Backport candidate: Fix a long-standing server-side DNS bug. When a
client asks us to resolve (not connect to) an address, and we have a
cached answer, give them the cached answer.  Previously, we would give
them no answer at all.



svn:r8478
2006-09-24 17:05:00 +00:00
Nick Mathewson
4218f09820 r8910@Kushana: nickm | 2006-09-22 12:14:05 -0400
Instead of just checking known-invalid addresses for DNS hijacking, we
 now check randomly generated addresses, and if too many of them map to
 the same IP, we assume that IP is the destination of a DNS hijack
 attempt.
 
 A little bird tells me that some DNS hijackers think that declining to
 give an A record for RFC2606 addresses (like .invalid and .example)
 makes them more standards compliant.  Standardswise, this is like an
 illicit brothel making sure that nobody has pulled the tags off the
 mattresss, but that doesn't get us out of working around it.
 


svn:r8465
2006-09-22 20:20:26 +00:00
Nick Mathewson
bde5939ad3 r8909@Kushana: nickm | 2006-09-22 00:38:13 -0400
Consider changes to has_old_dnsworkers as noncosmetic


svn:r8464
2006-09-22 20:20:21 +00:00
Roger Dingledine
aa77298819 remove 8888 as a long lived port. i can't remember why it's
on the list.


svn:r8461
2006-09-22 19:29:26 +00:00
Nick Mathewson
f0f3bbc63b r8901@Kushana: nickm | 2006-09-21 20:43:48 -0400
I tracked a bug in server-side reverse DNS to something concerning the caching code. Ive disabled server-side cacheing for reverse DNS answers for now, and I am noting the bug in the TODO.


svn:r8454
2006-09-22 00:45:08 +00:00
Nick Mathewson
6b3f6afb58 r8895@Kushana: nickm | 2006-09-21 20:05:11 -0400
Debug client-side reverse dns code.


svn:r8452
2006-09-22 00:44:07 +00:00
Nick Mathewson
213658f117 r8894@Kushana: nickm | 2006-09-21 18:30:42 -0400
Specify and implement SOCKS5 interface for reverse hostname lookup.


svn:r8451
2006-09-22 00:43:55 +00:00
Roger Dingledine
9bc8d69dfc remove some loud log messages
svn:r8450
2006-09-22 00:24:27 +00:00
Nick Mathewson
29a756af8e Fix a couple of server-side reverse dns bugs
svn:r8449
2006-09-22 00:10:26 +00:00
Nick Mathewson
63395c747c Fix stupid C mistake. Glad I caught that one fast.
svn:r8448
2006-09-21 22:57:07 +00:00
Nick Mathewson
58200f06a5 Fix bug in r8440: base32 uses 5 bytes per char, not 4.
svn:r8447
2006-09-21 22:24:45 +00:00
Nick Mathewson
4f13cb82fd r8881@Kushana: nickm | 2006-09-21 17:27:59 -0400
Allow resolve requests to non-exits when they are specifically requested (via resolve foo.bar.exit).


svn:r8446
2006-09-21 21:49:36 +00:00
Nick Mathewson
59f9487225 r8880@Kushana: nickm | 2006-09-21 17:26:02 -0400
Trivial patch to appease warn-happy gcc: mark unused parameter


svn:r8445
2006-09-21 21:49:15 +00:00
Nick Mathewson
adade79f68 r8879@Kushana: nickm | 2006-09-21 17:20:31 -0400
Oops from earlier patch; add "opt eventdns" to unittests, fix bug in routerdesc generation.


svn:r8444
2006-09-21 21:49:03 +00:00
Nick Mathewson
7c21dabef1 r8878@Kushana: nickm | 2006-09-21 17:15:47 -0400
Trivial whitespace cleanups.


svn:r8443
2006-09-21 21:48:55 +00:00
Nick Mathewson
6a1746f98f r8877@Kushana: nickm | 2006-09-21 17:12:33 -0400
Consider non-exit servers unsuitable for RESOLVE commands.


svn:r8442
2006-09-21 21:48:42 +00:00
Nick Mathewson
d273d52979 r8876@Kushana: nickm | 2006-09-21 16:58:46 -0400
Trivial cleanup: !!x is a weird way to spell x != NULL.


svn:r8441
2006-09-21 21:48:37 +00:00
Nick Mathewson
e4a9b4de4e r8875@Kushana: nickm | 2006-09-21 16:46:28 -0400
Resolve bug 330: detect ISPs that want to hijack failing DNS requests and basically domain-squat the entire internet.


svn:r8440
2006-09-21 21:48:22 +00:00
Nick Mathewson
04bec67574 r8874@Kushana: nickm | 2006-09-21 15:22:27 -0400
Rename and document SearchDomains and ResolvConf options; warn if ServerDNSResolvConfFile is given but eventdns isnt enabled.


svn:r8439
2006-09-21 21:48:16 +00:00
Nick Mathewson
083e9c2b59 r8873@Kushana: nickm | 2006-09-21 14:38:22 -0400
Fix a bug: Remember, each call to escaped() replaces the value returned from the last call to escaped().


svn:r8438
2006-09-21 21:48:11 +00:00
Nick Mathewson
a942441615 r8872@Kushana: nickm | 2006-09-21 14:00:20 -0400
Implement server-side reverse DNS using eventdns.  Add an option to routerdescs so we can tell which servers have eventdns enabled.


svn:r8437
2006-09-21 21:48:06 +00:00
Nick Mathewson
6b716fdfb9 NEEDS REVIEW. Act on previous comment, and handle named servers differently: now, we allow multiple servers with the same name in the routerlist even if that name is reserved, but we check whether names are reserved when we try to look up routers by nickname. This is a minor security fix. This makes router_add_to_routerlist O(1). This is a backport candidate.
svn:r8433
2006-09-19 23:48:14 +00:00
Nick Mathewson
5ebb949c9f Stop searching routerlist for routers with the same identity as other routers (on router insert): we already have a map for that. (We need to add an index field to routerinfo_t so we can figure out which point in the routerlist to replace.) Also, add a comment to routerlist.c; arma, please advise?
svn:r8432
2006-09-19 23:18:30 +00:00
Nick Mathewson
7b0ec744bc Switch routerlist.c to using memcmp on digests rather than crypto_pk_cmp_keys(); speed up find_whitespace a lot (8x for me) by using a switch statement. This should speed parsing a lot of routers at once by a lot.
svn:r8430
2006-09-19 22:20:09 +00:00
Roger Dingledine
e9abe750ea eventdns patch from Adam Langley
svn:r8429
2006-09-19 21:37:03 +00:00
Nick Mathewson
4bc42f4c18 Fix a bogus free() in eventdns.c. Bug reported by xiando.
svn:r8428
2006-09-19 20:45:20 +00:00
Nick Mathewson
93beeac01d Merge in some bsockets calls, all wrapped inside #if defined(USE_BSOCKETS)
svn:r8427
2006-09-19 20:41:31 +00:00
Roger Dingledine
0494e271e7 good god, that was a bad idea. i've built 500 circuits in the past 5
minutes, trying to establish reachability of my unreachable server.


svn:r8415
2006-09-18 04:59:15 +00:00
Roger Dingledine
4920b9d1cc Fix two bugs: first, "extendcircuit" would crash if you gave it a purpose.
Second, if you give an unknown purpose, it would say:
552 Unknown purpose "purpose=foo"
Now it just says
552 Unknown purpose "foo"


svn:r8412
2006-09-18 04:24:41 +00:00
Nick Mathewson
65974f82fa r8839@Kushana: nickm | 2006-09-17 16:11:59 -0400
Add some client performance XXXXs; try to move some common case tests higher on their decision trees.


svn:r8410
2006-09-17 20:12:10 +00:00
Roger Dingledine
b049b1b014 build testing circuits more rapidly. this has a failure mode
where if circuits fail quickly, we'll fail a lot of them very
quickly and not retry for a while. so be it.


svn:r8407
2006-09-17 06:18:06 +00:00
Roger Dingledine
bfa78b3dea actually, do the bandwidth test anyway, if you've been up at
least 6 hours at your previous address.


svn:r8403
2006-09-15 18:07:11 +00:00
Roger Dingledine
a51ec44466 avoid thrashing the bandwidth exercise when we change IPs a lot.
(we avoid simply by not doing any new tests when we change IPs --
it looks like we retain our previous bandwidth estimates, so there's
no need to do new exercise. though in some cases new exercises may
still be useful. one day we'll do something smarter.)


svn:r8402
2006-09-15 18:03:53 +00:00
Roger Dingledine
c22dc94fe6 make my bandwidth exercises actually happen
svn:r8400
2006-09-15 05:53:00 +00:00
Roger Dingledine
769f9201a6 Send out a burst of long-range drop cells after we've established that
we're reachable. Spread them over 4 circuits, so hopefully a few will
be fast. This exercises our bandwidth and bootstraps us quicker.


svn:r8399
2006-09-15 05:30:25 +00:00
Peter Palfrader
ba091ae5d7 r9770@danube: weasel | 2006-09-15 07:20:05 +0200
router_set_networkstatus() gets a list of status documents we asked for from
 connection_dir_client_reached_eof().  However, as a cache we (sometimes?) just
 ask for "all".  router_set_networkstatus() would freak out over that, meaning
 it would log a warning and drop the status document instead of caching it
 as it is supposed to.  Now we let router_set_networkstatus() know if the
 data comes from an all-request so it can do the right thing.


svn:r8398
2006-09-15 05:20:16 +00:00
Peter Palfrader
5beb114744 r9767@danube: weasel | 2006-09-15 06:27:48 +0200
Minor documentation fix


svn:r8397
2006-09-15 04:29:36 +00:00
Nick Mathewson
e58b9c1151 r8819@Kushana: nickm | 2006-09-15 00:27:45 -0400
Implement a smartlist_uniq() that will with luck not end the world.


svn:r8396
2006-09-15 04:27:58 +00:00
Nick Mathewson
ce83f43629 r8817@Kushana: nickm | 2006-09-14 18:31:29 -0400
Patch from steve hildrey: Generate network status correctly on non-versioning dirservers


svn:r8395
2006-09-14 22:34:57 +00:00
Peter Palfrader
2cf6cfe189 r9758@danube: weasel | 2006-09-14 07:10:12 +0200
Add a comment


svn:r8391
2006-09-14 05:17:02 +00:00
Peter Palfrader
7fcec09560 r9753@danube: weasel | 2006-09-14 07:07:02 +0200
Remove duplicates from MyFamily


svn:r8390
2006-09-14 05:07:34 +00:00
Peter Palfrader
9d9e31dcf4 r9752@danube: weasel | 2006-09-14 07:06:49 +0200
Fix some dead code that is on occasion useful


svn:r8389
2006-09-14 05:07:26 +00:00
Nick Mathewson
4f888c9dfc r8808@senior-two-eighty: nickm | 2006-09-14 00:59:54 -0400
House style for no-args functions is old-style C, not C++


svn:r8388
2006-09-14 05:00:02 +00:00
Peter Palfrader
984e8f6efb r9736@danube: weasel | 2006-09-14 05:53:06 +0200
Refactor dirserv_parse_fingerprint_file(fname) into dirserv_load_fingerprint_file():
 There is not need to put together the path to the approved-routers file in more than one place.


svn:r8386
2006-09-14 04:53:23 +00:00
Nick Mathewson
1852f503cf r8776@Kushana: nickm | 2006-09-11 22:49:53 -0400
Avoid crash when telling controller stream-status and a stream is detached.  Fixes bug 334. Backport candidate.


svn:r8370
2006-09-12 02:50:14 +00:00
Roger Dingledine
e56dbb810f start remembering X-Your-Address-Is hints even if you're
a client, so you can become a server more smoothly.


svn:r8359
2006-09-09 19:36:51 +00:00
Roger Dingledine
9af3175687 parameterize the loudness of get_interface_address()
svn:r8358
2006-09-09 19:20:27 +00:00
Roger Dingledine
5f6351ceb3 fix typo, add log message
svn:r8357
2006-09-09 19:16:07 +00:00
Roger Dingledine
0c3cc15898 fix encoding in "getinfo addr-mappings" response.
fix error code when "getinfo dir/status/" fails.


svn:r8355
2006-09-09 03:38:03 +00:00
Roger Dingledine
29b6d6560e add a "getinfo address" controller command.
svn:r8354
2006-09-09 03:18:39 +00:00
Roger Dingledine
25cb9453d7 possibly make tor build and run on cygwin again.
svn:r8353
2006-09-08 20:48:43 +00:00
Peter Palfrader
fdd56dee69 r9695@danube: weasel | 2006-09-08 18:11:53 +0200
Make tor build with -O0


svn:r8352
2006-09-08 16:12:15 +00:00
Mike Chiussi
f9f281251b another typo
svn:r8351
2006-09-08 09:05:07 +00:00
Mike Chiussi
1ee88bb01a fixed typo in eventdns.c
svn:r8350
2006-09-08 09:02:14 +00:00
Nick Mathewson
c063c7b8cb r8757@Kushana: nickm | 2006-09-07 13:07:46 -0400
Fix more compile warnings on Woody.


svn:r8349
2006-09-07 19:00:51 +00:00
Nick Mathewson
8a12d9ae2e r8755@Kushana: nickm | 2006-09-07 12:31:57 -0400
Tabify eventdns


svn:r8348
2006-09-07 16:32:06 +00:00
Nick Mathewson
4246490b81 r8753@Kushana: nickm | 2006-09-07 12:23:25 -0400
Make eventdns spacing consistant


svn:r8347
2006-09-07 16:24:19 +00:00
Mike Chiussi
5d773af545 undid whitespace changes to dns.c
svn:r8346
2006-09-07 06:36:22 +00:00
Mike Chiussi
b931994c6a fixed win32 eventdns snafu
svn:r8345
2006-09-07 06:34:20 +00:00
Mike Chiussi
c40acb86f4 - got rid of tabs
svn:r8344
2006-09-07 04:02:52 +00:00
Mike Chiussi
3c85780e69 - got rid of tabs (i think)
svn:r8343
2006-09-07 03:58:46 +00:00
Mike Chiussi
5af47d1641 - added some debugging lines to load_nameservers_from_registry()
svn:r8342
2006-09-07 03:53:14 +00:00
Roger Dingledine
ae67a044f0 clean up some comments
svn:r8338
2006-09-07 01:23:15 +00:00
Roger Dingledine
43edbf0461 prefer calling it a client rather than an OP
svn:r8334
2006-09-07 01:00:37 +00:00
Mike Chiussi
879fe91d88 rm'ed a tab (sorry)
svn:r8333
2006-09-07 00:54:28 +00:00
Mike Chiussi
91d7ad660f - fixed up typos in eventdns.c
- configure lets user build with eventdns on win32


svn:r8332
2006-09-07 00:51:20 +00:00
Roger Dingledine
5a8563baed new config option AvoidDiskWrites for people running tors on
usb keys and other media that degrades when you write.
not implemented yet, so just a reminder.


svn:r8331
2006-09-07 00:30:29 +00:00
Nick Mathewson
7ed528c5c5 r8733@Kushana: nickm | 2006-09-06 17:35:22 -0400
Add some missing defines to eventdns.c for windows.


svn:r8330
2006-09-06 21:35:30 +00:00
Nick Mathewson
1e26233957 r8731@Kushana: nickm | 2006-09-06 16:33:19 -0400
Try to fix eventdns.c build on windows.


svn:r8329
2006-09-06 20:33:28 +00:00
Nick Mathewson
e10e921386 r8729@Kushana: nickm | 2006-09-06 16:20:40 -0400
Fix dns_cancel_pending_resolve() to realize pending resolves have expiry times, and should not be freed except when they fall off the pqueue.


svn:r8328
2006-09-06 20:22:05 +00:00
Nick Mathewson
365ccf0742 r8725@Kushana: nickm | 2006-09-06 04:39:29 -0400
spawn_func fixes: have cpuworker_main and dnsworker_main confirm to the right interfaces [casting func to void* is icky].  Also, make pthread_create() build without warnings.


svn:r8327
2006-09-06 08:42:20 +00:00
Nick Mathewson
000b7b287c r8724@Kushana: nickm | 2006-09-06 04:32:28 -0400
Fix spaces; restore support for mapping files over 4GB on win32 (?)


svn:r8326
2006-09-06 08:42:16 +00:00
Mike Chiussi
6ec9c1092a - made configure check if we are building for win32
- made configure link to required system dll's if building for win32
- added diffs for libevent 1.1b
- forced user to turn off eventdns if win32 is set 
- cleaned up tor_mmap_file()_win32 (not sure if it's stable)
- cleaned up some warnings and typos




svn:r8322
2006-09-06 01:49:55 +00:00
Roger Dingledine
585ae26783 patch from tup
svn:r8321
2006-09-05 14:30:06 +00:00
Nick Mathewson
b40e639f15 r8708@Kushana: nickm | 2006-09-02 20:34:15 -0400
Fix warnings reported by weasel when compiling Tor on Debian woody.


svn:r8318
2006-09-03 02:13:52 +00:00
Nick Mathewson
21a7880358 r8695@Kushana: nickm | 2006-08-31 14:35:36 -0400
Fix two corner cases in router_dir_info_changed().  This should have no observable effect.


svn:r8311
2006-08-31 18:46:46 +00:00
Nick Mathewson
f170e5798f r8692@Kushana: nickm | 2006-08-31 13:38:07 -0400
Fix bug 327 (part 2): Cast char to unsigned char before passing to toupper/tolower.  (Follow the same idiom as with isupper and friends, in case we run into the same problem on SGI or whereever it was.)


svn:r8310
2006-08-31 17:39:51 +00:00
Nick Mathewson
921bfdb40a r8687@Kushana: nickm | 2006-08-30 19:33:28 -0400
Apply patch from Adam Langley: fix assert() in eventdns.c.  [Fuzzing, apparently, is cool.]


svn:r8308
2006-08-30 23:34:56 +00:00
Nick Mathewson
6c499804bb r8686@Kushana: nickm | 2006-08-30 18:01:35 -0400
Remove bogus whitespace


svn:r8307
2006-08-30 23:34:49 +00:00
Nick Mathewson
8138d1c0a4 r8654@Kushana: nickm | 2006-08-28 16:50:36 -0400
I bet real programmers even have programs that compile.


svn:r8278
2006-08-28 20:50:47 +00:00
Nick Mathewson
dc4951314f r8652@Kushana: nickm | 2006-08-28 16:41:44 -0400
Resolve bug 324: strdup the right variable.


svn:r8277
2006-08-28 20:42:14 +00:00
Roger Dingledine
2499d1db7c and make the comment better, while i'm at it
svn:r8273
2006-08-28 19:02:57 +00:00
Roger Dingledine
2a4d5782ef an even better check -- now servers hang up if they can't write
for a while, and clients hang up if they can't read for a while.


svn:r8272
2006-08-28 19:00:17 +00:00
Roger Dingledine
f75ef94f27 fix bug found by Adam J. Richter: directory clients shouldn't
hang up five minutes after they begin. but directory servers
should still hang up after 5 minutes of failing to deliver
any bytes.


svn:r8271
2006-08-28 18:51:36 +00:00
Roger Dingledine
a76e032b14 put some symbols on the eventdns logging. leave the haphazard
formatting alone.


svn:r8270
2006-08-28 08:24:36 +00:00
Nick Mathewson
dbe0c6f6ef r8609@Kushana: nickm | 2006-08-27 17:24:27 -0400
Add some doxygen, concentrated in dns.c


svn:r8256
2006-08-28 03:16:02 +00:00
Nick Mathewson
54ca0387a5 r8608@Kushana: nickm | 2006-08-27 16:57:47 -0400
Make it possible to change nameserver options while Tor is running.


svn:r8255
2006-08-28 03:15:55 +00:00
Nick Mathewson
be7054c626 r8607@Kushana: nickm | 2006-08-27 15:45:42 -0400
Change configuration strategy for eventdns. Instead of elaborate option set, just allow the user to specify another resolv.conf to use.


svn:r8254
2006-08-28 03:15:50 +00:00
Nick Mathewson
d62f9a03fb r8605@Kushana: nickm | 2006-08-27 14:01:11 -0400
divide eventdns log messages into warn and info messages.


svn:r8252
2006-08-28 03:15:38 +00:00
Roger Dingledine
e17276b2f1 comment out an unused variable; nick, feel free to excise it further.
svn:r8241
2006-08-27 06:58:30 +00:00
Roger Dingledine
94afe807ac stop a big memory leak: we were leaking the whole contents
of cached-routers.new every time we read it.


svn:r8236
2006-08-27 02:12:12 +00:00
Roger Dingledine
9f5856c03d stop three memory leaks. nick, fix these if i'm wrong.
svn:r8235
2006-08-27 02:07:54 +00:00
Roger Dingledine
24ad1e06cf i'm guessing nick meant to check the return value of dns_init.
and revise some log severities to match the convention.


svn:r8234
2006-08-27 01:41:08 +00:00
Roger Dingledine
8297608217 fix typo
svn:r8233
2006-08-27 01:33:35 +00:00
Roger Dingledine
c0cb1c7bd2 remove some more vestiges of cvs
svn:r8229
2006-08-26 06:51:02 +00:00
Roger Dingledine
171a00ec50 fix a log level -- err is for things that kill tor, warn is for
things that tor can recover from.

also, avoid situations where people who don't read their logs
accumulate ten thousand useless files in their datadir.


svn:r8227
2006-08-26 04:48:50 +00:00
Nick Mathewson
fd36eb0788 r8576@Kushana: nickm | 2006-08-25 17:16:01 -0400
Fix bug 314: Instead of checking address_in_virtualrange, check addressmap_have_mapping().  This should be more accurate.  [Rename to addressmap_have_mapping() from addressmap_already_mapped().]


svn:r8226
2006-08-25 21:16:22 +00:00
Nick Mathewson
7739c5c49a r8573@Kushana: nickm | 2006-08-25 16:55:19 -0400
Resolve bug 321 when using dnsworkers: append a period to every address we resolve at the exit node, so that we do not accidentally pick up local addresses, and so that failing searches are retried in the resolver search domains.  (This is already solved for eventdns.)


svn:r8225
2006-08-25 21:02:01 +00:00
Nick Mathewson
c82c4a9e8b r8572@Kushana: nickm | 2006-08-25 16:35:49 -0400
Fix for bug 308: When we have a state file we cannot parse, tell the user, and move it aside.


svn:r8224
2006-08-25 21:01:56 +00:00
Roger Dingledine
0649fa14c1 make our socks5 handling more robust to broken socks clients:
throw out everything waiting on the buffer in between socks
handshake phases, since they can't possibly (so the theory
goes) have predicted what we plan to respond to them.


svn:r8223
2006-08-24 04:51:55 +00:00
Roger Dingledine
9ebaf01096 clean up logging conventions in do_list_fingerprint()
svn:r8222
2006-08-24 00:54:18 +00:00
Roger Dingledine
41d8d77c8b tor --verify-config now exits with -1(255) or 0 depending on whether
the config options are bad or good.


svn:r8221
2006-08-23 23:45:03 +00:00
Nick Mathewson
0f5bfc1521 r7411@Kushana: nickm | 2006-08-17 19:00:25 -0400
patch suggested by Karsten Loesing: respond to SIGNAL command before we execute the signal, in case the signal shuts us down.


svn:r7072
2006-08-17 23:00:32 +00:00
Nick Mathewson
ae5ee4c924 r7405@Kushana: nickm | 2006-08-16 14:38:46 -0400
Implement reverse DNS lookup in eventdns: add new entry point; rename old entry point; revise TODO a little; add facility for parsing dns names.


svn:r7070
2006-08-16 18:47:24 +00:00
Roger Dingledine
6650470575 automatically avoid picking more than one node from the same
/16 network when constructing a circuit.


svn:r7068
2006-08-16 03:44:13 +00:00
Roger Dingledine
d8fc598a2a dns.c:173: warning: control reaches end of non-void function
svn:r7067
2006-08-16 02:18:55 +00:00
Nick Mathewson
163dd78282 r7398@Kushana: nickm | 2006-08-15 00:49:50 -0400
Add missing backslash


svn:r7065
2006-08-15 04:50:33 +00:00
Nick Mathewson
67b775bc6e r7397@Kushana: nickm | 2006-08-15 00:46:18 -0400
Fix eventdns version of dns.c. Man, we need to get rid of this eventdns/dnsworker split.


svn:r7064
2006-08-15 04:50:17 +00:00
Nick Mathewson
7bfb2cf4e8 r7393@Kushana: nickm | 2006-08-14 23:51:07 -0400
remove extraneous #endif


svn:r7063
2006-08-15 03:54:13 +00:00
Nick Mathewson
273ee3e814 r7392@Kushana: nickm | 2006-08-14 23:50:32 -0400
Only do the expensive version of router_have_minimum_dir_info() when the dir info has changed.  Backport candidate, since oprofile suggests that this function and ones it calls account for 25-35% of oprofile samples.


svn:r7062
2006-08-15 03:54:09 +00:00
Nick Mathewson
bc21df6a5c r7386@Kushana: nickm | 2006-08-14 17:43:44 -0400
Patch from Adam Langley.
 
  * I meant getaddrinfo_a, not getaddrinfo_r - fixed
  * Added more checks to the parsing code.
  * It seems you switched an alloca to a malloc, but didn't add any frees
 


svn:r7061
2006-08-14 21:44:45 +00:00
Nick Mathewson
200e24981a r7046@Kushana: nickm | 2006-08-05 13:57:04 -0400
Make it possible for dns_init() to fail; note failure of eventdns configuratoin.


svn:r7059
2006-08-14 21:44:34 +00:00
Nick Mathewson
a5c0aa43a0 r7383@Kushana: nickm | 2006-08-14 16:16:03 -0400
Stop walking entire dns cache for every request, now that we found our hash table bug.


svn:r7057
2006-08-14 20:16:21 +00:00
Roger Dingledine
5194b91053 avoid complaining about our SOCKS proxy proxy.
svn:r7053
2006-08-14 10:00:15 +00:00
Roger Dingledine
9b10f11d39 fix typos and stuff
svn:r7049
2006-08-14 08:55:41 +00:00
Roger Dingledine
bf10d8a06a simplify compare_cached_resolves_by_expiry() to make it match
the idioms of other compare functions. hopefully i didn't
break it?


svn:r7048
2006-08-14 07:08:29 +00:00
Nick Mathewson
6da96f0ed7 r7369@Kushana: nickm | 2006-08-14 02:03:10 -0400
Shortening fields is only one part of making structs shorter. You must also consider alignment padding. Whee.


svn:r7045
2006-08-14 06:03:26 +00:00
Roger Dingledine
2c27cfc38e save 3-7 bytes per edge connection
svn:r7044
2006-08-14 05:53:57 +00:00
Roger Dingledine
6fdc63aed2 simplify the connection_write_to_buf_zlib() wrapper.
svn:r7042
2006-08-13 23:38:30 +00:00
Roger Dingledine
f294575469 fix funny-looking assignment that crashes unit tests
svn:r7027
2006-08-11 07:41:21 +00:00
Roger Dingledine
5647e5c7e6 fix typo, add explanatory comment
svn:r7026
2006-08-11 07:31:16 +00:00
Nick Mathewson
9b5a643475 r7328@Kushana: nickm | 2006-08-11 00:04:26 -0700
remove an assert that can never be false (an array in a non-null struct cannot be null).


svn:r7024
2006-08-11 07:09:52 +00:00
Nick Mathewson
04bf4b0fc4 r7327@Kushana: nickm | 2006-08-11 00:00:36 -0700
Fix a pedantic warning


svn:r7023
2006-08-11 07:09:45 +00:00
Nick Mathewson
09a895e222 r7324@Kushana: nickm | 2006-08-10 23:23:15 -0700
Add more warnings to the list of those we tolerate. Start using GCC attributes more, for better error checking and better code generation.


svn:r7020
2006-08-11 07:09:17 +00:00
Nick Mathewson
02d42d9138 Fix crash in first-time option validation. Oops.
svn:r7018
2006-08-10 19:56:10 +00:00
Nick Mathewson
7ddd9e8cd9 r7304@Kushana: nickm | 2006-08-10 01:58:05 -0700
Fix verbose compilation errors; make sure transparent proxy fails when no method is configured.


svn:r7012
2006-08-10 09:02:26 +00:00
Nick Mathewson
3da737ac98 r7303@Kushana: nickm | 2006-08-10 01:52:19 -0700
whitespace fixes


svn:r7011
2006-08-10 09:02:12 +00:00
Nick Mathewson
74df271e00 r7302@Kushana: nickm | 2006-08-10 01:48:44 -0700
Warn about open TransListenAddress values.


svn:r7010
2006-08-10 09:02:02 +00:00
Nick Mathewson
cd560d8528 r7301@Kushana: nickm | 2006-08-10 01:41:27 -0700
Only open /dev/pf once.


svn:r7009
2006-08-10 09:01:54 +00:00
Nick Mathewson
d893d8c52e r7300@Kushana: nickm | 2006-08-10 01:36:40 -0700
Distinguish netfilter vs pf at configure time based on headers, not on OS.


svn:r7008
2006-08-10 09:01:46 +00:00
Nick Mathewson
5cff4164a0 r7299@Kushana: nickm | 2006-08-10 01:08:58 -0700
Patch from Tup to add support for transparent AP connections: this basically bundles the functionality of trans-proxy-tor into the tor mainline.  Now hosts with compliant pf/netfilter implementations can redirect TCP connections straight to Tor without diverting through SOCKS.


svn:r7007
2006-08-10 09:01:37 +00:00
Roger Dingledine
8075928b2a a way to make tor more stable in crummy situations
svn:r7005
2006-08-10 08:00:54 +00:00
Nick Mathewson
35f0881802 Experimentally re-enable kqueue on OSX when using libevent 1.1b or later. Log when we are doing this, so we can diagnose it when it fails.
svn:r7004
2006-08-10 08:00:13 +00:00
Nick Mathewson
f2a0df4d02 Recommend libevent 1.1b for kqueue and win32 methods; deprecate libevent 1.0b harder; make libevent recommendation system saner.
svn:r7003
2006-08-10 07:39:47 +00:00
Nick Mathewson
7c596c166b r7029@Kushana: nickm | 2006-08-04 14:08:41 -0700
Remove now-spurious size and data arguments from tor_mmap_file


svn:r6987
2006-08-05 17:53:21 +00:00
Nick Mathewson
714d1b66aa r7027@Kushana: nickm | 2006-08-04 13:06:48 -0700
Oops. Fix downcast macro.


svn:r6985
2006-08-05 17:52:51 +00:00
Roger Dingledine
bc2e040669 make svn trunk link again. nick can fix this if it's wrong.
svn:r6982
2006-08-04 20:30:45 +00:00
Nick Mathewson
bf72878cad r7012@Kushana: nickm | 2006-08-03 19:21:25 -0700
Add an "mmap handle" type to encapsulate bookkeeping elements of mmap issues; add prelim win32 impl


svn:r6980
2006-08-04 18:32:43 +00:00
Nick Mathewson
abe27b807e svn:r6979 2006-08-04 18:31:13 +00:00
Nick Mathewson
2c33f385f7 r7011@Kushana: nickm | 2006-08-03 13:26:34 -0700
eventdns: Document functions added to API; make suspended requests go to the front of the queue; check (or explicitly ignore) return values on libevent functions.


svn:r6978
2006-08-04 18:27:10 +00:00
Nick Mathewson
e8f28a71e8 r7010@Kushana: nickm | 2006-08-03 10:47:36 -0700
Enable log message format checking in eventdns.c when __GNUC__ is defined.


svn:r6977
2006-08-04 18:26:40 +00:00
Nick Mathewson
3fa1cdafce r7009@Kushana: nickm | 2006-08-03 10:44:58 -0700
Add functions to eventdns to allow detecting whether we have any nameservers configured, and to change the list of nameservers after initial configuration.


svn:r6976
2006-08-04 18:26:13 +00:00
Nick Mathewson
87939813c3 r7008@Kushana: nickm | 2006-08-03 10:03:39 -0700
Oops. We shouldnt initialize eventdns when we are not being a server and not resolving anything.


svn:r6975
2006-08-04 18:24:41 +00:00
Nick Mathewson
a122bfb439 r7007@Kushana: nickm | 2006-08-03 09:58:30 -0700
Export and use eventdns_config_windows_nameservers(); clean up some comments and log messages.


svn:r6974
2006-08-04 18:24:25 +00:00
Nick Mathewson
19cf66c0f1 Patch from Frediano Ziglio: Windows compilation fixes on eventdns.c.
svn:r6971
2006-08-03 07:46:25 +00:00
Roger Dingledine
3152d44c3a fix a seg fault on exit for clients; and fix a comment.
svn:r6969
2006-08-03 04:22:25 +00:00
Roger Dingledine
ed567c6feb more compile options mean more codepaths
svn:r6963
2006-07-31 20:25:57 +00:00
Nick Mathewson
b9082682fd r6982@Kushana: nickm | 2006-07-31 13:47:19 -0400
documentation and naming tweaks in dns.c


svn:r6961
2006-07-31 18:01:49 +00:00
Nick Mathewson
58c0ac77be r6981@Kushana: nickm | 2006-07-31 13:23:26 -0400
More asserts for cache correctness.


svn:r6960
2006-07-31 18:01:45 +00:00
Nick Mathewson
d934607069 r6979@Kushana: nickm | 2006-07-31 13:16:58 -0400
Add assert_ok functions for strmap and digestmap; use them in unit test code.


svn:r6958
2006-07-31 18:01:27 +00:00
Nick Mathewson
fd0bafb0de r6977@Kushana: nickm | 2006-07-31 13:01:28 -0400
Solve timing-out pending connections. Add pending resolves to expiry queue; when we find an answer, change the pending resolve to "done" and stick the actual answer in the expiry queue as a new entry.  This uses a little more memory, but makes the code simpler than other solutions.


svn:r6956
2006-07-31 18:01:18 +00:00
Nick Mathewson
ccf9c1345e svn:r6955 2006-07-31 18:00:47 +00:00
Nick Mathewson
46574319a2 r6959@Kushana: nickm | 2006-07-29 22:33:18 -0400
start restructuring dns to use priority queues for expiring entries.


svn:r6954
2006-07-31 18:00:18 +00:00
Nick Mathewson
2fe537c57a r6958@Kushana: nickm | 2006-07-29 18:54:15 -0400
Looks like we might need a priority queue.


svn:r6953
2006-07-31 17:59:37 +00:00
Nick Mathewson
8ba913c660 r6952@Kushana: nickm | 2006-07-28 11:09:37 -0400
Add completely untested find-my-nameservers code for win32.


svn:r6952
2006-07-31 17:59:11 +00:00
Roger Dingledine
798b580695 fix assert found by DreadWingKnight: now that rendezvous streams
are attached to p_streams, the p_streams list can consist of both AP
and EXIT conns.


svn:r6945
2006-07-30 04:54:13 +00:00
Roger Dingledine
2bcb081cb1 defense in depth
svn:r6939
2006-07-30 04:32:58 +00:00
Roger Dingledine
c3b79ebf13 a bit more debugging for phobos
svn:r6937
2006-07-30 03:34:44 +00:00
Nick Mathewson
84c2a6c16b r6950@Kushana: nickm | 2006-07-28 10:32:08 -0400
Document split fields better. Now, I think we can take a break from type splitting for a bit.


svn:r6935
2006-07-28 15:11:28 +00:00
Nick Mathewson
85f381153b r6949@Kushana: nickm | 2006-07-28 10:17:38 -0400
Shave another 8 bytes from connection_t: turn inbuf_reached_eof into a bit, and lower timestamp_lastempty to or_connection_t


svn:r6934
2006-07-28 15:11:20 +00:00
Nick Mathewson
6dc13cdbeb r6948@Kushana: nickm | 2006-07-28 10:10:35 -0400
Identify some likely target fields for lowering; lower global_identifier (since we only use it for AP streams and origin circs).


svn:r6933
2006-07-28 15:11:11 +00:00
Roger Dingledine
a5e5074807 resolve typo
svn:r6927
2006-07-27 19:35:11 +00:00
Nick Mathewson
c2f28615ed More asserts in dns.c
svn:r6926
2006-07-27 18:35:56 +00:00
Nick Mathewson
45c3a4365f Get better numbers out of HT_REP_OK
svn:r6924
2006-07-27 17:37:37 +00:00
Nick Mathewson
dc2b7e9af0 Add more asserts in dns_found_answer. This may confirm my theory that dns_purge_resolve is the culprit.
svn:r6922
2006-07-27 17:16:10 +00:00
Nick Mathewson
5227395aba r6922@Kushana: nickm | 2006-07-26 16:32:24 -0400
Rename some fields, compress a bitfield, and document some structs and fields


svn:r6919
2006-07-27 05:03:57 +00:00
Nick Mathewson
dd779d99ea Fix comments that implied that only dir connections had a purpose field, and the code that believed in those comments.
svn:r6918
2006-07-27 04:10:51 +00:00
Nick Mathewson
0bc741ba7f r6918@Kushana: nickm | 2006-07-26 15:22:28 -0400
Fix compilation for eventdns dns.c with split structs.


svn:r6908
2006-07-26 19:29:30 +00:00
Nick Mathewson
ec82db6995 r6909@Kushana: nickm | 2006-07-26 13:05:58 -0400
Clean up wide lines from last patch.


svn:r6907
2006-07-26 19:07:37 +00:00
Nick Mathewson
4ff4577beb r6908@Kushana: nickm | 2006-07-26 12:38:52 -0400
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 19:07:26 +00:00
Nick Mathewson
18771e851f r6907@Kushana: nickm | 2006-07-25 19:03:43 -0400
Realign circuit structs to avoid wasted space.


svn:r6905
2006-07-26 19:07:23 +00:00
Nick Mathewson
e61d28dfb8 r6903@Kushana: nickm | 2006-07-25 18:22:48 -0400
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 19:05:41 +00:00
Nick Mathewson
a88ec48a39 r6902@Kushana: nickm | 2006-07-25 17:30:27 -0400
Move rend_query to origin_circuit_t where it belongs; save another 17 bytes per OR circuit.


svn:r6903
2006-07-26 19:05:34 +00:00
Nick Mathewson
96bcbb1e1c Remove code to special-case "-cvs" ending, since it has not actually mattered since 0.0.9. Perhaps we can special-case even more...
svn:r6898
2006-07-25 04:34:14 +00:00
Peter Palfrader
521c006fd5 Remove .cvsignore files from trunk
svn:r6891
2006-07-25 01:00:48 +00:00
Roger Dingledine
c9b8458f59 publish a new descriptor after we hup. this is important if our
config has changed such that we'll want to start advertising our
dirport now, etc.


svn:r6819
2006-07-23 11:50:03 +00:00
Nick Mathewson
d27cbf5d4b Fix another segfault in assert_circuit_ok.
svn:r6818
2006-07-23 08:13:45 +00:00
Nick Mathewson
7239262f71 Don't tell anybody, but we're going OO here. This patch splits
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-07-23 07:37:35 +00:00
Roger Dingledine
40cc536307 rewrite conn->address for GET commands as well as POST commands.
svn:r6815
2006-07-23 06:41:02 +00:00
Roger Dingledine
0b5ad1bcfb use tor_mem_is_zero() in more places.
svn:r6814
2006-07-23 05:52:27 +00:00
Nick Mathewson
4280218a42 Delete trailing whitespace in eventdns.c
svn:r6813
2006-07-23 05:40:24 +00:00
Nick Mathewson
1c0f02f657 Add (void) lines for unused parameters in eventdns.c
svn:r6812
2006-07-23 05:39:37 +00:00
Nick Mathewson
f4e506f423 Remove STRUCT_OFFSET from config.c
svn:r6811
2006-07-23 05:33:10 +00:00
Roger Dingledine
ee789052b8 whitespace and docs
svn:r6808
2006-07-23 05:18:29 +00:00
Roger Dingledine
00aefaab6b think harder about my logic
svn:r6806
2006-07-22 07:19:11 +00:00
Roger Dingledine
2d6a4d283b i lied, that won't work at all. maybe this will.
svn:r6805
2006-07-22 07:15:34 +00:00
Roger Dingledine
444f096d2d more bulletproof reachability testing
svn:r6804
2006-07-22 05:29:31 +00:00
Nick Mathewson
64c14d8ce3 These asserts will either cause spurious crashes or help debug the pend->conn->s == -1 issue.
svn:r6803
2006-07-21 22:02:58 +00:00
Roger Dingledine
2249180b60 bugfix: if you find yourself reachable, then don't ever make any client
requests (so you stop predicting circuits), then hup, then later your
IP changes, you won't think circuits are working so you won't try to
test reachability, so you won't publish.


svn:r6800
2006-07-21 07:55:35 +00:00
Roger Dingledine
4d5fab4f9a tweak
svn:r6799
2006-07-21 07:53:21 +00:00
Roger Dingledine
9283ddb760 an entry guard that is "unlisted", as well as not known to be "down", is
not therefore "up".


svn:r6798
2006-07-21 07:06:18 +00:00
Roger Dingledine
237c7ecbfd tweak
svn:r6796
2006-07-20 23:45:26 +00:00
Roger Dingledine
97a14b2018 tweak
svn:r6795
2006-07-20 23:33:11 +00:00
Roger Dingledine
db657ea0af don't squeal if the first few retries fail.
svn:r6791
2006-07-18 04:48:59 +00:00
Roger Dingledine
892f671f59 Define a schedule for how long to wait between retrying
application connections. Rather than waiting a fixed amount of
time between each retry, we wait only 5 seconds for the first,
10 seconds for the second, and 15 seconds for each retry after
that. Hopefully this will improve the expected experience.

Addresses bug 297.


svn:r6790
2006-07-18 04:42:32 +00:00
Roger Dingledine
e1f30a5f21 when we find our dirport to be reachable, mark our descriptor
dirty so we'll tell the world. (fixes bug 306 reported by pnx)


svn:r6787
2006-07-18 03:06:55 +00:00
Roger Dingledine
ac258d2cc8 Start publishing one minute or so after we find our ORPort
to be reachable. This will help reduce the number of descriptors
we have for ourselves floating around, since it's quite likely
other things (e.g. DirPort) will change during that minute too.


svn:r6786
2006-07-18 03:06:12 +00:00
Nick Mathewson
7fcb267e24 Oh. And apparently, msvc6 doesnt think very much of doing u64-and-double arithmetic either.
svn:r6785
2006-07-18 02:24:01 +00:00
Roger Dingledine
388ac4126a If we are using an exit enclave and we can't connect, e.g. because
its webserver is misconfigured to not listen on localhost, then back
off and try connecting from somewhere else before we fail.


svn:r6783
2006-07-18 00:59:46 +00:00
Roger Dingledine
a8444c6f53 pick a log domain; resolve an xxxx
svn:r6782
2006-07-18 00:01:12 +00:00
Roger Dingledine
c85745cfe2 parameterize the loudness of log_addr_has_changed(), since it's the
only place where we inform the user of a new IP address, if we're
guessing it from external sources.


svn:r6780
2006-07-17 19:33:54 +00:00
Roger Dingledine
542adb88d7 Make a louder statement the first time we learn a guessed
IP address.


svn:r6779
2006-07-17 08:17:51 +00:00
Roger Dingledine
c055a34cdb huge bugfix: we weren't ever writing an http header when sending
out network statuses! so clients were downloading the whole thing,
and then discarding them because they're malformed.


svn:r6778
2006-07-17 08:11:27 +00:00
Roger Dingledine
a2a89da693 and don't try to build the descriptor every second, if it's dirty
but we don't have a known address.


svn:r6777
2006-07-17 06:59:56 +00:00
Roger Dingledine
42e2057d67 fix some more places where we shouldn't crash if we can't build
our own descriptor yet.


svn:r6775
2006-07-17 06:54:28 +00:00
Roger Dingledine
9db7b2c068 Allow servers with no hostname or IP address to learn their IP address
by asking the directory authorities. This code only kicks in when you
would normally have exited with a "no address" error.

This design is flawed, though, since the X-Your-Address-Is header is not
authenticated, and doing it this way introduces too many new attacks. The
right answer is to give IP address hints inside the HELLO cell; much of
this code can be reused when we switch.


svn:r6774
2006-07-17 06:35:06 +00:00
Nick Mathewson
e572d5990c MSVC6 is apparently terrified of unnatural cross-breeding between uint64_t and double, and needs more persuasion than usual to cast one to the other. Issue identified by Frediano Ziglio; patch revised for minimal impact on non-MSVC6 compilers.
svn:r6768
2006-07-17 00:39:05 +00:00
Roger Dingledine
886b10bbe2 whitespace/etc cleanups
svn:r6765
2006-07-16 05:57:11 +00:00
Roger Dingledine
ee5f512e13 parameterize the loudness of resolve_my_address(), and call things
IP addresses, not IPs.


svn:r6764
2006-07-15 20:26:05 +00:00
Roger Dingledine
3d79eb52ab stick to nick's nul/null convention
svn:r6763
2006-07-15 19:21:30 +00:00
Roger Dingledine
c4411841d2 Avoid an integer underflow when the dir authority decides whether a
router is stable: we might wrongly label it stable, and compute a slightly
wrong median stability, when a descriptor is published later than now.

Inspired by Matt's Vidalia checkin:
http://trac.vidalia-project.net/changeset/1074


svn:r6758
2006-07-14 03:14:02 +00:00
Nick Mathewson
a0cf95e1c9 Add some debugging asserts to dns.c; these are too expensive to leave in permanently.
svn:r6756
2006-07-11 20:51:58 +00:00
Nick Mathewson
c32e19b4ed OR_CONN_EVENT_NEW: we should probably handle that , should we not? Especially since 23:26 < phobos> nickm: grep -c "Unrecognized status code 4" tor.log
svn:r6752
2006-07-11 03:33:16 +00:00
Nick Mathewson
39344fc301 Add a const; fix a (probably harmless) bug when storing a resolve we forgot we asked for.
svn:r6751
2006-07-10 18:38:57 +00:00
Nick Mathewson
a7a1d4e3d3 First part of making mmap-based stuff work on win32: save descriptors as "binary" (no LF->CRLF tanslation) so that we can mmap them properly later. Patch from Frediano Ziglio.
svn:r6748
2006-07-09 22:28:12 +00:00
Roger Dingledine
51454157a0 Fix a crash if you enable FascistFirewall but not FirewallPorts.
Reported by Frediano Ziglio.


svn:r6746
2006-07-08 17:38:46 +00:00
Nick Mathewson
0bbc4aca9b Spellcheck and remove spurious include in eventdns.c
svn:r6745
2006-07-07 19:08:44 +00:00
Nick Mathewson
a40ad152b1 When using eventdns: suppress logging of addresses when SafeLogging is active, and make set of nameservers configurable from torrc.
svn:r6744
2006-07-07 17:33:30 +00:00
Nick Mathewson
f33c4f9781 eventdns: check for malloc() failures.
svn:r6743
2006-07-07 17:31:56 +00:00
Roger Dingledine
85fd582192 rename X-You-Are to something slightly better.
svn:r6735
2006-07-06 03:05:01 +00:00
Roger Dingledine
7f01dc9c1c whitespace/tab fixes
svn:r6734
2006-07-06 02:45:46 +00:00
Roger Dingledine
fad85f173a when an exit node gets a malformed begin cell, don't complain to
the node operator, since he can't do anything about it.


svn:r6733
2006-07-06 02:44:07 +00:00
Nick Mathewson
3c4205c872 Clean up eventdns messages.
svn:r6730
2006-07-05 21:42:18 +00:00
Nick Mathewson
54779025e2 Spelling fix.
svn:r6729
2006-07-05 21:33:46 +00:00
Nick Mathewson
42ef3bd90c Add plausile logging support to eventdns; stop putting stuff onto stdout.
svn:r6728
2006-07-05 21:28:37 +00:00
Roger Dingledine
0ec293b189 actually, that excludenodes fix was redundant. take it out.
svn:r6727
2006-07-05 18:19:42 +00:00
Roger Dingledine
98c6bf6192 oops, we were ignoring options->ExcludeNodes when picking entry guards.
it is still the case that we ignore it with respect to entry guards
that we've already picked.


svn:r6726
2006-07-04 20:25:17 +00:00
Roger Dingledine
4fc7426b93 Make the X-You-Are header more accurate when there's a proxy in the middle.
svn:r6722
2006-07-04 18:18:08 +00:00
Roger Dingledine
05d0b70573 Get rid of the router_retry_connections notion. Now routers no longer
try to rebuild long-term connections to directory authorities, and
directory authorities no longer try to rebuild long-term connections to
all servers.

We still don't hang up connections in these two cases though -- we need
to look at it more carefully to avoid flapping, and we likely need to
wait til 0.1.1.x is obsolete.


svn:r6712
2006-07-04 03:31:27 +00:00
Roger Dingledine
ff1b4764e9 No longer permit create cells to have the wrong circ_id_type. No
running Tors should still have this bug.


svn:r6711
2006-07-04 03:27:09 +00:00
Roger Dingledine
dc79dd6a46 minor fixes
svn:r6709
2006-07-04 03:19:59 +00:00
Nick Mathewson
9fce316d1c Oops. Headers work better when named right.
svn:r6707
2006-07-01 21:51:21 +00:00
Nick Mathewson
60de51993a Unify HTTP response code into one place so it is easier to add headers. Add an X-You-Are header, which we should probably rename. NOTE that we should not use this field for things where it matters if dirs lie.
svn:r6705
2006-06-30 10:50:43 +00:00
Roger Dingledine
d45757ebcb also remove word 'middleman' from a log notice
svn:r6704
2006-06-29 13:11:23 +00:00
Nick Mathewson
475eb5d6fe Apparent 311 fix: apparently passing Z_FINISH an empty string is problematic.
svn:r6702
2006-06-29 11:19:52 +00:00
Nick Mathewson
4b49d298eb complete_only == !allow_partial. This enables useful use of partial desc downloads. Backport candidate
svn:r6700
2006-06-29 11:04:42 +00:00
Roger Dingledine
c22c7b96f5 tab-man strikes again
svn:r6699
2006-06-28 15:39:02 +00:00
Nick Mathewson
8b08ab52fd Fix another idiot bug causing symptom 309. Why cant I program?
svn:r6698
2006-06-28 15:36:28 +00:00
Nick Mathewson
96bfefeeb6 Add a check to try to make cache rebuild fail fast if it is going to fail
svn:r6697
2006-06-28 11:03:34 +00:00
Nick Mathewson
4dac383f5a Aaand re-disable the bogus test in get_body()
svn:r6696
2006-06-28 08:57:41 +00:00
Nick Mathewson
d547ecc916 Make sure that our calculated offsets for routers is correct; again. This time bug 309 may be gone gone gone.
svn:r6695
2006-06-28 08:55:53 +00:00
Nick Mathewson
d3784ff1df Likely fix for bug 309: when we calculate offsets after rebuilding the descriptor cache, do not reset the offset pointer half-way through.
svn:r6693
2006-06-27 15:52:51 +00:00
Roger Dingledine
f88d555ce0 refuse to write an iso_time which we can't parse, when dumping
bandwidth state. this fixes the particular incident in bug 308,
but the general issue remains.


svn:r6684
2006-06-24 04:57:59 +00:00
Nick Mathewson
b4b8da5d23 Turn a while into a do/while; save a redundant test
svn:r6683
2006-06-24 02:10:21 +00:00
Nick Mathewson
b82dfdd4a3 Make some more verbose gcc warnings go away.
svn:r6680
2006-06-22 07:34:04 +00:00
Nick Mathewson
52b8dfa95a Fix a bunch of spaces.
svn:r6678
2006-06-22 07:25:15 +00:00
Nick Mathewson
89a1453776 Set offset properly when parsing cache.
svn:r6677
2006-06-22 07:19:28 +00:00
Nick Mathewson
58b05fc84d #if out test that was failing because of an extra newline.
svn:r6676
2006-06-22 07:10:37 +00:00
Nick Mathewson
b7910202a3 Next batch of memory miserdom: mmap cached-routers file. This is sure to break somewhere.
svn:r6675
2006-06-22 07:01:54 +00:00
Nick Mathewson
e2697a62ac When requesting or serving resources via fingerprint/digest, request and respond in-order, removing duplicates.
svn:r6673
2006-06-21 04:57:12 +00:00
Peter Palfrader
7b6c435066 <nickm> ooh, that log shouldn't be there. can you take it out?
svn:r6671
2006-06-20 23:11:15 +00:00
Nick Mathewson
0799154ae1 Fix bug in networkstatus spooling: spool more than the first networkstatus.
svn:r6670
2006-06-20 23:06:52 +00:00
Nick Mathewson
0e09b26112 Fishy, but harmless.
svn:r6669
2006-06-20 16:48:32 +00:00
Roger Dingledine
ef78e4245f add a note for nick to fix
svn:r6668
2006-06-20 13:14:07 +00:00
Nick Mathewson
a9e1a4c33c Ah. We need a new zlib_state for each networkstatus we spool out.
svn:r6667
2006-06-20 06:27:13 +00:00
Nick Mathewson
4283b81a48 Start spooling v2 networkstatus docs as well.
svn:r6664
2006-06-20 00:48:23 +00:00
Nick Mathewson
3f7f069a05 Fix a tricky crash: making the_directory heap-allocated (so we could refcount it and have multiple instances as neeeded) means that calls to dirserv_regenerate_directory could invalidate the auth_dir value passed to dirserv_pick_cached_dir_obj. Big fun.
svn:r6663
2006-06-18 21:30:03 +00:00
Nick Mathewson
2552d5e60f Fix an assert that still isnt the assert we are hunting.
svn:r6662
2006-06-18 21:15:01 +00:00
Roger Dingledine
37c441d96f correct a function comment in compute_preferred_testing_list()
svn:r6660
2006-06-18 21:07:45 +00:00
Nick Mathewson
f1993b8b30 Become capable of noticing that we are done sending a directory.
svn:r6659
2006-06-18 20:58:27 +00:00
Nick Mathewson
5c0d7fb016 Resolve control flow warning.
svn:r6658
2006-06-18 20:39:46 +00:00
Nick Mathewson
0932f463ff Ah. That seems to work.
svn:r6657
2006-06-18 16:39:26 +00:00
Nick Mathewson
5ba72d0ae5 another write_to_buf_zlib fix.
svn:r6656
2006-06-18 16:20:38 +00:00
Nick Mathewson
b5c599412f Backport candidate: implement the "is this uptime change cosmetic" test properly.
svn:r6654
2006-06-18 16:05:54 +00:00
Nick Mathewson
a9cffd2ff0 Re-enable buffer RAM guard values.
svn:r6653
2006-06-18 15:53:54 +00:00
Nick Mathewson
11c2e97d51 Another _zlib fix.
svn:r6652
2006-06-18 09:03:48 +00:00
Nick Mathewson
337ad6420b Make connection_write_to_buf_zlib set outbuf_flushlen right.
svn:r6651
2006-06-18 08:53:09 +00:00
Nick Mathewson
537104c908 write_to_buf != connection_write_to_buf. Also, add a connection_write_to_buf_zlib wrapper that sucks.
svn:r6650
2006-06-18 08:46:55 +00:00
Nick Mathewson
10b7b57616 Temporarily disable sentinels on buffers
svn:r6649
2006-06-18 08:44:34 +00:00
Nick Mathewson
9376d901ed make zlib buffer function set buf_highwater properly
svn:r6648
2006-06-18 08:21:27 +00:00
Nick Mathewson
4d02ccfed8 Stop trying to refresh when we are out of data.
svn:r6647
2006-06-18 08:19:35 +00:00
Nick Mathewson
b9013cbe98 And actually check the url when it exists. that might work better.
svn:r6646
2006-06-18 08:16:05 +00:00
Nick Mathewson
c374340c70 That dir_refresh_src fix will only work if I enable it.
svn:r6645
2006-06-18 08:13:45 +00:00
Nick Mathewson
347bcec84a Fix a couple of bugs in last patch.
svn:r6644
2006-06-18 08:07:16 +00:00
Nick Mathewson
c58cc8c16c add coverage for a default case
svn:r6643
2006-06-18 07:57:47 +00:00
Nick Mathewson
b1a8b7869a Oops. conn->requested_resource is client only.
svn:r6642
2006-06-18 07:55:04 +00:00
Nick Mathewson
1d9923da7c Instead of adding servers and v1 directories to buffers en masse, directory servers add them on the fly as their outbufs are depleted. This will save ram on busy dirservers.
svn:r6641
2006-06-18 07:38:55 +00:00
Nick Mathewson
8fa8616ec7 Add tests for several of the more recently committed functions.
svn:r6639
2006-06-18 07:35:10 +00:00
Nick Mathewson
cd38511a1e Part of incremental encryption logic for buffers: there is a subtle yucky point documented in a comment.
svn:r6637
2006-06-18 07:27:47 +00:00
Peter Palfrader
2ff24dbc26 And a minor bugfix to the weaselhack
svn:r6629
2006-06-15 23:14:01 +00:00
Roger Dingledine
af0e47c921 fix spacing
svn:r6628
2006-06-15 22:59:07 +00:00
Peter Palfrader
bc64becd12 Add a /tor/dir-all-weaselhack directory resource so I do not have to update my scripts
svn:r6627
2006-06-15 22:52:56 +00:00
Roger Dingledine
4e4cc9aa27 lower the number of seconds before we yell about clock jump.
and make the yelling only happen if you're a server.


svn:r6625
2006-06-15 09:03:15 +00:00
Roger Dingledine
de7a9c83d8 upgrade the severity of the 'clock jump' warn, and ask people
to report if it occurs.


svn:r6623
2006-06-14 22:28:16 +00:00
Roger Dingledine
09dfe1b265 bugfix: discourage picking directory authorities as our TestVia
hops, even if they're running the right versions, since we probably
already have a connection established to them.


svn:r6622
2006-06-14 11:06:43 +00:00
Nick Mathewson
66db3afb74 eventdns: Apply a couple of patches from AGL; start working on windows compat; note some TODOs.
svn:r6621
2006-06-13 21:49:56 +00:00
Roger Dingledine
977574e48d back off and add the $ at the beginning of the preferrednodes list
we generate.


svn:r6620
2006-06-13 12:57:19 +00:00
Roger Dingledine
2cd349903c be more lax about recognizing valid hexdigests.
svn:r6619
2006-06-13 12:05:59 +00:00
Roger Dingledine
b4e415ba3c now we can tell dirserv_dump_directory_to_string() whether we want
it to include down/invalid descriptors or not.


svn:r6618
2006-06-13 11:11:19 +00:00
Roger Dingledine
88dadc917c bugfix in exit_policy_is_general_exit() that weasel found.
this time for sure!


svn:r6617
2006-06-13 10:48:26 +00:00
Roger Dingledine
23e2c6a7dd first cut at a workaround for the reachability bug: explicitly find a
server running the right version, if we can, and ask for that one.


svn:r6616
2006-06-13 10:25:22 +00:00
Roger Dingledine
31b51849b5 export the default exit policy via the control port, so controllers
don't need to guess what it is / will be later.


svn:r6615
2006-06-13 09:16:09 +00:00
Roger Dingledine
279e86f3c8 Defense in depth: fix the reachability bug a second way too.
Now if we establish a connection with the right digest, regardless
of what the addr/port is, and we have pending create cells, use it.


svn:r6614
2006-06-13 05:51:28 +00:00
Roger Dingledine
a20a384b09 harmless typo
svn:r6613
2006-06-13 05:50:24 +00:00
Roger Dingledine
ab61c40661 Fix the bug that was causing servers to not find themselves
reachable if they changed IP addresses. This happened because
middle servers knew the old descriptor, and kept swapping the
addr/port we asked for with the one they thought was right.

So the create cell never got sent, because it was asking for a
different addr/port than we believed we had connected to.


svn:r6610
2006-06-13 05:36:35 +00:00
Roger Dingledine
19408cf8d7 reintroduce the logic to exit_policy_is_general_exit() to count
how many ports are allowd. require two ports open, not just one.


svn:r6609
2006-06-13 02:48:06 +00:00
Peter Palfrader
cce8ae1190 Make the Exit tag in status documents actually work in head too
svn:r6608
2006-06-12 22:03:25 +00:00
Roger Dingledine
87e3800dfc Finally solve the "closing wedged cpuworkers" bug. Woo.
This happened when we got two create cells in a row from the same TLS
connection. It would hand one to the cpuworker, and then immediately
handle the second one -- after it had registered that the first one was
busy, but before it had updated the timestamp that we use to decide how
*long* it's been busy.


svn:r6606
2006-06-12 11:59:19 +00:00
Roger Dingledine
cbc4cd93ac allow people to start their tor with runasdaemon set but
with no logs set at all.


svn:r6604
2006-06-12 06:03:15 +00:00
Roger Dingledine
14687fc443 take out the reachability bandaid in 0.1.2.x as well.
maybe we will actually be able to fix it, instead.


svn:r6585
2006-06-10 00:57:12 +00:00
Roger Dingledine
889b8d5bac Add a new config option TestVia, that lets you specify preferred middle
hops to use for testing circuits. Perhaps this will let me debug the
reachability problem better.


svn:r6581
2006-06-10 00:26:39 +00:00
Roger Dingledine
6531a31aad actually, don't fix it that far. we should still do some
error checking.


svn:r6576
2006-06-09 09:07:59 +00:00
Roger Dingledine
0071d67efd when only one router is labelled as a guard, and we've
already picked him, we would cycle endlessly picking him
again, being unhappy about it, and so forth.

now we specifically exclude guards when picking a new guard.


svn:r6575
2006-06-09 09:02:32 +00:00
Roger Dingledine
30f6c57fd7 and forward-port too.
svn:r6573
2006-06-09 06:52:49 +00:00
Roger Dingledine
a91be49402 fix a bootstrapping check we ignored that prevents us from running
with only one dir authority.


svn:r6570
2006-06-09 02:45:39 +00:00
Roger Dingledine
11dcb7f4ae try a better string at the top of torrc's autogenerated torrc.
svn:r6569
2006-06-09 02:20:42 +00:00
Roger Dingledine
bb18168fae ok, ok, maybe *this* time my rep_hist_circbuilding_dormant() will work.
svn:r6568
2006-06-08 22:36:13 +00:00
Roger Dingledine
18eb8192db remove a bit more obsolete code
svn:r6566
2006-06-08 09:35:20 +00:00
Roger Dingledine
a18766e50c ah, that explains why we weren't going dormant with
respect to descriptor fetches. maybe now it will work.


svn:r6565
2006-06-08 09:20:58 +00:00
Roger Dingledine
91bd12c20d re-enable per-connection rate limiting. get rid of the "OP bandwidth"
concept. lay groundwork for "bandwidth classes" -- separate global
buckets that apply depending on what sort of conn it is.


svn:r6563
2006-06-07 09:18:53 +00:00
Roger Dingledine
741b11df45 put a bandaid in place so servers will have an easier time
believing that they're reachable. this may help resolve the
servers-on-dynamic-ip-addresses problem.


svn:r6561
2006-06-07 08:42:24 +00:00
Roger Dingledine
1e9b35aee3 make connection_or_nonopen_was_started_here() based on something less
voodooey. it turns out we already do keep a flag like that around.


svn:r6560
2006-06-07 07:11:42 +00:00
Roger Dingledine
8cf45df230 and now the exciting part: there is now no such thing as doing
a client-only tls, that is, one with no certs.


svn:r6558
2006-06-07 06:21:11 +00:00
Roger Dingledine
0bfef523df simplify the tortls api: we only support being a "server", that
is, even tor clients do the same sort of handshake.

this has been true for years, so it's best to get rid of the
stale code.


svn:r6557
2006-06-07 06:10:54 +00:00
Roger Dingledine
96914760bc fix the bug where we sometimes would fail to send some create cells
once we'd connected to a(nother) tor server.


svn:r6552
2006-06-06 03:33:24 +00:00
Nick Mathewson
5e4b4451ec Also, add a temporary hack to make sure eventdns.c is distributd.
svn:r6551
2006-06-06 00:12:22 +00:00
Roger Dingledine
5c57348acd We got an obscure report of an assert error on a windows Tor server with
connection_add being called with socket = -1. The only places I can see
where that happen would be if our tor_socketpair succeeds but it hands
back negative values for some of its file descriptors. Perhaps this will
produce more useful assert errors next time.


svn:r6550
2006-06-06 00:06:52 +00:00
Roger Dingledine
411f37d534 fix typo
svn:r6549
2006-06-06 00:05:39 +00:00
Roger Dingledine
07c35b4f52 ship the event*.h files too. perhaps this will make my 'make dist'
produce a tarball that i can build.


svn:r6548
2006-06-06 00:04:52 +00:00
Nick Mathewson
2bd7c19b73 Try to log useful messages at info and debug about what we are resolving and what answers we are getting wrt eventdns.
svn:r6547
2006-06-05 23:01:22 +00:00
Roger Dingledine
542b8af592 don't tell people that the testing circuit failed if we already
consider ourselves reachable. this just confuses them.


svn:r6546
2006-06-05 10:01:52 +00:00
Roger Dingledine
a2fec314b6 scream louder if you've got a pending circuit for a given
addr/port but the intended n_conn digest is wrong.


svn:r6544
2006-06-05 09:47:19 +00:00
Roger Dingledine
45065f1466 simplify code now that libevent considers all sockets pollable.
what we really mean now is ">= 0", which is clearer to test for.


svn:r6543
2006-06-05 09:08:10 +00:00
Roger Dingledine
4e773352c2 bugfix: if we are making our first ever connection to any entry
guard, then don't mark it down at first. we had this implemented
but it was disabled due to a bug.


svn:r6541
2006-06-05 08:58:18 +00:00
Roger Dingledine
8f3bb66ebc simplify some code, since circuit_build_failed() is only called
on non-open circuits.


svn:r6540
2006-06-05 08:25:02 +00:00
Roger Dingledine
152d6d13b4 remove some unused code (i think)
svn:r6539
2006-06-05 08:02:04 +00:00
Roger Dingledine
bf09898f79 Note a bug that causes servers to sometimes never send the pending
create cell. Nick, is this a bug? If so, is my fix right?


svn:r6538
2006-06-05 07:27:48 +00:00
Nick Mathewson
b7ca697faf More eventdns.c patches: use HAVE_ALLOCA_H; print IP addrs as dotted quads.
svn:r6535
2006-06-05 01:59:12 +00:00
Nick Mathewson
3db785ef73 Hm. Where did we put that ntohl the last time we were juggling it? (hoop-lah).
svn:r6534
2006-06-05 00:32:31 +00:00
Nick Mathewson
008a0c7c46 Some eventdns.c fixes for windows correctness. More will doubtless be needed, especially around the #includes.
svn:r6533
2006-06-04 23:23:53 +00:00
Nick Mathewson
853e2d99b6 Add a new warning to our "warn a lot" list: unused parameters. This means we have to explicitly "use" unuseds, but it can catch bugs. (It caught two coding mistakes so far.)
svn:r6532
2006-06-04 22:42:13 +00:00
Roger Dingledine
c4647545a0 if we insist on printing pointer values, at least make it stop
complaining on (my particular) 64 bit platform.


svn:r6530
2006-06-04 06:17:32 +00:00
Roger Dingledine
603b09b59b punctuation and spelling
svn:r6529
2006-06-04 06:16:20 +00:00
Nick Mathewson
c18fab5366 Make eventdns.[ch] into good C90; remove signed/unsigned comparisons.
svn:r6528
2006-06-03 22:05:23 +00:00
Nick Mathewson
2700e5a1ab Oops. When we dont get a TTL, we should default to the default, not to the minimum.
svn:r6527
2006-06-03 21:47:26 +00:00
Nick Mathewson
c660a0f6a2 More DNS fixes. Send meaningful TTLs back to the client when
possible.  Cache at the server side independently from the TTL, to
prevent attackers from probing the server to see who has been asking
for what hostnames.  (Hi, Dan Kaminski!)

Also, clean some whitespace.


svn:r6526
2006-06-03 21:41:14 +00:00
Nick Mathewson
85a25c8a29 Make dns.c use eventdns.c -- but only when you pass the --enable-eventdns argument to configure.in. This will *so* not work on Windows yet.
svn:r6525
2006-06-03 20:52:24 +00:00
Nick Mathewson
7cb3232ade Add async dns code from Adam Langley, tweaked to build on OSX. Long-term, we may want to switch to libevnet/c-ares, if they ever handle 10k fd situations properly. This one still needs work too, but at least it is small. This code is disabled by default, and not integrated with dns.c.
svn:r6524
2006-06-03 19:49:42 +00:00
Roger Dingledine
8f902e4b58 don't stop fetching server descriptors if we're a server and
haven't found ourselves reachable yet.


svn:r6522
2006-06-03 02:56:44 +00:00
Roger Dingledine
1bf0f99b66 connection_t kept the identity_pkey but all it did was store it and
free it. perhaps we don't need it after all?


svn:r6518
2006-05-30 06:23:44 +00:00
Roger Dingledine
9000a5aff1 and get grammar right
svn:r6517
2006-05-30 06:19:48 +00:00
Roger Dingledine
ae2648fb1c stop fetching descriptors if we're not a dir mirror and we
haven't tried to establish any circuits lately.


svn:r6516
2006-05-30 06:19:06 +00:00
Roger Dingledine
1f0e20806b END_CIRC_REASON_OR_IDENTITY apparently means that we were told to
connect to a different OR than lives on the addr:port we connected
to. we don't actually remember whether that was the case, currently.
so call it END_CIRC_REASON_OR_CONN_CLOSED as a compromise.


svn:r6515
2006-05-30 06:17:28 +00:00
Roger Dingledine
60abe23158 tentative change: if you have your dirport set, you are a directory
mirror, whether or not your orport is set.


svn:r6513
2006-05-30 06:11:36 +00:00
Roger Dingledine
1e4923652b simplify a log message
svn:r6512
2006-05-30 05:29:03 +00:00
Roger Dingledine
f6ff3e6f0e directory authorities should be more tolerant of failed reachability
tests before crying foul to the server operator.


svn:r6509
2006-05-28 16:14:26 +00:00
Roger Dingledine
48be472e4f clean up a comment
svn:r6508
2006-05-28 16:07:44 +00:00
Roger Dingledine
7f611f4732 if we're a server and some peer has a broken tls certificate, don't
shout about it unless we want to hear about protocol violations.


svn:r6507
2006-05-26 16:32:16 +00:00
Roger Dingledine
82ae38f649 be more verbose about testing reachability of our ORPort.
svn:r6506
2006-05-26 16:29:33 +00:00
Roger Dingledine
f579478687 correct a false log message, since we actually reset all our
downloading stats every hour, and sometimes more often.


svn:r6505
2006-05-26 16:29:20 +00:00
Roger Dingledine
3cd01ca9a1 make cookie authentication for the controller work again, maybe.
it sure doesn't now.


svn:r6494
2006-05-24 23:03:28 +00:00
Roger Dingledine
6066d68ac3 make options->RedirectExit work again; resolve bug 293.
svn:r6492
2006-05-24 11:13:03 +00:00
Roger Dingledine
13c4590dd1 ignore RunAsDaemon more thoroughly when we're running on windows.
svn:r6471
2006-05-23 07:04:55 +00:00
Roger Dingledine
6b058bd563 add a few more debugging lines to help mikec track down his
11 minute jump into the future.


svn:r6465
2006-05-23 03:08:30 +00:00
Nick Mathewson
55c38f88b9 Remove string size limit on NEWDESC messages; solve bug 291.
svn:r6463
2006-05-22 23:24:06 +00:00
Roger Dingledine
295ad74fda Tor servers are also giving spurious "you're invalid" warnings.
This is because we get a lot of network statuses that don't list
us at all, and we conclude that they all think we're invalid.
The long-term fix is to get better logic, and the short-term fix
is to downgrade the log severity.


svn:r6448
2006-05-09 09:47:47 +00:00
Roger Dingledine
27624a3024 stop telling people that "tor -h" will help them in any way.
svn:r6447
2006-05-08 04:28:49 +00:00
Roger Dingledine
e24e5475fb forward-port the ORPort==0 patch
svn:r6430
2006-05-03 18:29:44 +00:00
Nick Mathewson
2b720b5746 Start remembering *where* we are storing routerdescs. This will make us easier to move from a RAM-mirrors-disk model to a RAM-caches-disk model, and save maybe around 10MB on a directory server.
svn:r6427
2006-04-29 18:42:26 +00:00
Nick Mathewson
15dbe02c04 shorten some too-wide lines
svn:r6426
2006-04-29 17:44:31 +00:00
Roger Dingledine
701341ef8a put one of the XXX's back in
svn:r6422
2006-04-25 07:06:48 +00:00
Roger Dingledine
3c86402cc2 petty cleanups
svn:r6421
2006-04-25 07:00:04 +00:00
Nick Mathewson
5bce102cd2 Only warn about a down node once
svn:r6420
2006-04-25 06:20:47 +00:00
Nick Mathewson
5f9612216c you wanted it spelled properly too? And me not even funded!
svn:r6418
2006-04-25 06:02:46 +00:00
Nick Mathewson
d6c04216ef fix a segfault in last bug-285-related commit.
svn:r6417
2006-04-25 05:59:31 +00:00
Nick Mathewson
c70f1e7eb3 Possible partial fix for 285; needs review
svn:r6414
2006-04-24 17:51:31 +00:00
Roger Dingledine
934e9c49bb Regenerate our local descriptor if it's dirty and some local
function asks for it. This may resolve bug 286.


svn:r6412
2006-04-23 23:09:03 +00:00
Roger Dingledine
c74c24a989 make more hibernate log messages use local time. we should audit
to see what other log messages keep switching back and forth
between GMT and local.


svn:r6411
2006-04-23 23:05:34 +00:00
Roger Dingledine
2d78d74c80 Raise the timeout for complaining about wedged cpuworkers.
This value is high because some servers with low memory/cpu
sometimes spend an hour or more swapping, and Tor starves.


svn:r6406
2006-04-18 19:48:06 +00:00
Roger Dingledine
5721747de2 class B really means /16 here
svn:r6404
2006-04-18 05:03:09 +00:00
Nick Mathewson
735a2131b8 require at least 2**16 assignable virtual addresses
svn:r6402
2006-04-18 04:57:07 +00:00
Nick Mathewson
7484ca06a5 [Forward-port ]Test and document last patch.
svn:r6400
2006-04-18 03:51:18 +00:00
Nick Mathewson
0df40a393b [forward-port] Implement an option, VirtualAddrMask, to set which addresses get handed out in response to mapaddress requests. Needs testing and docs!
svn:r6398
2006-04-18 03:36:28 +00:00
Nick Mathewson
6ebd886511 forward-port: "Resolve" all XXX011 items, mostly by marking them non-011.
svn:r6396
2006-04-18 03:07:24 +00:00
Roger Dingledine
47d3e23155 note another bug: we complain that a router doesn't exist,
because it's down so we never fetched it so it doesn't exist.


svn:r6394
2006-04-17 06:46:20 +00:00
Roger Dingledine
34bc0866d4 slightly clearer log message when you use a nickname rather than
a key for an unnamed server.


svn:r6393
2006-04-17 06:43:27 +00:00
Roger Dingledine
07ff409876 no need to escape the address for our connections -- they are
always IP addresses.


svn:r6389
2006-04-16 22:34:00 +00:00
Roger Dingledine
0cee3e1fc7 if the bottom eighth of the servers by bandwidth is really crummy,
try the bottom quartile instead.


svn:r6387
2006-04-15 07:15:23 +00:00
Roger Dingledine
3791d3daaa forward-port the n_named log severity downgrade.
svn:r6385
2006-04-14 20:19:33 +00:00
Roger Dingledine
64041d2dbf ok, put moria1 back in, since it's v1 and thus we need to send
our rendezvous descriptors to it.

eventually we might make a 'v1only' tag that explains it's only
for rendezvous descriptors.


svn:r6382
2006-04-11 14:12:04 +00:00
Roger Dingledine
e720cc6589 drop moria1 from the list of authorities.
svn:r6381
2006-04-10 21:40:43 +00:00
Peter Palfrader
beb9e0721a Stop assuming every authority is a v1 authority
svn:r6377
2006-04-10 21:29:29 +00:00
Nick Mathewson
1fbc74661f Remove DER64 functions in trunk: they will never be used again unless the directory authorities switch back to 0.0.9tooearly.
svn:r6376
2006-04-10 21:23:00 +00:00
Roger Dingledine
12d461a245 make DirFetchPeriod and StatusFetchPeriod truly obsolete.
svn:r6373
2006-04-10 20:16:46 +00:00
Roger Dingledine
f89b0ea09f be willing to add our own routerinfo into the routerlist.
this means authorities will include themselves in their
directories and network-statuses.


svn:r6369
2006-04-10 20:00:31 +00:00
Peter Palfrader
fe6c1b0192 Remove redundant includes. They are all hanled in torint.h which we already do include.
svn:r6364
2006-04-10 19:39:26 +00:00
Roger Dingledine
b190c451b8 and one more kick to consider all live network statuses for versions
svn:r6359
2006-04-10 08:40:16 +00:00
Roger Dingledine
a9e7737c3a consider all live network statuses we have when deciding whether
our version is bad. also, unfix one of the unbugs from before.


svn:r6358
2006-04-10 08:37:16 +00:00
Nick Mathewson
1064bbc62a Fix a wide line
svn:r6357
2006-04-10 08:05:00 +00:00
Nick Mathewson
71f1a77371 fix bugs in compute_recommended_versions
svn:r6356
2006-04-10 08:02:56 +00:00
Nick Mathewson
53f7a1bb0c In fairness to gcc, a char** is often _not_ usable as a const void **.
svn:r6355
2006-04-10 07:50:38 +00:00
Nick Mathewson
eb3e28ba79 Oops. _compare_tor_version_str_ptr wants ptr-to-ptr. Ow.
svn:r6354
2006-04-10 07:40:39 +00:00
Roger Dingledine
acc2eb445d and get rid of an extra variable
svn:r6349
2006-04-10 05:48:04 +00:00
Roger Dingledine
ac2070b35b stop being so picky about when we can start building circuits.
now clients are more likely to have circuits up soon after their
tor starts.


svn:r6346
2006-04-10 05:44:54 +00:00
Nick Mathewson
e258276c2b Change a dumb interface. Also, increment trusted_dir_server_t.n_networkstatus_failures when an all.z download fails entirely or partially.
svn:r6345
2006-04-10 01:35:56 +00:00
Roger Dingledine
21263982e4 Don't yell loudly about failed internal/bridge connections. These
are reachability testing and rendserv upload/downloads, and they
have their own failure messages elsewhere.


svn:r6343
2006-04-09 21:36:37 +00:00
Roger Dingledine
b6b534c9dd quiet a bootstrapping message
svn:r6342
2006-04-09 20:19:56 +00:00
Roger Dingledine
760934b175 fix typo
svn:r6340
2006-04-09 10:43:03 +00:00
Roger Dingledine
ed38f46ebc lower the minimum required number of fd's to 1000, so we can
have some overhead for valgrind on linux, where the default
ulimit -n is 1024.


svn:r6338
2006-04-09 10:28:00 +00:00
Roger Dingledine
b18d20ce32 Here is an attempted fix for directory mirrors that are frozen
in fear because they don't have all the networkstatuses. There's
no reason not to proceed if all the other checks are ok -- we just
shouldn't warn about certain things yet.


svn:r6337
2006-04-09 10:10:09 +00:00
Roger Dingledine
0871f4ef90 Remove about 30% of the v1 directory bulk by not including down or
invalid nodes.

This will make exitlist's running on v1 not very good. I feel sorry for
them, but not as sorry as I feel for the directory mirrors.


svn:r6332
2006-04-09 01:00:24 +00:00
Roger Dingledine
d48cdbe2e0 When fetching rendezvous descriptors, we were willing to ask
v2 authorities too. And of course they did not have a copy.


svn:r6331
2006-04-09 00:36:15 +00:00
Roger Dingledine
b7cadc0db5 If you're not a versioning dirserver, don't put the string
"client-versions \nserver-versions \n" in your network status.


svn:r6329
2006-04-08 21:59:15 +00:00
Roger Dingledine
a589650496 i like the name FetchUselessDescriptors better.
svn:r6327
2006-04-08 21:48:14 +00:00
Roger Dingledine
2a94c8b493 add a new config option FetchUselessRouters, off by default, for
when you plan to run "exitlist" on this client and you want to know
about even the non-running descriptors.


svn:r6326
2006-04-08 21:35:17 +00:00
Roger Dingledine
3a5758e212 If we think of ourselves as authoritative, even if we're not
in the DirServers config lines, then we still are. This way we
give ourselves the "Authority" flag in our network-status.


svn:r6325
2006-04-08 21:19:40 +00:00
Roger Dingledine
24b2e0530a clean up the log lines more, and note a future work.
svn:r6324
2006-04-08 21:12:07 +00:00
Roger Dingledine
b5737aab91 add dizum as the fifth authoritative directory server.
svn:r6323
2006-04-08 21:03:49 +00:00
Roger Dingledine
f1692ebefc when we do reachability testing and the tls cert at the other
end disagrees with a descriptor we already have, be more useful
at explaining it.


svn:r6322
2006-04-08 20:35:19 +00:00
Roger Dingledine
fab1feee26 complain when we hit wsaenobufs on recv or write too.
perhaps this will help us hunt the bug.


svn:r6321
2006-04-08 07:54:11 +00:00
Roger Dingledine
557b174b8d Break out the checks to see if a routerstatus is something we
would use. This way when we're deciding if we have "enough" descriptors
to start building circuits, we can count them accurately.


svn:r6320
2006-04-08 06:56:38 +00:00
Roger Dingledine
de8ce0aae8 fix a typo that was confusing me
svn:r6319
2006-04-08 06:55:10 +00:00
Nick Mathewson
5d466b7611 Fix a couple of things that make GCC complain with verbose warnings on. Also, fix some whitespace.
svn:r6317
2006-04-08 05:43:52 +00:00
Nick Mathewson
7a804572ab fix an infinite loop; answer a question
svn:r6316
2006-04-07 22:55:46 +00:00
Nick Mathewson
c6d010b218 Dont warn about our own status unless weve tried and failed 4 times (or succeeded) for each authority.
svn:r6315
2006-04-07 04:52:32 +00:00
Roger Dingledine
c4fb9d22cf if there's more than one match for router-get-my-nickname,
try to pick one that's running.


svn:r6313
2006-04-04 03:46:40 +00:00
Roger Dingledine
0825f61102 fix crash bug reported in flyspray 279.
svn:r6312
2006-04-04 03:25:36 +00:00
Roger Dingledine
453062b028 fix typo, remove extraneous variable
svn:r6311
2006-04-03 11:24:14 +00:00
Roger Dingledine
7198af7fbe one more edge case that could paralyze a client with fear
svn:r6310
2006-04-03 06:59:07 +00:00
Roger Dingledine
a324871603 phrase the threshold comparison in the way we've been
phrasing it. these are equivalent, right?


svn:r6309
2006-04-03 06:37:35 +00:00
Roger Dingledine
4b6ff2b084 bugfix in sort_version_list() so it doesn't screw up the sorting.
svn:r6308
2006-04-03 06:30:48 +00:00
Nick Mathewson
eba6204315 fix some xxxs.
svn:r6307
2006-04-03 06:23:24 +00:00
Roger Dingledine
2cb3aeb4e1 another point that needs more thinking
svn:r6306
2006-04-03 06:22:54 +00:00
Roger Dingledine
9549d81d95 two more thresholds to look at
svn:r6305
2006-04-03 06:10:33 +00:00
Roger Dingledine
64a40b5137 nick: there *is* no MAX_SERVER_INTERVAL_WITHOUT_REQUEST. true?
svn:r6300
2006-04-03 02:20:32 +00:00
Nick Mathewson
4130460f8e Change networkstatus dl logic: try to have all networkstatuses live; insist on having all of them live or tried-at-least-once. Also, answer a XXXX comment.
svn:r6297
2006-04-02 23:02:52 +00:00
Nick Mathewson
d663bfa306 Versions that drop connections for having used idle circs are as bad for stable as for guard
svn:r6296
2006-04-02 23:01:01 +00:00
Nick Mathewson
785d25e06c If I could forget that I had enabled StrictExitNodes, others will too.
svn:r6295
2006-04-02 22:59:59 +00:00