Commit Graph

331 Commits

Author SHA1 Message Date
Nick Mathewson
3dfeaaaf6e r11931@Kushana: nickm | 2007-01-11 09:12:49 -0500
Fix a crash bug in the presence of DNS hijacking.


svn:r9333
2007-01-11 14:13:13 +00:00
Roger Dingledine
794fedb0ad some cleanups. more probably remain, but hey, it's an alpha.
time to put out the bugfix release.


svn:r9309
2007-01-09 05:14:34 +00:00
Nick Mathewson
5239602dbc r11873@Kushana: nickm | 2007-01-06 02:32:18 -0500
Implement DNS-related status events.


svn:r9285
2007-01-06 07:34:07 +00:00
Nick Mathewson
336624ce8f r11862@Kushana: nickm | 2007-01-06 01:05:15 -0500
Re-enable warning when we resolve an already resolved address.  We only warn here now if the address is not a testing address.  Also, refactor out a function to check whether an address is used for testing.


svn:r9280
2007-01-06 06:26:46 +00:00
Roger Dingledine
ee0d2d486d fix a bug, defer a bug, bump to 0.1.2.5-alpha
svn:r9270
2007-01-05 06:30:31 +00:00
Nick Mathewson
0bbbf98be4 r11727@Kushana: nickm | 2006-12-28 16:27:17 -0500
If we only have a single nameserver, raise the threshold to decide that the nameserver is dead.  (Another fumbling attempt to do something about bug 326.)


svn:r9203
2006-12-28 21:29:37 +00:00
Nick Mathewson
460a476efa r11725@Kushana: nickm | 2006-12-28 14:44:56 -0500
Partial solution to 326: downgrade single-nameserver failures to INFO.


svn:r9201
2006-12-28 21:29:26 +00:00
Nick Mathewson
d9f1f3533d r11724@Kushana: nickm | 2006-12-28 14:22:35 -0500
Refactor and unify my-ip-addr-changed logic.  Make change in IP address or in nameservers reset and relaunch DNS hijacking tests.


svn:r9200
2006-12-28 21:29:20 +00:00
Nick Mathewson
e5f5b96ca6 r11723@Kushana: nickm | 2006-12-28 13:52:48 -0500
Fix bug 364: check for whether popular hostnames (curently google, yahoo, mit, and slashdot) are getting wildcarded.  If they are, we are probably behind a DNS server that is useless: change our exit policy to reject *:*.


svn:r9199
2006-12-28 21:29:11 +00:00
Nick Mathewson
baadf35c63 r11646@Kushana: nickm | 2006-12-19 14:40:38 -0500
Resolve bug 363: do not fall back to 127.0.0.1 when no nameservers are configured.  Instead, have the admin fix resolv.conf or configure a nameserver.


svn:r9157
2006-12-19 19:49:03 +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
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
Roger Dingledine
d1b9de222e cleanups, closer to a changelog
svn:r8606
2006-10-06 07:50:57 +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
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
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
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
Roger Dingledine
ad430b9561 checkpoint changelog and general polishing
svn:r8497
2006-09-25 05:59:13 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
d8fc598a2a dns.c:173: warning: control reaches end of non-void function
svn:r7067
2006-08-16 02:18:55 +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
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
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
Roger Dingledine
5647e5c7e6 fix typo, add explanatory comment
svn:r7026
2006-08-11 07:31:16 +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
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
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
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
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
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
Roger Dingledine
c3b79ebf13 a bit more debugging for phobos
svn:r6937
2006-07-30 03:34:44 +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
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
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
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
3d79eb52ab stick to nick's nul/null convention
svn:r6763
2006-07-15 19:21:30 +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
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
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
3c4205c872 Clean up eventdns messages.
svn:r6730
2006-07-05 21:42:18 +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
af0e47c921 fix spacing
svn:r6628
2006-06-15 22:59:07 +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
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
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
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
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
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
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
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
d1d0813cf3 Allow non-printable characters for exit streams (both for
connecting and for resolving). Now we tolerate applications
that don't follow the RFCs. But continue to block malformed
names at the socks side.


svn:r6193
2006-03-19 03:55:48 +00:00