Commit Graph

4136 Commits

Author SHA1 Message Date
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
Roger Dingledine
b34032b87d but the \r\n is handy too i hear.
svn:r6294
2006-04-02 22:19:01 +00:00
Roger Dingledine
e84cd412d4 if you give mapaddress no args at all, it should answer
something more than \r\n.


svn:r6293
2006-04-02 22:13:34 +00:00
Roger Dingledine
1e04b70d49 make NoPublish (even though deprecated) work again.
svn:r6287
2006-04-02 02:59:48 +00:00
Roger Dingledine
dfb3c5f47a if you ask for getinfo dir/status/ but your dirport is off,
log a complaint.


svn:r6286
2006-04-01 22:17:37 +00:00
Roger Dingledine
6fb27741ba Fix dirserv_get_networkstatus_v2's api: its function comments
did not at all match its behavior, and I can't think of a case
when it should return anything other than 0.

This fix may allow getinfo dir/status/foo to work.


svn:r6285
2006-04-01 22:00:49 +00:00
Roger Dingledine
e754664d62 bugfix: when we fail to bind or listen on an incoming or outgoing
socket, we should close it before failing. otherwise we just
leak it. (thanks to weasel for finding.)


svn:r6284
2006-04-01 10:22:57 +00:00
Roger Dingledine
e47075e771 more helpful error message
svn:r6283
2006-04-01 09:54:54 +00:00
Roger Dingledine
314f24870d Start sending back 512 and 451 errors if mapaddress fails,
rather than not sending anything back at all.


svn:r6282
2006-04-01 09:50:43 +00:00
Roger Dingledine
4c996757ae We can remove about 30% of the v1 directory bulk by taking
out down or invalid nodes. We should do this once we're ready.


svn:r6273
2006-03-29 09:21:23 +00:00
Roger Dingledine
db1209a852 Refactor the decision of whether to include a router's descriptor
in the v1 directory. No actual changes yet.


svn:r6272
2006-03-29 08:56:39 +00:00
Roger Dingledine
1f4d0d2479 When deciding whether a router is Fast or Guard-worthy, consider
his advertised BandwidthRate and not just the BandwidthCapacity.

This is a bug in 0.1.0.x as well, but let's not bother backporting.


svn:r6266
2006-03-28 12:01:58 +00:00
Nick Mathewson
685bceed1c Make the max number of old descriptors to hold rise with the number of authorities.
svn:r6254
2006-03-27 17:29:53 +00:00
Peter Palfrader
03302dc67d On our dirport return a robots.txt so maybe google doesn't index all those server descriptors anymore
svn:r6252
2006-03-27 07:33:13 +00:00
Nick Mathewson
2421724853 Code to implement networkstatus fetch from controllers. Only works when dirport is set for now; should be good enough to make serifos html front-end not be as wrong.
svn:r6251
2006-03-27 06:49:25 +00:00
Roger Dingledine
56df81199a that extra punctuation distracts me
svn:r6250
2006-03-27 05:30:16 +00:00
Nick Mathewson
cd271dbca9 re-order to avoid free-then-use. Thank goodness tor_free() zeroes things.
svn:r6249
2006-03-27 05:27:47 +00:00
Nick Mathewson
c74bd877e2 Oops. We may not have a networkstatus list when we first parse the cached routers.
svn:r6248
2006-03-27 05:12:07 +00:00
Nick Mathewson
3e8c9a485f Fix for "but need_to_mirror=1" annoyance; is bug 273 fixed?
svn:r6247
2006-03-27 05:07:57 +00:00
Roger Dingledine
6f08d121d9 Refactor and consolidate addr/exit policies into a new policies.c.
Fix some minor bugs and memory leaks along the way.


svn:r6246
2006-03-27 02:25:34 +00:00
Roger Dingledine
e20aad8d46 remove obsolete address policy code
svn:r6243
2006-03-26 09:38:17 +00:00
Roger Dingledine
e1c8e3ca6e also send syntax and parse errors back to the controller.
svn:r6242
2006-03-26 08:09:19 +00:00
Roger Dingledine
b899b9592a When the controller's *setconf commands fail, collect an error message
in a string and hand it back. This starts to resolve bug 275.


svn:r6241
2006-03-26 06:51:26 +00:00
Peter Palfrader
e90bebf27b Say private address instead of internal address.
Both are wrong or at least not entirely correct but nobody would
understand "special-use address as listed in RFC3330" I guess.


svn:r6236
2006-03-25 21:24:28 +00:00
Roger Dingledine
f2abd7a69b fix a wordo, don't be so quick to yell at servers, and ask a question.
svn:r6235
2006-03-24 21:11:14 +00:00
Roger Dingledine
7edfec2ae6 bump up the magic number for how quickly we start notifying
a server that it's unreachable.


svn:r6234
2006-03-24 20:57:55 +00:00
Peter Palfrader
444e3b8eb2 Note a magic 2 that probably should be replaced now that we have more dirservers
svn:r6232
2006-03-23 20:21:54 +00:00
Roger Dingledine
5b87b0bf55 update getinfo info/names to reflect that we now support
getinfo dir/server/*


svn:r6231
2006-03-22 21:53:09 +00:00
Roger Dingledine
20e66a799b Resolve problem found by weasel: the v1 directory was including
servers as much as 48 hours old, because that's how the new
routerlist->routers works. Now only include them if they're
20 hours old or less.


svn:r6230
2006-03-22 21:32:42 +00:00
Peter Palfrader
58307cd8de Maybe it compiles for devilproxy now
svn:r6229
2006-03-22 11:23:00 +00:00
Roger Dingledine
0d7efbe65d Note a vulnerability with our current recommended-version concensus
building.

Make the warnings about invalid and unnamed nodes scale better, and
update the text of the warnings.

Change router_have_minimum_dir_info() to only be happy when it has
enough network-statuses ("more than half") to be willing to actually
build circuits.

Not yet done: when we fail to get a networkstatus that we wanted, and
!router_have_minimum_dir_info(), we should retry it quicker than a whole
minute from now.


svn:r6227
2006-03-22 06:22:12 +00:00
Roger Dingledine
51a3981d10 stop caching the v1 directory so often.
svn:r6226
2006-03-22 06:18:27 +00:00
Roger Dingledine
6fb2b6785d whoops. inform circuits again when we failed to connect to their
first hop, so they don't have to time out.


svn:r6225
2006-03-22 04:09:30 +00:00
Roger Dingledine
1db263ac3c stop writing the "router.desc" file, ever. nothing uses it anymore.
svn:r6224
2006-03-22 03:45:17 +00:00
Peter Palfrader
805754fdd9 Log server fingerprint on startup
svn:r6223
2006-03-22 03:40:59 +00:00
Roger Dingledine
216e349cb2 parameterize two more timeout constants in circuit-land.
svn:r6220
2006-03-22 00:52:37 +00:00
Roger Dingledine
ad236d4b8b freeing is not the same as setting to null
svn:r6219
2006-03-22 00:03:51 +00:00
Roger Dingledine
28fafb9022 new config option SocksTimeout: How long do we let a socks connection
wait unattached before we fail it?

Use this value for controller socks timeout, for normal socks
timeout, and for hidden-service socks timeout.


svn:r6217
2006-03-21 23:27:43 +00:00
Roger Dingledine
5399e394a8 and dirservers don't call you a guard if you're running a
buggy version either.


svn:r6216
2006-03-21 23:10:26 +00:00
Roger Dingledine
f11509e494 when upgrading to newer versions, throw away entry guards
picked by the old wrong algorithms.


svn:r6215
2006-03-21 23:06:47 +00:00
Roger Dingledine
8a8a84dd52 don't call circuit_n_conn_done() if the closing conn is already open.
svn:r6214
2006-03-21 22:22:48 +00:00
Roger Dingledine
a3329036a8 Bugfix: looks like clients since 0.1.1.10-alpha have been
expiring connections whenever 5 minutes pass and they *do*
have circuits on them.


svn:r6213
2006-03-21 21:58:00 +00:00
Roger Dingledine
65b575c03d Be more patient before giving up on in-progress circuits.
I have absolutely no idea if this change helps or hurts.
Somebody should study this.


svn:r6212
2006-03-21 21:22:52 +00:00
Roger Dingledine
0e68ec0846 put lefkada on port 80, officially.
svn:r6209
2006-03-21 16:57:03 +00:00
Roger Dingledine
073d574a3f Point out a potential DoS flaw in caching untrusted network
statuses to disk. We should resolve sometime.


svn:r6206
2006-03-21 05:27:35 +00:00
Roger Dingledine
415c9e878a add lefkada as a fourth auth dir server.
svn:r6205
2006-03-21 04:41:20 +00:00
Nick Mathewson
08aba015ab Make guard bandwidth threshold higher than fast bandwidth threshold.
svn:r6204
2006-03-20 21:49:55 +00:00
Nick Mathewson
1272485cd4 Make "Fast" based on median capacity, just like "Stable" is based on median uptime.
svn:r6203
2006-03-20 21:41:12 +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
Roger Dingledine
726e825b09 i'm a little teapot, short and stout
svn:r6192
2006-03-19 01:59:02 +00:00
Roger Dingledine
d8195e4128 Implement Jason Holt's SafeSocks config option.
Also put a URL in the warning message for unsafe socks4 use --
previously we'd only had the URL for unsafe socks5 use. Oops.


svn:r6190
2006-03-19 01:44:53 +00:00
Roger Dingledine
c06e6ddadd Finish the transition from the word 'verified' to the words
'named' and 'valid'.


svn:r6188
2006-03-19 01:21:59 +00:00
Roger Dingledine
7e2aa67fcb simplify when we're picking a default address for
when people ask for "serifos.exit".


svn:r6187
2006-03-18 22:54:08 +00:00
Roger Dingledine
868d456c3b make it so there is one place to edit for new dirservers, not two.
svn:r6186
2006-03-18 22:37:27 +00:00
Roger Dingledine
cc37c2f71e fix some typos
svn:r6185
2006-03-18 09:29:05 +00:00
Roger Dingledine
67b61fe475 authdirs shouldn't complain about unreachability when they
fetch a descriptor from somebody else. this is not the right
time to increment the failure count.


svn:r6184
2006-03-18 05:37:15 +00:00
Roger Dingledine
581795f41d auth dir servers were only modifying a server's is_running field
when they created a network status. so if nobody asked for a
network status, they would never discover that any servers are
is_running, so they could never build a circuit.


svn:r6183
2006-03-18 01:24:04 +00:00
Roger Dingledine
cf6ba3e76f let an authdir that's not a naming authdir start even
if it doesn't have an approved-routers file. if it does,
read it and parse it as usual.


svn:r6182
2006-03-18 00:22:23 +00:00
Roger Dingledine
4f14826cb3 Actually, only v1 auth dir servers need to define recommendedversions.
But versioning dirservers do need to cause recommendclientversions
and recommendedserverversions to somehow be non-empty.


svn:r6181
2006-03-17 23:25:40 +00:00
Roger Dingledine
c7839a17f5 when we're an auth dir server but don't claim to be a versioning
auth dir server, don't demand that we define RecommendedVersions.


svn:r6180
2006-03-17 23:21:42 +00:00
Roger Dingledine
51fc6799ad right now we don't support entryguards on auth dirservers,
but that doesn't mean we need to remind them every time
they start up.


svn:r6179
2006-03-17 23:19:51 +00:00
Roger Dingledine
817556315a Implement router purposes, and don't choose a non-general
purpose router when picking random nodes for a circuit.

Also implement SETROUTERPURPOSE and modify +POSTDESCRIPTOR.

This concludes bug 250 assuming it all works.


svn:r6178
2006-03-17 22:08:59 +00:00
Roger Dingledine
7d141c6776 but i made the line too long
svn:r6176
2006-03-17 19:25:36 +00:00
Roger Dingledine
f1bcc2d6f8 stop tricking server operators into thinking they got their
torrc perfect, just because tor could build a circuit.


svn:r6175
2006-03-17 19:20:07 +00:00
Nick Mathewson
053411e827 Comments: cleanups and additions.
svn:r6174
2006-03-17 05:50:41 +00:00
Nick Mathewson
0f0e14c6e3 normalize whitespace.
svn:r6173
2006-03-17 04:43:37 +00:00
Nick Mathewson
215e377224 Only warn about lack of name binding for self if we have tried downloading every networkstatus.
svn:r6172
2006-03-17 04:41:57 +00:00
Roger Dingledine
9a5df4cef5 resume being printist: if the hostname contains non-printable
characters, then fail. this time don't even bother telling the
server operator about these cases, because what's he going to do?

if it turns out that some significant population somewhere in the
world uses non-printable hostnames and wants to use tor, then i
hereby assume that they will contact us.


svn:r6171
2006-03-15 23:36:57 +00:00
Roger Dingledine
8d1f65a222 quiet another entry guard log message
svn:r6169
2006-03-15 22:48:48 +00:00
Roger Dingledine
e8fd871d8b Stop being printist: just because our local platform doesn't
consider an alleged destination to be printable doesn't mean
nobody in the world will want to use it.


svn:r6167
2006-03-15 19:17:34 +00:00
Nick Mathewson
13cf54b9c1 Interim fix for 272: Only warn that we are not named if we have status docs from some naming authorities.
svn:r6166
2006-03-15 05:37:27 +00:00
Nick Mathewson
fb7b5545ce Implement GETINFO(dir/server/foo); status will be harder.
svn:r6165
2006-03-15 05:06:56 +00:00
Nick Mathewson
d0f24b1e46 (Missing header change) Do not warn about unknown servers in our family when they are given as hex digests.
svn:r6164
2006-03-15 05:06:26 +00:00
Nick Mathewson
3c0a5f6365 Do not warn about unknown servers in our family when they are given as hex digests.
svn:r6163
2006-03-15 05:04:11 +00:00
Roger Dingledine
903183ea28 if we as a directory mirror don't know of any v1 directory
authorities, then don't try to cache any v1 directories.


svn:r6162
2006-03-15 00:10:13 +00:00
Peter Palfrader
a4ec555228 change INET_NTOA_BUF_LEN+1 to INET_NTOA_BUF_LEN
add a comment in a few places where we add weird numbers to buffer lengths


svn:r6161
2006-03-14 23:40:37 +00:00
Peter Palfrader
866f6293ff I wonder what an internal internet protocol is
svn:r6159
2006-03-14 22:52:20 +00:00
Peter Palfrader
86a964d868 When we try to be a server and Address is not explicitly set
and our hostname resolves to a private IP address, try
to use an interface address if it has a public address.


svn:r6158
2006-03-14 22:51:15 +00:00
Peter Palfrader
2ef8f772a1 Fix an off-by-one buffer size in dirserv.c that magically never hit our
three authorities but broke sjmurdoch's own tor network.


svn:r6157
2006-03-14 22:43:52 +00:00
Roger Dingledine
499eeced44 when event_add or event_del fail, tell us why.
svn:r6156
2006-03-13 19:33:46 +00:00
Peter Palfrader
ebfb3fea6d Fix minor semantic error with no real effect:
we were doing "is_internal_IP(htonl(in.s_addr))" but in.s_addr is
in network order and is_internal_IP wants host order.  Change to
"is_internal_IP(ntohl(in.s_addr))".


svn:r6155
2006-03-13 19:09:52 +00:00
Nick Mathewson
dad60905a8 Be a little more careful when our calculated bandwidth is so high that we could never ever exhaust our bandwidth limit. This should resolve bug 130.
svn:r6146
2006-03-13 01:06:55 +00:00
Nick Mathewson
bd8ffccae7 More cleanups noticed by weasel; also, remove macros that nobody uses.
svn:r6143
2006-03-12 23:31:16 +00:00
Nick Mathewson
474c60b743 Cleanup on time-relaqted constants. New conventions:
1) Surround all constants by (parens), whether we'll be using them
     in a denominator or not.
  2) Express all time periods as products (24*60*60), not as multiplied-out
     constants (86400).
  3) Comments like "(60*60) /* one hour */" are as pointless as comments
     like "c = a + b; /* set c to the sum of a and b */".  Remove them.
  4) All time periods should be #defined constants, not given inline.
  5) All time periods should have doxygen comments.
  6) All time periods, unless specified, are in seconds.  It's not necessary
     to say so.

To summarize, the old (lack of) style would allow:

  #define FOO_RETRY_INTERVAL 60*60 /* one hour (seconds) */
  next_try = now + 3600;

The new style is:

  /** How often do we reattempt foo? */
  #define FOO_RETRY_INTERVAL (60*60)

  next_try = now + RETRY_INTERVAL;


svn:r6142
2006-03-12 22:48:18 +00:00
Roger Dingledine
b67a5ba498 lower the reachability timeout, so we're more likely to act
quickly if a server stops being reachable.


svn:r6141
2006-03-12 21:24:03 +00:00
Roger Dingledine
1fc5eb329b We screwed up in anticipating how to add new dirservers:
Old servers won't realize they're supposed to stay connected
to the new dirservers, so they'll expire connections to them,
but that means the dirservers will list them as unreachable.

So the fix is to stop requiring an open connection when deciding
if a server is reachable. This makes us slightly less accurate,
but at least it will work.


svn:r6140
2006-03-12 20:57:52 +00:00
Roger Dingledine
ef447507ff a better clean-up
svn:r6139
2006-03-12 20:51:02 +00:00
Roger Dingledine
a98b25137c and another fix
svn:r6138
2006-03-12 20:48:59 +00:00
Roger Dingledine
98476c71d2 make tor --verify-config closer to working
svn:r6137
2006-03-12 20:46:00 +00:00
Roger Dingledine
a4da44c2b9 Now do address rewriting when the controller asks us to attach
to a particular circuit too. This will let Blossom specify
"moria2.exit" without having to learn what moria2's IP address is.

It may also cause other controller authors some angst. Let us know.


svn:r6136
2006-03-12 05:04:16 +00:00
Roger Dingledine
d80d5370e0 when we get funny-looking lines on our dirport, shut up about it.
svn:r6135
2006-03-12 04:36:17 +00:00
Roger Dingledine
b5c6a990d3 fix assert while attachstream'ing a connect-wait or
resolve-wait stream.


svn:r6134
2006-03-12 04:33:29 +00:00
Roger Dingledine
80f0492a65 avoid shadowing a variable so we don't get sad later.
svn:r6133
2006-03-12 04:07:21 +00:00
Roger Dingledine
0bd46086c3 fix bug reported by gozu: if we get a linelist or linelist_s
config option from the torrc and it has no value, warn and
skip rather than silently resetting it to its default.


svn:r6125
2006-03-11 18:40:33 +00:00
Roger Dingledine
c8e2a051ac huge warning sign for esc_router_info()
svn:r6124
2006-03-11 17:52:55 +00:00
Nick Mathewson
4d3e709c4b Use escaped() for remaining cases.
svn:r6117
2006-03-11 02:21:30 +00:00
Roger Dingledine
86a72f73b9 make entry guard logs even quieter
svn:r6116
2006-03-10 16:51:26 +00:00
Roger Dingledine
e11f900a2a stop printing a log message at every iteration through the
event loop when holding open a conn for flushing but it
doesn't want to flush any more bytes yet.


svn:r6114
2006-03-09 06:34:33 +00:00
Roger Dingledine
5f8d26496d Let the controller attachstream conns that are in connect_wait
or resolve_wait: we detach them first and then act as before.
Resolves bug 264.


svn:r6112
2006-03-09 06:29:53 +00:00
Roger Dingledine
82d1fdbaea don't abandon entry guards until they've been dead a whole month.
make entry guard log messages quieter.


svn:r6106
2006-03-09 00:55:55 +00:00
Roger Dingledine
44107f6ec4 Implement NEWNYM. Nick, did I do a bad thing?
svn:r6105
2006-03-09 00:18:16 +00:00
Roger Dingledine
0f39033b9f clean up typo
svn:r6103
2006-03-09 00:10:28 +00:00
Roger Dingledine
946317ae13 start using OR_CONN_EVENT_NEW.
also fixes a seg fault in tor (bug 261).


svn:r6101
2006-03-08 22:29:08 +00:00
Roger Dingledine
8db1e363c9 remove some redundant code now that we compress exit policies
after parsing them


svn:r6099
2006-03-08 19:34:34 +00:00
Nick Mathewson
1ce3713889 Possible bug 265 fix: authorities must be more strict than clients about age of acceptable routers; make routers publish every 12 hours; client ROUTER_MAX_AGE must be greater than NETWORKSTATUS_MAX_AGE+authoirty ROUTER_MAX_AGE.
svn:r6095
2006-03-08 06:29:52 +00:00
Roger Dingledine
a2d71f917e mark bug 261
svn:r6089
2006-03-06 19:47:54 +00:00
Nick Mathewson
5dc5380984 Add some "to-be-safe" escaped() wrappers to log statements in rend*.c, though I am not 100% sure that each one is necessary.
svn:r6088
2006-03-06 00:25:39 +00:00
Nick Mathewson
5777ee0e1a Add some functions to escape values from the network before sending them to the log. Use them everywhere except for routerinfo->plaftorm, routerinfo->contact_info, and rend*.c. (need sleep now)
svn:r6087
2006-03-05 09:50:26 +00:00
Nick Mathewson
6a4e304d9e Allow private:* in routerdescs; not generated yet (because older Tors do not understand it); needs testing.
svn:r6086
2006-03-05 05:27:59 +00:00
Roger Dingledine
329af979e0 Add a new circuit purpose 'controller' to let the controller
ask for a circuit that Tor won't try to use.

Extend the EXTENDCIRCUIT controller command to let you specify
the purpose if you're starting a new circuit.

Add a new SETCIRCUITPURPOSE controller command to let you
change a circuit's purpose after it's been created.


svn:r6075
2006-02-23 06:51:09 +00:00
Roger Dingledine
2bfd2a2400 clean up a log message
svn:r6074
2006-02-21 17:54:56 +00:00
Roger Dingledine
25ed4b66e3 be quieter about hidserv descriptors that are too old or too new.
we can't do anything about them anyway.


svn:r6073
2006-02-21 06:23:57 +00:00
Roger Dingledine
89b07b458b i missed the other half of that grammar fix
svn:r6058
2006-02-21 03:55:47 +00:00
Roger Dingledine
16f265fa0d when saveconf fails in controller v1, we were returning a malformed
error string.


svn:r6053
2006-02-20 01:24:26 +00:00
Roger Dingledine
498c13b4df make the NoPublish option obsolete.
svn:r6052
2006-02-20 01:21:48 +00:00
Roger Dingledine
0408adb728 tweak
svn:r6051
2006-02-20 01:15:38 +00:00
Roger Dingledine
276a7bd038 the other half of fixing bug 257. catch an error in more places.
svn:r6050
2006-02-20 01:06:27 +00:00
Roger Dingledine
57bcdcecf1 try to address bug 257: if rename() fails during saveconf, tell
the controller.


svn:r6049
2006-02-19 23:12:26 +00:00
Roger Dingledine
6a52867846 New config options to address bug 251:
FetchServerDescriptors and FetchHidServDescriptors for whether
to fetch server info and hidserv info or let the controller do it,
and also PublishServerDescriptor and PublishHidServDescriptors.

Add AllDirActionsPrivate undocumented option -- if you set it, you'll
need the controller to bootstrap you enough to build your first circuits.


svn:r6047
2006-02-19 22:02:02 +00:00
Peter Palfrader
c4f389420c Improve the "we have been waiting for 1140377851 seconds" log
svn:r6046
2006-02-19 19:44:09 +00:00
Roger Dingledine
266254f42b clean up the Reachable*Addresses changes
svn:r6041
2006-02-19 08:31:47 +00:00
Roger Dingledine
a9fcf4ced2 this is why you're not supposed to cut-and-paste code
svn:r6037
2006-02-18 06:46:01 +00:00
Peter Palfrader
aa5443551d Make it compile with VC7. It does not yet link.
svn:r6033
2006-02-18 02:02:21 +00:00
Roger Dingledine
42cd0dcde8 fix typo found in phobos's logs
svn:r6020
2006-02-15 03:47:38 +00:00
Roger Dingledine
f6d80d60e0 don't warn when we get a server descriptor from the controller
but it's too old. that's not something tor should fix.


svn:r6019
2006-02-15 03:01:53 +00:00
Peter Palfrader
c7f2970777 Just because both are obsolete does not mean we prefer the newer
svn:r6016
2006-02-14 17:48:51 +00:00
Peter Palfrader
0bab094d5d Explain why we only expire open connections
svn:r6015
2006-02-14 17:30:04 +00:00
Roger Dingledine
ae249fc5a3 document the frequency for reachability testing by the
directory authorities.


svn:r6014
2006-02-14 04:33:59 +00:00
Peter Palfrader
84295f9f43 Do not mark connections obsolete before they have done their TLS handshake or are at least 60 seconds old
svn:r6013
2006-02-14 04:23:05 +00:00
Peter Palfrader
761da5b97f Our connection_or_get_by_identity_digest() was slightly wrong. If best
didn't have any circuits on it, but conn had circuits, we would not make
conn our new best unless it was also newer.  Also, restructure the code
a bit to maybe make it clearer.


svn:r6012
2006-02-14 00:08:19 +00:00
Peter Palfrader
0cc2390f8c Warn if ReachableAddresses is set when also ReachableDirAddresses and ReachableORAddresses are set.
svn:r6010
2006-02-13 22:29:37 +00:00
Peter Palfrader
5eea6c76df Split ReachableAddresses into ReachableDirAddresses and ReachableORAddresses
svn:r6009
2006-02-13 21:17:20 +00:00
Roger Dingledine
259c65ab08 the last of the log convention conversion. finally.
svn:r6005
2006-02-13 10:33:00 +00:00
Roger Dingledine
aa63a84fe1 the things we do for our windows users.
i hope they appreciate it.


svn:r6004
2006-02-13 09:37:53 +00:00
Roger Dingledine
d113b75da6 more log conversions.
whee.


svn:r6003
2006-02-13 09:02:35 +00:00
Roger Dingledine
36484f873a convert some more source files to the new log convention
svn:r6002
2006-02-13 08:28:42 +00:00
Roger Dingledine
7d80921afa resolve too-long-lines
svn:r6001
2006-02-13 08:22:57 +00:00
Nick Mathewson
2a4555fedd Style on config_addr_policy_intersectes, which looks ok to me.
svn:r5998
2006-02-13 07:16:32 +00:00
Roger Dingledine
350313d77a Let the users set ControlListenAddress in the torrc.
This can be dangerous, but there are some cases (like a secured
LAN) where it makes sense.


svn:r5997
2006-02-13 06:25:16 +00:00
Peter Palfrader
6c4d873591 Compress exit policies even more. please review
svn:r5995
2006-02-13 01:54:31 +00:00
Nick Mathewson
2cc66125b8 try to fix bug with spurious "everything is broken" warning
svn:r5994
2006-02-13 00:26:43 +00:00
Roger Dingledine
b7781ea208 bugfix: we were ignoring the IS_FAST flag in the directory
status, meaning we were willing to pick trivial-bandwidth nodes
for "fast" connections.


svn:r5992
2006-02-13 00:09:30 +00:00
Nick Mathewson
dba155ecff Generate 18.0.0.0/8 address policy format in descs when we can; warn when the mask is not reducible to a bit-prefix.
svn:r5991
2006-02-12 23:58:22 +00:00
Roger Dingledine
b99f903e34 and don't warn when it happens here either, unless the user
wants to hear it.


svn:r5990
2006-02-12 23:44:02 +00:00
Roger Dingledine
97571a1cb4 don't tell ordinary users about broken directory servers.
it's a shame that they're broken, but most people are just
confused by the warning.


svn:r5988
2006-02-12 23:31:47 +00:00
Nick Mathewson
98ec124c6a Drop redundant exit policy entries, not just identical ones.
svn:r5987
2006-02-12 22:59:38 +00:00
Nick Mathewson
e7b2d5cd47 Retain unrecognized options in state file, so that we can be forward-compatible.
svn:r5985
2006-02-12 22:28:30 +00:00
Nick Mathewson
ae4f0467c8 enforce whitespace style
svn:r5984
2006-02-12 22:27:09 +00:00
Roger Dingledine
3c4e68488b Clients now honor the "guard" flag in the router status when
picking entry guards, rather than looking at is_fast or is_stable.

Now dirservers can change how they define it and clients will
automatically use their new definition.


svn:r5979
2006-02-12 03:43:39 +00:00
Roger Dingledine
b5ac6fc707 more helpful log message when running servers on obsolete windows.
svn:r5975
2006-02-12 00:14:58 +00:00
Roger Dingledine
094ccd34a9 bump up the period for forcing a hidden service descriptor upload
from 20 minutes to 1 hour.


svn:r5972
2006-02-12 00:12:36 +00:00
Roger Dingledine
981815146a compress exit policies even more -- look for duplicate lines
and remove them.


svn:r5971
2006-02-12 00:03:06 +00:00
Roger Dingledine
6c093a17a9 bugfix in config_cmp_addr_policies() -- we were treating a pair
of exit policies if they were equal even if one said accept and
the other said reject.


svn:r5970
2006-02-11 23:47:24 +00:00
Roger Dingledine
fdf18fbbdb stop leaking that
svn:r5969
2006-02-11 23:16:13 +00:00
Roger Dingledine
e847085c04 When a client asks for an old-style directory and our write bucket
is empty, don't give it to him. This way small servers can continue
to serve the directory *sometimes*, without getting overloaded.


svn:r5968
2006-02-11 23:15:40 +00:00
Nick Mathewson
f1b91924b2 Keep running if we ask for an impossible stdout log; just warn.
svn:r5964
2006-02-11 21:56:03 +00:00
Nick Mathewson
1dc90be4f0 Retry pending server downloads as well as pending networkstatus downloads when we unexpectedly get an app connection
svn:r5962
2006-02-11 21:29:12 +00:00
Nick Mathewson
91847124bf Warn if running obsolete windows as a server.
svn:r5961
2006-02-11 21:26:40 +00:00
Roger Dingledine
85a64b4fd0 get our grammar right when complaining about un-recommended versions
svn:r5950
2006-02-09 06:08:59 +00:00
Roger Dingledine
5f051574d5 Happy new year!
svn:r5949
2006-02-09 05:46:49 +00:00
Roger Dingledine
fd0fcdf17c stop calling it a "libevent poll" -- the word "poll" has
other meaning in this context that are confusing.


svn:r5936
2006-02-09 03:09:52 +00:00
Roger Dingledine
dbea401305 correct the comments that don't realize it's the opposite
svn:r5934
2006-02-09 02:59:26 +00:00
Roger Dingledine
31f2705d9a and make sure that never happens again
svn:r5932
2006-02-09 02:42:33 +00:00
Roger Dingledine
2c221dd8db fix bug 245: When modifying the orconn_circid_map map, we would
sometimes decrement conn->n_circuits even when there was no circuit
originally. This caused conn->n_circuits to go negative.

We noticed this because we were checking if connections can be
closed based on conn->n_circuits == 0, so we were never closing
any connection that had ever had a circuit on it.


svn:r5931
2006-02-09 02:42:15 +00:00
Roger Dingledine
1c596156aa tweak comment
svn:r5930
2006-02-09 00:08:23 +00:00
Nick Mathewson
e5a574ce2e Move "sort list of versions" logic into routerparse.c; make version-checking code say which versions it would have accepted. (not tested.)
svn:r5927
2006-02-06 05:04:27 +00:00
Nick Mathewson
2bb4fd24de char *x = "y"; is not good C.
svn:r5926
2006-02-06 05:01:44 +00:00
Nick Mathewson
50e1005327 Only v1 authorities get hidden service descriptors with current protocol
svn:r5924
2006-02-06 04:56:18 +00:00
Nick Mathewson
97bff8edaa Fix a const-non-const warning
svn:r5923
2006-02-06 04:55:27 +00:00
Roger Dingledine
a9c87fe251 more typos and nits
svn:r5918
2006-02-05 05:28:52 +00:00
Nick Mathewson
157e6a025a Stupid cut-and-paste bug.
svn:r5917
2006-02-05 05:11:24 +00:00
Roger Dingledine
555a64e06d as soon as we've fetched some more directory info, that's time
to think about downloading more server descriptors. this way
we don't have a 10 second pause in initial bootstrapping.


svn:r5916
2006-02-05 03:42:34 +00:00
Roger Dingledine
d602d0d298 cosmetic fix
svn:r5915
2006-02-05 03:42:04 +00:00
Roger Dingledine
640882c76c clean up tabs and wide-lines from weasel's commit
svn:r5914
2006-02-05 03:23:16 +00:00
Roger Dingledine
6535087845 when building v2 statuses or v1 running-routers, don't admit the
existence of descriptors older than a day.

we still cache them in case anybody asks, but we don't actively
mention them.


svn:r5913
2006-02-05 02:33:40 +00:00
Roger Dingledine
53f86cdf5d fix bug: we were caching the newest descriptor for each server,
well, forever. i imagine this just keeps growing in size.


svn:r5912
2006-02-05 02:07:28 +00:00
Roger Dingledine
4c1fa73c7e typos and nits
svn:r5911
2006-02-05 01:57:27 +00:00
Roger Dingledine
a53a73a782 forward-port the part where ordinary users try to fetch directories
less often. not critical but might as well stay in sync with stable.


svn:r5910
2006-02-05 01:57:07 +00:00
Roger Dingledine
640c555f02 Fix a major load balance bug: we were round-robining in 16 KB chunks, and
servers with bandwidthrate of 20 KB, while downloading a 600 KB directory,
would starve their other connections. Now we try to be a bit more fair.


svn:r5906
2006-02-04 08:58:51 +00:00
Peter Palfrader
94fb3f06b3 Fix compiler warning on 64 bit archs
svn:r5903
2006-02-03 22:26:43 +00:00
Peter Palfrader
390bbb0a0c Try to make tor work better through squid: Limit number of descriptors we fetch
to 96 (was 128 previously).

We limit this number even when we do not have a http proxy explicitly
configured as some people mistakenly believe transparent proxies are a neat
idea.


svn:r5901
2006-02-03 15:17:48 +00:00
Roger Dingledine
a1dd751f30 when we fail to bind a listener, try to provide a more useful log msg.
svn:r5900
2006-02-03 12:26:10 +00:00
Roger Dingledine
1800fbe486 don't warn when we receive a 503 from a dirserver/cache -- this
will pave the way for them being able to tell us to screw off
if they're busy.


svn:r5898
2006-02-03 12:08:31 +00:00
Roger Dingledine
0fadf0aad6 Fix bug 225: now "attachstream 0" treats conn like it just connected,
doing address remapping, handling .exit and .onion idioms, and so on.

Now we are more uniform in making sure that the controller hears about
all new connections, and making sure it hears when they close.


svn:r5897
2006-02-03 11:37:19 +00:00
Roger Dingledine
92ef9e37e7 Add a new config option ExitPolicyRejectPrivate which defaults to 1.
This means all exit policies will begin with rejecting private addresses,
unless the server operator explicitly turns it off.

Also, make our code to remove redundancies in the exit policy smarter,
so it can detect "reject foo, reject bar, reject *" patterns.

Lastly, we can get rid of the "exit policy implicitly accepts" code,
since we make everything more explicit now.


svn:r5888
2006-02-01 03:53:52 +00:00
Roger Dingledine
bdba6e42dc avoid a minor confusing log message
svn:r5887
2006-02-01 03:05:52 +00:00
Peter Palfrader
bf514e5dc5 Try to fix policy_includes_addr_mask_implicitly()
svn:r5886
2006-02-01 02:52:55 +00:00
Peter Palfrader
61ea27620a Also catch 0/8 in exit_policy_implicitly_allows_local_networks()
svn:r5885
2006-02-01 02:31:27 +00:00
Roger Dingledine
686508a04a don't try to upload hidden service descriptors until we have
established a circuit.


svn:r5884
2006-02-01 02:19:46 +00:00
Roger Dingledine
e05d4e45d2 provide a more useful warn message when our onion queue
gets full.


svn:r5881
2006-01-31 08:17:00 +00:00
Roger Dingledine
8fc44169e5 only start testing reachability once we've established a circuit.
this will make startup on dirservers less noisy.
it may also break things in subtle ways.


svn:r5878
2006-01-29 01:11:41 +00:00
Roger Dingledine
f8b9a8d457 bump the default bandwidthrate to 3 MB, and burst to 6 MB
svn:r5874
2006-01-28 08:28:15 +00:00
Roger Dingledine
35f91db15f a slightly more useful message when you get a sighup
svn:r5869
2006-01-26 19:11:06 +00:00
Nick Mathewson
bfe285be61 Add a missing printf arg
svn:r5861
2006-01-24 04:01:13 +00:00
Roger Dingledine
2eabf190e9 make it louder when we're running an unrecommended version.
also, we need to tell them what versions *are* recommended.
i'll add that to the todo.


svn:r5859
2006-01-24 03:45:58 +00:00
Nick Mathewson
9f42c9d650 Make dirservers generate a separate "guard" flag to mean, "would make a good entry guard". Make clients parse it and vote on it.
svn:r5856
2006-01-24 00:31:16 +00:00
Roger Dingledine
1756ebdd4e Jan 23 02:39:44.856 [warn] rend_mid_rendezvous(): Rejecting RENDEZVOUS1 cell with unrecognized rendezvous cookie AFC097FD.
This is not anything that the server admin can deal with, so don't
complain this loudly.


svn:r5851
2006-01-23 09:26:22 +00:00
Roger Dingledine
de13ddd26f Stop complaining loudly whenever some poor client falls off
the network before we finish writing to him.


svn:r5850
2006-01-23 09:23:04 +00:00
Roger Dingledine
b9540285af remove unused code
svn:r5847
2006-01-20 20:54:42 +00:00
Roger Dingledine
f6084cf831 Jan 18 18:42:05.671 [debug] Encountered eof
Jan 18 18:42:05.671 [debug] Got data, not eof. Leaving on inbuf.

that's not very smart.


svn:r5843
2006-01-19 11:21:28 +00:00
Roger Dingledine
4a66f5a896 when the controller asks for a signal we don't recognize, don't
include the whitespace/newline/etc in our complaint.


svn:r5841
2006-01-19 02:21:24 +00:00
Roger Dingledine
d682c84e79 attempted patch for bug 220: don't assert when we've tried all the
intro points for a hidden service and we try fetching the service
descriptor again.


svn:r5838
2006-01-17 04:16:59 +00:00
Roger Dingledine
d5acef191c add another assert to make sure we're not scribbling on the stack.
svn:r5837
2006-01-17 04:14:04 +00:00
Roger Dingledine
cca9a2f7b0 oh, and the other bits of the commit
svn:r5836
2006-01-17 04:03:23 +00:00
Roger Dingledine
21be9dc3c0 when you tried to set orport through the controller, it would
trigger an assert because you hadn't made your onion keys yet
you wanted to launch cpu workers.

now init keys first, reset uptime, and tell the user that we're
starting the reachability testing.


svn:r5835
2006-01-17 04:01:32 +00:00
Roger Dingledine
76f1b7415b try to detect an assert error earlier
svn:r5834
2006-01-17 02:31:04 +00:00
Nick Mathewson
1057516a07 Clients should not download descriptors for non-running descriptors.
svn:r5830
2006-01-16 20:52:30 +00:00
Roger Dingledine
f0d4b3d18f turn crypto hardware acceleration off by default, until we find
somebody smart who can test it for us.


svn:r5829
2006-01-16 20:08:33 +00:00
Nick Mathewson
2dd566d5d5 Indirect access to the signed_descriptor field to make it easier to keep them lazily on disk.
svn:r5827
2006-01-12 18:04:17 +00:00
Roger Dingledine
0e51d5d274 When the controller was submitting a descriptor, we were checking to make
sure some network-status we had referred to it, and refusing it if not.
This is bad for people who want to insert descriptors that aren't part of
the current Tor network. Now we accept them, and also give a more useful
warn message if we ask a dir mirror for a given descriptor and it gives us
one we weren't expecting.


svn:r5824
2006-01-12 03:43:39 +00:00
Roger Dingledine
54a7285e99 oh hey. we were hanging up on every tor client because he
was obsolete as soon as he started. big oops.


svn:r5807
2006-01-11 22:34:07 +00:00
Nick Mathewson
c562ca494a add missing warning
svn:r5806
2006-01-11 20:09:37 +00:00
Nick Mathewson
fefa34d525 Fix double-free of torrc_fname
svn:r5805
2006-01-11 20:01:47 +00:00
Nick Mathewson
adbe0f0ada Fix bug 240: dont dump descriptions when not dumping actual config lines.
svn:r5804
2006-01-11 19:43:14 +00:00
Nick Mathewson
099b9ce2f9 Fix bug 230: add a rollback function to reverse all changes since the last mark_logs_temp(), and move log initialization into the two-phase part of option setting.
svn:r5803
2006-01-11 19:40:14 +00:00
Roger Dingledine
5ca40affeb we were leaking a smartlist every time we built a circuit
svn:r5795
2006-01-11 04:14:10 +00:00
Nick Mathewson
d60faa7c93 Fix another memleak. I love you, valgrind!
svn:r5794
2006-01-11 04:09:40 +00:00
Nick Mathewson
8907391ad6 Fix wide lines
svn:r5793
2006-01-11 04:04:42 +00:00
Nick Mathewson
5c78c89471 Appease verbose gcc warning: make dirserv_compute_stable_uptime() static.
svn:r5792
2006-01-11 03:59:55 +00:00
Roger Dingledine
284fe9cad5 if we learn that a down entry guard is up, count our working entry
guards correctly when logging.


svn:r5791
2006-01-11 03:58:59 +00:00
Nick Mathewson
eb78295e4e Fix memory leak in routerlist_remove_old_routers().
svn:r5790
2006-01-11 03:58:07 +00:00
Nick Mathewson
6a9ca9e790 Convert some more ints to long longs in rephist.c, as suggested by windows compiler.
svn:r5789
2006-01-11 03:57:01 +00:00
Roger Dingledine
d1baa0c4a6 we were leaking 3KB every time the entry guards changed, every time
the controller called saveconf, and every 20 minutes.


svn:r5788
2006-01-11 03:20:53 +00:00
Roger Dingledine
8f271f2f5a we changed the name of AccountingBytesReadInInterval
change its state file description too


svn:r5785
2006-01-10 23:26:59 +00:00
Roger Dingledine
7d1f675c85 entry nodes are now entry guards.
this is our last easy chance for a wholesale change. heave ho.


svn:r5782
2006-01-10 22:42:44 +00:00
Roger Dingledine
210d9db54d and even more so
svn:r5776
2006-01-10 21:01:30 +00:00
Roger Dingledine
aea0a78254 make entry node logging slightly less chatty.
still quite chatty. it's an alpha, that's ok.


svn:r5775
2006-01-10 20:59:39 +00:00
Nick Mathewson
bef879540a #undef FOO is cleaner than #define FOO_XX
svn:r5774
2006-01-10 20:50:22 +00:00
Nick Mathewson
4a7ee9bd3d Make unittests pass again.
svn:r5773
2006-01-10 20:47:24 +00:00
Roger Dingledine
b2d79f278b or_state_validate() needs an extra arg too or it will crash
svn:r5772
2006-01-10 20:38:33 +00:00
Roger Dingledine
f4299f0f44 hack to address bug 238.
needs a better fix, but not for 0.1.1.11.


svn:r5771
2006-01-10 20:27:47 +00:00
Roger Dingledine
d114ea7125 implement getinfo desc/all-recent
closes bug 237.


svn:r5770
2006-01-10 20:09:31 +00:00
Roger Dingledine
f71273c216 fix bug 235
svn:r5768
2006-01-10 20:06:24 +00:00
Nick Mathewson
7fc62029d4 Refuse to use RunAsDaemon when torrc is a relative path. Fixes bug 229.
svn:r5767
2006-01-10 20:00:20 +00:00
Nick Mathewson
e1d1ce3da8 Warn about actual offending hiddenservice* config option, now that more than one is possible. Closes bug 239.
svn:r5766
2006-01-10 19:28:31 +00:00
Nick Mathewson
2fda7140e8 Fix bug 221 and bug 201: For 221, check return value from connection_add() when adding a rendezvous post connection. For 201, do not include a content-length 0 with a GET request.
svn:r5765
2006-01-10 19:24:40 +00:00
Roger Dingledine
c8e6003412 balance the reachability testing so a smidgen of it happens
every 10 seconds. this way we don't try to do 500 tls's at
once every 20 minutes.


svn:r5763
2006-01-10 07:21:01 +00:00
Nick Mathewson
43a4f8c7f3 Be more aggressive about throwing away expired router descriptors: they are of no use to anybody. Better still: dont serve expired descriptors by fingerprint. The only people who ask for them are busted 0.1.1.10 Tors that will throw them away and re-request them after 30 minutes.
svn:r5762
2006-01-10 04:57:12 +00:00
Nick Mathewson
56c55c343e When picking a random directory, prefer non-authorities if any are known.
svn:r5761
2006-01-09 23:39:07 +00:00
Nick Mathewson
bec9b705cc Instrument directory client bytes as well as server bytes.
svn:r5760
2006-01-09 23:13:53 +00:00
Nick Mathewson
10100c4315 Make instrmentation code a little cleaner.
svn:r5759
2006-01-08 22:19:41 +00:00
Roger Dingledine
fa05c1b21b remove the loud logging of busted rendezvous descriptors
svn:r5758
2006-01-08 22:16:30 +00:00
Roger Dingledine
6dcbbda43b remove typo
svn:r5757
2006-01-08 22:16:09 +00:00
Nick Mathewson
ff9cfa9644 Instrument how many directory bytes we are serving in what kind of request.
svn:r5756
2006-01-08 22:09:54 +00:00
Nick Mathewson
5d709e8517 Fix bug in last commit. Also, fix bug 231: authorities should never treat their own descriptor changes as cosmetic.
svn:r5755
2006-01-08 21:33:15 +00:00
Nick Mathewson
e30516f33f Fix bug 236: caches should cache up to 16 unrecognized network-status docs.
svn:r5754
2006-01-08 21:26:33 +00:00
Roger Dingledine
1dd8ebf615 bugfix: we were leaving open duplicate connections to other ORs
for a week, rather than closing them once we detect a duplicate.

also, avoid some duplicate mark-for-closes in connection-housekeeping.


svn:r5752
2006-01-07 03:56:56 +00:00
Roger Dingledine
9796733e89 "Pending" is a bad term for a circuit that uses your server as its last hop.
svn:r5751
2006-01-07 02:31:14 +00:00
Roger Dingledine
d4d7a49411 fix typo
svn:r5750
2006-01-07 02:12:38 +00:00
Roger Dingledine
af54b73985 and get the log arguments right
svn:r5747
2006-01-07 01:43:09 +00:00
Roger Dingledine
ba339b8a4d a more correct log message
svn:r5746
2006-01-07 01:41:17 +00:00
Roger Dingledine
654b61a2e8 Jan 05 19:39:27.356 [warn] connection_edge_process_end_not_open():
Got an end because of misc error, but we're not an AP. Closing.


svn:r5744
2006-01-07 01:02:21 +00:00
Roger Dingledine
f88fa3efc1 helper nodes are dead
svn:r5743
2006-01-07 00:41:50 +00:00
Nick Mathewson
50b6b3258d Dont call directory_get_from_dirserver when you have a particular dirserver in mind; remove fetch-from-authority special-case in directory_get_from_dirserver.
svn:r5741
2006-01-06 18:19:17 +00:00
Nick Mathewson
f0fb9f6b0c Directory authorities should go to the proper authority when asking for a networkstatus, even when they want a compressed one. (Also, bullet-proof the logic in case we ever accidentally request a networkstatus for a non-authority.)
svn:r5740
2006-01-06 18:05:48 +00:00
Nick Mathewson
65f76bad4f Add descriptions for state variables; rename AccountingBytesRead{In}Interval; remove extraneous and unused struct member.
svn:r5739
2006-01-06 15:43:03 +00:00
Nick Mathewson
447e6ffffd Fix bug where OPs would try to generate descriptor and crash.
svn:r5738
2006-01-06 15:40:34 +00:00
Nick Mathewson
878962bee1 Add reasons to DESTROY and RELAY_TRUNCATED cells.
svn:r5734
2006-01-05 21:23:03 +00:00
Roger Dingledine
d8e3bc0288 fix a wrong string
svn:r5733
2006-01-05 12:18:34 +00:00
Roger Dingledine
6aaa92f736 short-circuit half the cost of node-picking in the general case.
svn:r5732
2006-01-05 10:59:46 +00:00
Roger Dingledine
f8a59965a1 cleanups, and remove some unreachable code.
svn:r5727
2006-01-04 06:43:03 +00:00
Roger Dingledine
485aa9415d authdirs now stop whining so loudly about bad descriptors that they fetch
from other dirservers. now when there's a log complaint, it's for sure
from a freshly uploaded descriptor.


svn:r5726
2006-01-04 04:42:10 +00:00
Roger Dingledine
6b2a6a8239 Bugfix: dyndns tor servers were needing to wait 18 hours before they
could start doing reachability testing using the new IP address and
ports. This is because we were using the internal descriptor to learn
what to test, yet we were only rebuilding the descriptor once we
decided we were reachable.


svn:r5723
2006-01-03 23:34:42 +00:00
Roger Dingledine
f6f65c66b5 oh, it was supposed to compile?
svn:r5721
2006-01-03 13:12:17 +00:00
Roger Dingledine
da06f3553c don't try to build circuits until we have 3 running servers;
and for networks that are very small, having more than a quarter
of the descriptors is much harder than having equal to or more than
a quarter of the descriptors -- follow the spec.


svn:r5720
2006-01-03 13:09:49 +00:00
Roger Dingledine
5d28b7b884 we're done with tree.h. long live ht.h.
svn:r5715
2006-01-03 12:35:58 +00:00
Roger Dingledine
9af33ef39c when we choose not to use a server descriptor from our cache, don't
log it so loudly.


svn:r5713
2006-01-03 10:42:20 +00:00
Roger Dingledine
16ee6830b6 only print bandwidth lines to the state file if we're being a server.
otherwise this is pointless and probably bad for security.


svn:r5704
2006-01-02 12:19:28 +00:00
Roger Dingledine
1d474e14d7 strictentrynodes means we should clear the current entry_nodes list.
svn:r5703
2006-01-02 11:33:14 +00:00
Roger Dingledine
c5a5161fb5 prevent auth dir servers from enabling entry nodes.
svn:r5702
2006-01-02 08:40:58 +00:00
Roger Dingledine
358052416d bugfix: only try to use the EntryNodes config option if it is set.
svn:r5701
2006-01-02 05:14:21 +00:00
Roger Dingledine
ddf070e204 bugfix: we were failing to parse a tor version that started with
"Tor ", even though we said we could.


svn:r5699
2006-01-02 05:11:31 +00:00
Roger Dingledine
ea6ea8ec22 Make UseEntryNodes true by default. Let the fun begin.
svn:r5698
2006-01-02 05:00:03 +00:00
Roger Dingledine
aa604ef2c2 bugfix: only try to parse the TorVersion if there is one.
svn:r5697
2006-01-02 04:58:12 +00:00
Roger Dingledine
839111b85a tolerate a mal-formed or unrecognized tor version in the state file.
svn:r5696
2006-01-02 04:45:18 +00:00
Roger Dingledine
0bd25f5d43 save and validate TorVersion in the state file.
svn:r5694
2006-01-02 04:14:52 +00:00
Roger Dingledine
2efa056777 make the "stable" flag in network-status be the median of the uptimes
of running valid servers. that way the cutoff adapts to the stability
of the network as a whole.


svn:r5693
2006-01-02 03:32:55 +00:00
Nick Mathewson
4868d77ab8 Possible fix to state-load bug reported by weasel.
svn:r5692
2006-01-02 00:42:19 +00:00
Peter Palfrader
3dc69d3add Make tor compile again
svn:r5688
2005-12-31 11:52:13 +00:00
Roger Dingledine
6c693dbda6 add a TorVersion state string.
not yet set to anything.


svn:r5687
2005-12-31 08:16:07 +00:00
Roger Dingledine
e9e7dc176c Some tor servers process billions of cells in a matter of days.
These statistics need to be uint64_t's.


svn:r5686
2005-12-31 08:09:26 +00:00
Roger Dingledine
1a11b97b15 get rid of the special case for 'testing' circuits
svn:r5684
2005-12-31 06:37:34 +00:00
Roger Dingledine
5947388968 Finish implementing config's EntryNodes and StrictEntryNodes option.
The logging is way verbose for now.


svn:r5683
2005-12-31 06:32:57 +00:00
Roger Dingledine
0dc8e284f8 load balance a bit better by taking some load off the really
fast servers.
this might slow things down more, or it might not. hm.


svn:r5681
2005-12-30 04:46:43 +00:00
Roger Dingledine
c051e82f69 fix a typo
svn:r5680
2005-12-30 04:44:10 +00:00
Nick Mathewson
fc850273bd Appease some verbose GCC warnings.
svn:r5679
2005-12-29 20:25:53 +00:00
Roger Dingledine
2904c6f024 log how big the failed rend descriptor is, and if it's small, log
a base16 of the whole thing.


svn:r5678
2005-12-29 04:57:19 +00:00
Roger Dingledine
14ea2e0b56 when we reject a rend descriptor, tell us where it came from.
svn:r5677
2005-12-29 04:43:24 +00:00
Roger Dingledine
dbd7b97eff helper nodes are dead. long live entry nodes.
(config options EntryNodes and StrictEntryNodes still not
implemented.)


svn:r5673
2005-12-28 09:07:31 +00:00
Roger Dingledine
5d9256a367 but only close the new conn if one of the earlier helper nodes
that we mark up is actually reachable, fast enough, etc to use.


svn:r5672
2005-12-28 07:27:41 +00:00
Roger Dingledine
c1145138ea but only close it if we have marked an earlier helper as up.
that way we don't close it too needlessly.


svn:r5671
2005-12-28 07:20:33 +00:00
Roger Dingledine
60cd03069a when we connect to a helper node for the first time, close
that connection and its circuits. this lets us go back to
using the old helper nodes rather than immediately using
the last one in the list.


svn:r5670
2005-12-28 07:19:55 +00:00
Roger Dingledine
bbc4c8cef8 fix a spacing problem introduced by our 80-column requirement
svn:r5669
2005-12-27 10:11:29 +00:00
Roger Dingledine
d2171cb7a4 if the network is down, and we try to connect to a conn because we
have a circuit in mind, and we timeout (30 seconds) because the
network never answers, we were expiring the circuit, but we weren't
obsoleting the connection or telling the helper functions. now do that.


svn:r5668
2005-12-27 09:25:50 +00:00
Roger Dingledine
4088f7dfd1 fix typo
svn:r5667
2005-12-27 09:04:36 +00:00
Roger Dingledine
f46c135fac when we succeed at connecting to a helper that we've never connected
to before, mark all the previous helpers as up. This is handy if the
network went away and then returned.


svn:r5666
2005-12-27 08:54:37 +00:00
Roger Dingledine
25fcb5fa9c helpful log
svn:r5665
2005-12-27 08:38:22 +00:00
Roger Dingledine
976bf06463 slightly more accurate log messages
svn:r5664
2005-12-27 07:37:21 +00:00
Roger Dingledine
25052c6f4b first cut of the new helper stuff. seems to work in the normal
case, but many edge cases still need testing.


svn:r5663
2005-12-27 07:23:52 +00:00
Nick Mathewson
9ef54a3d0c Make directory caches a little less chatty when logging
svn:r5662
2005-12-27 06:05:54 +00:00
Nick Mathewson
fa0d5aa894 Make insert_old try hard to never add a duplicate.
svn:r5661
2005-12-27 05:58:12 +00:00
Nick Mathewson
ece9865020 Implement new directory logic: download by descriptor digest, not by key digest. Caches try to download all listed digests from authorities; clients try to download "best" digests from caches.
svn:r5659
2005-12-27 05:26:03 +00:00
Nick Mathewson
d94b9fd7d2 normalize spaces
svn:r5658
2005-12-27 04:52:34 +00:00
Roger Dingledine
94bff33357 and compiling would be good too
svn:r5657
2005-12-27 02:48:35 +00:00
Roger Dingledine
370dcbc7ba and some comments
svn:r5656
2005-12-27 02:48:02 +00:00
Roger Dingledine
5807bd0635 make it clearer in the auto-generated config file that you
probably shouldn't be editing this one yourself.


svn:r5655
2005-12-27 02:46:53 +00:00
Roger Dingledine
b038dc9ecc disambiguate some debug entries
svn:r5654
2005-12-26 22:42:22 +00:00
Roger Dingledine
815df977cf comments? i'll show you comments.
svn:r5652
2005-12-26 05:52:44 +00:00
Roger Dingledine
40c267a89f prevent a rare infinite loop on two-byte architectures,
and be more thorough and starting over when the clock jumps.


svn:r5647
2005-12-25 04:37:33 +00:00
Roger Dingledine
7e0d62b14a stop being sneaky, especially if we're being incorrectly sneaky
svn:r5646
2005-12-24 23:39:20 +00:00
Roger Dingledine
b0144276db more comments, and start to use the made_contact entry.
svn:r5645
2005-12-24 23:32:35 +00:00
Roger Dingledine
7cc53c2281 clean up some comments
svn:r5644
2005-12-24 23:32:15 +00:00
Roger Dingledine
35986a2374 simplify because we weren't using those return values anyway
svn:r5643
2005-12-24 22:48:12 +00:00
Roger Dingledine
3a2ce447b4 start to document the helper node functions
svn:r5642
2005-12-24 20:07:19 +00:00
Peter Palfrader
4bd65f0f98 Keep bandwidth history accross restarts/crashes
svn:r5637
2005-12-23 23:56:42 +00:00
Roger Dingledine
eecb835527 stop shipping tree.h, since we don't use anymore. (woo.)
svn:r5628
2005-12-20 07:17:42 +00:00
Roger Dingledine
bb4662365b when we fail three times to resolve or connect, we were telling the
user it was because we failed to resolve.


svn:r5620
2005-12-19 21:56:43 +00:00
Roger Dingledine
da01657c34 more asserts in case weasel can trigger them
svn:r5616
2005-12-19 00:35:18 +00:00
Roger Dingledine
7cd46d7f95 fix a seg fault when you finish connecting to a server but
at that moment you dump his server descriptor, and you also
happen to be logging at loglevel info.
(found by weasel)


svn:r5615
2005-12-18 22:59:47 +00:00
Roger Dingledine
34249e8861 fix segfault when specifying DirServer without nickname
(reported by weasel)


svn:r5614
2005-12-18 22:45:27 +00:00
Roger Dingledine
a2186b9999 fix a ! that got left out
svn:r5612
2005-12-18 22:34:24 +00:00
Nick Mathewson
6b5fc9d46f Instead of "Network down", say "Is your network connection down?"
svn:r5607
2005-12-15 22:10:03 +00:00
Roger Dingledine
a6afef700a nother typo
svn:r5605
2005-12-15 21:51:12 +00:00
Roger Dingledine
edde3fcf25 ah ha, that variable was static. not useless after all.
svn:r5604
2005-12-15 21:44:23 +00:00
Roger Dingledine
002c9b3589 clean up a lot message, and remove a line that does nothing.
svn:r5603
2005-12-15 21:41:27 +00:00
Nick Mathewson
89eded7b17 Add "panic" option to reject all servers not in fingerprint list.
svn:r5601
2005-12-15 21:39:38 +00:00
Nick Mathewson
cf8c70b79c fix compile
svn:r5600
2005-12-15 21:38:59 +00:00
Nick Mathewson
280c62314e Make clients look at the fast and stable flags in networkstatus, not at the bandwidth and uptime declared in the router descriptors.
svn:r5599
2005-12-15 21:30:57 +00:00
Roger Dingledine
3489066433 put back in a todo comment, so we don't forget.
svn:r5598
2005-12-15 21:26:52 +00:00
Roger Dingledine
dadcb19d17 fix typo
svn:r5597
2005-12-15 21:26:39 +00:00
Nick Mathewson
24e79df0b6 Whitespace fixes; comments.
svn:r5596
2005-12-15 21:17:40 +00:00
Nick Mathewson
713c995adb Do not mark directories as down simply because they dont have the router descs we want.
svn:r5595
2005-12-15 21:15:16 +00:00
Nick Mathewson
5965b3849e Remove some redundant and obsolete code from routerparse
svn:r5594
2005-12-15 20:58:51 +00:00
Nick Mathewson
6b1305aeeb Flip a misplaced not
svn:r5593
2005-12-15 20:56:46 +00:00
Nick Mathewson
3ea32f51cb add a few clarifying comments
svn:r5592
2005-12-15 20:49:01 +00:00
Nick Mathewson
ce71b17224 Clean fake_status a bit. Switch from has_fetched_directory to have_minimum_dir_info, and make the latter function smarter.
svn:r5591
2005-12-15 20:44:15 +00:00
Roger Dingledine
25e1ad02fa implement weasel's suggestion to fix the bug that newly bootstrapped
tor networks couldn't do hidden services until they had nodes with high
uptime: if you're trying to pick a node for your circuit and you demand
uptime or capacity and nothing works, then abandon your need for uptime
and capacity.


svn:r5589
2005-12-15 09:53:00 +00:00
Nick Mathewson
7af95e5c06 When we mark a router as down, also mark its local_routerstatus as not running. This way, we do not use directories that are believed to be down.
svn:r5587
2005-12-14 22:05:10 +00:00
Nick Mathewson
9482b1b9d5 Choose directory servers from routerstatus list, not from routerinfo list. This way, as soon was we have a networkstatus, we can ask a cache to give us routers, rather than needing to ask the directories.
svn:r5586
2005-12-14 22:00:58 +00:00
Nick Mathewson
c02c6b5823 Shave off 8 bytes per connection and 4 bytes per circuit by paying attention to padding warnings, moving fields around, and acknowledging that we have no files with over 64 kilolines.
svn:r5583
2005-12-14 21:03:51 +00:00
Nick Mathewson
1af630d32c Bite the bullet and limit all our source lines to 80 characters, the way IBM intended.
svn:r5582
2005-12-14 20:40:40 +00:00
Nick Mathewson
7e632a7564 another possible patch related to circuit_free and memory stomping.
svn:r5580
2005-12-14 18:55:17 +00:00
Nick Mathewson
4f38670328 Fix a potential memory stomp on servers running hidden services. Found by weasel with valgrind. Backport candidate.
svn:r5579
2005-12-14 02:19:27 +00:00
Roger Dingledine
86d69218ef orconn_identity_map was another static variable that started
out NULL and didn't change until it needed to change.


svn:r5578
2005-12-14 01:02:35 +00:00
Roger Dingledine
c9f6e6b0a0 sometimes, when we just started tor, we haven't created that
smartlist yet. so don't free it.


svn:r5577
2005-12-14 00:52:15 +00:00
Roger Dingledine
d853c9a009 bugfix: when we removed a dead helper node, we never committed that
change to disk.


svn:r5576
2005-12-13 02:52:38 +00:00
Roger Dingledine
ea760fa149 extendcircuit and attachstream would complain about not enough
arguments, but then just keep on going anyway.


svn:r5575
2005-12-12 16:50:55 +00:00
Nick Mathewson
27a201ac80 Have dirctory authorites note which servers make good V2 directory caches in publishe network-status.
svn:r5574
2005-12-12 01:03:28 +00:00
Nick Mathewson
32126cced1 Make directory authorities ignore router uploads that have only cosmetic differences: now regardless of version!
svn:r5573
2005-12-12 01:02:08 +00:00
Roger Dingledine
bf4da967c1 Don't use helper nodes for circuits with purpose 'testing'.
Also, when picking the helper node for a given circuit,
exclude the circuit's exit from your choices.


svn:r5569
2005-12-11 12:14:26 +00:00
Roger Dingledine
a131783c8b when removing dead helpers, only write or_state to disk once at the
end, not for every helper you remove.


svn:r5568
2005-12-11 11:56:17 +00:00
Roger Dingledine
5981169440 mark the helper node as down if we time-out on the circuit handshake
with him.


svn:r5567
2005-12-11 11:55:41 +00:00
Roger Dingledine
dded1dd8bd don't mark the helper node as down when we fail to connect to
our https proxy.


svn:r5566
2005-12-11 11:54:55 +00:00
Roger Dingledine
9c01fa3d59 fix yet another time comparison bug. we were abandoning helpers
as soon as they became unavailable. (is this true?)


svn:r5565
2005-12-11 11:23:36 +00:00
Roger Dingledine
f3349d6ed3 fix an error in reporting why we abandoned a helper node
svn:r5564
2005-12-11 11:20:26 +00:00
Roger Dingledine
b974f67c01 choose helper nodes to have high capacity always
svn:r5563
2005-12-11 11:20:01 +00:00
Roger Dingledine
77c0f6d456 a first go at fixing a bug matt edman reported: when he tries
to "setconf log" via the controller, it is friendly and gives
him a log to stdout, even though he didn't ask for one.


svn:r5562
2005-12-11 10:01:21 +00:00
Roger Dingledine
79f09b2f17 setconf orport=9001
513 Unrecognized option value

it's not unrecognized. it's unacceptable. (in this case, i still
have to consult the logs to figure out why, but at least i have
an inkling that maybe i should.)


svn:r5561
2005-12-11 09:33:38 +00:00
Roger Dingledine
46d563fe00 whenever we hupped or did a controller setconf, we were prepending
another reachableaddresses *:80,*:443 if fascistfirewall was set,
and we were appending another reject *:* regardless.


svn:r5560
2005-12-11 09:18:25 +00:00
Roger Dingledine
a4e1014f4d i think fascistfirewall still has its uses. it's a synonym
for a certain reachableaddresses line, but it's easier to
remember and people already understand it. i think we should
think about undeprecating it.


svn:r5559
2005-12-11 08:59:02 +00:00
Roger Dingledine
defa3804cf explain why 0.1.1.9-alpha-cvs is a special version.
svn:r5552
2005-12-10 21:07:21 +00:00
Roger Dingledine
58366ffd24 when we changed from log_fn to debug/info/notice/warn/err,
we screwed up the formatting in wild and unpredictable ways.

fix it before it becomes convention to format logs in wild and
unpredictable ways.

still need to do src/common/ someday.


svn:r5551
2005-12-10 09:36:26 +00:00
Roger Dingledine
9b0a40ec78 crank the max line limit down to 150 chars.
svn:r5550
2005-12-10 08:27:01 +00:00
Nick Mathewson
39265dd72e In my private little universe, terminals are still 80 columns. Impose a 160-character-per-line limit; this will creep down.
svn:r5548
2005-12-09 05:37:26 +00:00
Nick Mathewson
95e471c9a6 Normalize whitespace
svn:r5547
2005-12-09 05:22:15 +00:00
Nick Mathewson
33c4445846 For some bizarre reason, MSVC does not implement GCC extensions. Who would have thought?
svn:r5546
2005-12-09 05:20:02 +00:00
Roger Dingledine
a438f2abcd let the user configure a sockslistenaddress on other private IPs
besides 127.x.y.z without complaining.
and give a better message in the log.


svn:r5544
2005-12-09 02:46:46 +00:00
Nick Mathewson
d57029ffe8 Make code to handle "private" alias work when assume_action is set.
svn:r5542
2005-12-08 23:58:23 +00:00
Roger Dingledine
8730190914 when we're checking reachability, make it clearer in the logs
what to expect.


svn:r5538
2005-12-08 21:12:47 +00:00
Roger Dingledine
d3dcea08af remove a redundant memcpy when extending to a new server
and attaching circuits to it.


svn:r5537
2005-12-08 20:33:57 +00:00
Nick Mathewson
338f23114f Oops. 0.0.0.0/8 and 169.254.0.0/16 are also special.
svn:r5536
2005-12-08 19:58:14 +00:00
Nick Mathewson
2d585941b8 Release memory from conn_circid_circuit_map on exit.
svn:r5535
2005-12-08 19:46:22 +00:00
Nick Mathewson
1b770817c0 Add private:* as an alias in configuration for policies.
svn:r5534
2005-12-08 19:40:24 +00:00
Nick Mathewson
898968b3ac Warn when binding to a public address for socks. This warning needs to be improved. Also, make options_validate() only warn when an option is changed to a bad value.. (Previously, it warned when an option was bad and any option was changed.)
svn:r5532
2005-12-08 18:56:32 +00:00
Nick Mathewson
e9b66ec906 Document CREATE_FAST better in the code. Move our key expansion algorithm into a separate function in crypto.c
svn:r5530
2005-12-08 17:38:32 +00:00
Nick Mathewson
617f71e4ba Whitespace normalization
svn:r5528
2005-12-08 04:03:12 +00:00
Nick Mathewson
f031ee8246 Make clients use CREATE_FAST cells. add an option to disable this.
svn:r5524
2005-12-07 22:09:02 +00:00
Roger Dingledine
4902ece698 what the heck is wrong with this little piece of code?
why can none of us get it right?
it looks so simple.


svn:r5521
2005-12-07 04:43:39 +00:00
Roger Dingledine
b0ffa34219 tell the controller about new .onion streams too.
svn:r5520
2005-12-06 23:43:52 +00:00
Roger Dingledine
5c0338dca3 the other half of weasel's patch, so old gcc's can build cvs again.
svn:r5517
2005-12-06 21:03:48 +00:00
Peter Palfrader
0dbb622f26 Old gccs want you to do your variable declarations first
svn:r5516
2005-12-06 17:01:36 +00:00
Roger Dingledine
3347762fa4 when we're giving up on a circuit and retrying on a new one,
log the name of the exit node. perhaps people will find this
useful, or see patterns, or something.


svn:r5515
2005-12-06 07:21:17 +00:00
Nick Mathewson
b1d034d2ab Fix bug 212: Directory authorities should not try to download server descriptors that they know they will reject.
svn:r5514
2005-12-06 06:55:43 +00:00
Nick Mathewson
d2123388ad Better fix for last bug: avoids trying to double-mark circuits.
svn:r5511
2005-12-05 19:45:54 +00:00
Nick Mathewson
fedc9c8a60 We were neglecting to unlink marked circuits from soon-to-close OR connections.
svn:r5510
2005-12-05 19:26:09 +00:00
Nick Mathewson
b03e8733f3 Change how OR conns get removed from the identity map; fix some warnings on shutdown.
svn:r5509
2005-12-05 19:15:27 +00:00
Nick Mathewson
f0abb1a74b Check magic when removing old connection from map.
svn:r5508
2005-12-05 19:01:34 +00:00
Nick Mathewson
835f06a77c Set chosen_exit_name to something we are not about to zero.
svn:r5507
2005-12-05 06:16:24 +00:00
Nick Mathewson
98290e4115 When parsing foo.exit, if foo is unknown, and we are leaving circuits unattached, set the chosen_exit field and leave the address empty
svn:r5504
2005-12-05 04:38:21 +00:00
Roger Dingledine
26b49dbc09 Bugfix for trackhostexits: write down the fingerprint of the chosen exit,
not its nickname, because the chosen exit might not be verified.


svn:r5499
2005-12-05 00:15:42 +00:00
Roger Dingledine
40cbe550f3 fix a log message to be mildly more helpful
svn:r5498
2005-12-04 23:06:48 +00:00
Roger Dingledine
bb8dc691eb Fix another time comparison bug in circuit_stream_is_being_handled().
Nick, can you confirm this one?
This is also a backport candidate.


svn:r5497
2005-12-04 22:23:24 +00:00
Roger Dingledine
ef000fd82e ok, i know this one was a bug. we were expiring open general
circuits after they had been around for 30 seconds.


svn:r5496
2005-12-04 22:19:04 +00:00
Roger Dingledine
7d032bd300 take back half of my bugfix. comparing times sucks.
but leave the other half.


svn:r5495
2005-12-04 21:59:15 +00:00
Roger Dingledine
d60f514f4c fix the first bug with our optimization to circuit_expire_building():
we were killing off rendezvous circuits unless they magically time-warped
to be too old before we got around to killing them, in which case we
would leave them alone. this made it hard to rendezvous with hidden
services.


svn:r5494
2005-12-04 21:51:50 +00:00
Nick Mathewson
1b0134dda8 Clean up some comments; remove some dead code
svn:r5493
2005-12-03 16:32:29 +00:00
Nick Mathewson
61c5a9ae2b Use a switch statement and some mild refactoring to try to speed up circuit_expire_building
svn:r5492
2005-12-03 05:29:05 +00:00
Nick Mathewson
979fc3e69d cvs diff -u src/or/circuitlist.c | less almost never does what you want in C.
svn:r5491
2005-12-03 03:36:32 +00:00
Nick Mathewson
77a494dd55 Expunge remaining places where we used "tree" to mean "associative array".
svn:r5490
2005-12-03 02:21:31 +00:00
Nick Mathewson
148a1e969d Shave off another 4.7%: remove a linear search when figuring out which circuits wanted us to open a given OR connection.
svn:r5489
2005-12-03 02:12:37 +00:00
Nick Mathewson
502cb59611 Remove "tree" references from dns.
svn:r5488
2005-12-03 02:01:18 +00:00
Nick Mathewson
6443e5ec7f Add a benchmark-aes function to test.c. Off by default.
svn:r5485
2005-12-01 04:35:58 +00:00
Nick Mathewson
fea19528a1 assert_buf_ok was showing up in the profile; remove it from critical-path functions, since it hasnt triggered for ages.
svn:r5479
2005-11-30 22:48:58 +00:00
Nick Mathewson
d56a65c497 Fix some verbose warnings and remove an unneeded include.
svn:r5472
2005-11-30 06:38:41 +00:00
Nick Mathewson
9cec3a13f5 remove some functions that are not used; #if0 out some files that are not likely to be used.
svn:r5471
2005-11-30 06:27:59 +00:00
Nick Mathewson
a6eb8cd2a0 Move connection_or_remove_from_identity_map() to connection_unlink, but dont remove the other; just make it warn.
svn:r5470
2005-11-30 04:28:41 +00:00
Nick Mathewson
3bd613b44d Rename connection_get_by_identity_digest to reflect that it is OR-only. Make it use a hashtable instead of a linear search.
svn:r5469
2005-11-30 03:01:16 +00:00
Nick Mathewson
447a3a7ff2 Funny. I could have sworn that it compiled.
svn:r5467
2005-11-29 17:17:02 +00:00
Nick Mathewson
94e8dcef44 Fix a bug weasel found: when we are an authority and somebody requests "all" statuses, cconsider regenerating our own.
svn:r5466
2005-11-29 17:14:10 +00:00
Nick Mathewson
c90d6c7e5f Make arguments to circuit_set_circid_orconn match the connection that is closing in circuit_about_to_close_connection. This accounts for our mysterious "arbitrary ram gets decremented!" bug.
svn:r5465
2005-11-29 17:13:34 +00:00
Nick Mathewson
7de0c33857 Avoid a segfault in routerlist_reset_warnings()
svn:r5464
2005-11-28 16:29:27 +00:00
Roger Dingledine
1da454a42d when returning a list of circuits, don't return a list of the same
conn over and over. that's really bad for memory.


svn:r5463
2005-11-28 02:52:17 +00:00
Roger Dingledine
f94f4c1686 when event_add or event_del fail, tell us why.
(nick, do i have my libevent strerror dance moves correct?)


svn:r5462
2005-11-26 09:37:00 +00:00
Roger Dingledine
97f748f680 clean up broken comment
svn:r5461
2005-11-26 09:27:36 +00:00
Nick Mathewson
652e1899ac "How about 'never'? Does 'never' work for you?"
Weasel says circuit_get_by_conn is his main timesink.  Most of its
users were just checking whether OR conns had circuits, so add a
circuit count to OR conns, and check that. One was
circuit_about_to_close_conn, which was doing an O(n^2) series of calls
to get all circs on an OR conn, so make an O(n) function for that.
Finally, circuit_get_by_edge_conn was using it as a sanity test that
has been around for a while but never found any actualy insanity, so
kill that.

circuit_get_by_conn is finally dead, which is good, since it was never
sane to begin with.


svn:r5460
2005-11-26 01:43:57 +00:00
Nick Mathewson
31d5d96739 Cut down a common call to circuit_get_by_conn by about half.
svn:r5459
2005-11-26 00:53:51 +00:00
Roger Dingledine
fe221f3dff Start the process of treating internal circuits and exit circuits
separately. It's important to keep them separate because internal
circuits have their last hops picked like middle hops, rather than like
exit hops. So exiting on them will break the user's expectations.

- Stop cannibalizing internal circuits for general exits, and stop
  cannibalizing exit circuits for rendezvous stuff.

- Don't let new exit streams attach to internal circuits.

- When deciding if we have enough circuits for internal and for exit,
  don't count the wrong ones.

- Treat predicted resolves as predicted port 80 exits.


svn:r5457
2005-11-25 08:08:56 +00:00
Roger Dingledine
6452aecedb when calling connection_get_by_identity_digest, don't do a memcmp
for non-OR conns. this should save a bit of time.


svn:r5456
2005-11-25 06:43:53 +00:00
Roger Dingledine
2350e487a2 minor cleanup
svn:r5454
2005-11-24 06:44:13 +00:00
Roger Dingledine
ea7fe0c267 Fix a bug found by Lasse Overlier: when we were making internal circuits
(intended to be cannibalized later for rendezvous and introduction
circuits), we were picking them so that they had useful exit nodes. There
was no need for this, and it actually aids some statistical attacks.


svn:r5453
2005-11-24 06:43:39 +00:00
Roger Dingledine
5b583073a1 remove some more dead code (found while hunting lasse's bug)
svn:r5452
2005-11-24 06:06:50 +00:00
Roger Dingledine
23efc30776 get rid of some unused variables
svn:r5451
2005-11-24 01:47:05 +00:00
Roger Dingledine
0118a236a4 comment that scary-looking function.
svn:r5447
2005-11-23 07:30:44 +00:00
Nick Mathewson
eb0021b06e Fix dumb logic error that kept some old descripttors from getting the axe.
svn:r5446
2005-11-23 07:28:54 +00:00
Nick Mathewson
061ef582a1 Make dropping very old descriptors faster (remove old correctness check). Track bytes dropped that are still in our store or journal, and rebuild when it gets very high.
svn:r5445
2005-11-23 07:24:59 +00:00
Nick Mathewson
36109fea33 e more aggressive about calling routerlist_remove_old_routers()
svn:r5444
2005-11-23 07:06:36 +00:00
Nick Mathewson
fbf8a8c25f Dump bytes held to store descriptors.
svn:r5443
2005-11-23 06:00:58 +00:00
Nick Mathewson
7d7bb95f36 Track how many bytes we have in signed descriptors. Try to make sure we are tracking this right. Somebody should valgrind a dirserver on an example net. There should be code to dump this value.
svn:r5442
2005-11-23 05:47:51 +00:00
Nick Mathewson
a39269572f Replace balanced trees with hash tables: this should make stuff significantly faster.
svn:r5441
2005-11-23 04:18:45 +00:00
Nick Mathewson
50ce5e1932 Avoid spurious re-launch of first pending requested descriptor
svn:r5439
2005-11-22 02:20:05 +00:00
Peter Palfrader
a48b722432 Ancient gcc does not like you when you declare variables in the middle of a block
svn:r5437
2005-11-20 16:53:49 +00:00
Peter Palfrader
b9d37a2d58 Add a new controller event type that allows controllers to get all
server descriptors that were uploaded to a router in its role as authoritative
dirserver.


svn:r5436
2005-11-19 18:35:43 +00:00
Roger Dingledine
f28770b639 be less eager to decide that the entire network is down
svn:r5434
2005-11-19 11:04:00 +00:00
Roger Dingledine
859d1c902a and another instance where i was trying to be too sneaky
svn:r5433
2005-11-19 10:38:23 +00:00
Roger Dingledine
98f353fa7c actually listen when we try to route our dir connection via tor.
svn:r5432
2005-11-19 10:33:34 +00:00
Roger Dingledine
5c949fce51 Start obeying our firewall options more rigorously:
- If we can't get to a dirserver directly, try going via Tor.
  - Don't ever try to connect (as a client) to a place our firewall
    options forbid.
  - If we specify a proxy and also firewall options, obey the firewall
    options even when we're using the proxy: some proxies can only proxy
    to certain destinations.


svn:r5431
2005-11-19 10:12:10 +00:00
Roger Dingledine
7aae63994f Recover better from TCP connections to Tor servers that are broken but
don't tell you (it happens!); and rotate TLS connections once a week.

1) If an OR conn becomes more than a week old, make it obsolete.
2) If it's obsolete and empty, kill it.
3) When an OR makes a second connection to you, allow it.
4) If we want to send a new create cell, but the best conn we've
   got is obsolete, and the router is 0.1.1.9-alpha-cvs or later, ask
   for a new conn instead.
5) When we time out on circuit building on the first hop, make that
   connection obsolete.


svn:r5429
2005-11-19 06:57:44 +00:00
Roger Dingledine
700c370a3b misc cleanups
svn:r5428
2005-11-19 01:56:58 +00:00
Roger Dingledine
f824fb5f83 Bugfix: it looks like some middleman circuits were spending the
first few moments of their existence in CIRCUIT_STATE_OPEN, then
when Alice sent an extend request for a Tor that they're not connected
to, they switched to CIRCUIT_STATE_OR_WAIT and spent the rest of
their sorry little lives in that state, even when the connection
was established and they were shuttling relay cells back and forth.

And I'm not going to backport this (yet), because somehow it worked!


svn:r5427
2005-11-19 01:55:58 +00:00
Roger Dingledine
0de8f4ee55 another case (i think) of redundant code.
svn:r5426
2005-11-19 01:03:34 +00:00
Roger Dingledine
409294153f remove some redundant (and misleading) code
svn:r5425
2005-11-19 00:44:24 +00:00
Peter Palfrader
6734371234 15*60 is 15 minutes, not 5
svn:r5424
2005-11-18 21:57:49 +00:00
Peter Palfrader
901712ee59 Remove ip address change flapping detection. It is not really needed and I do not think it works quite right.
svn:r5423
2005-11-18 19:28:34 +00:00
Roger Dingledine
4ddf2385a0 if it's not less than three does that mean it's more than two?
svn:r5422
2005-11-18 11:35:23 +00:00
Roger Dingledine
9d6d6da883 and code the part where redirectstream can take a port.
svn:r5421
2005-11-18 11:32:59 +00:00
Roger Dingledine
afb1c79879 Leave options->DirServers alone -- if the user didn't specify any,
just add the default ones directly to the trusted dirserver list.
This fixes a bug where people running controllers would setconf or
the equivalent, and Tor would start yelling at them about setting
their own DirServer lines.


svn:r5418
2005-11-18 02:47:09 +00:00
Roger Dingledine
26d8c3498c and another overly common log entry
svn:r5417
2005-11-18 00:35:29 +00:00
Roger Dingledine
aa53190ed5 and another one
svn:r5416
2005-11-17 22:23:18 +00:00
Roger Dingledine
9111a3fb48 comment out some really popular log lines
svn:r5415
2005-11-17 22:19:35 +00:00
Roger Dingledine
d2b93df26c and now we actually do it, too.
svn:r5414
2005-11-17 22:01:46 +00:00
Roger Dingledine
7dbf2511c3 when you type 'getinfo' with no arguments, it doesn't give you
any answer at all. this is clearly a bug.

the more interesting bug is whether things like setconf, getconf,
and so on should return 250 OK if you give them no arguments. should
we have a new "you didn't ask me anything" response code, or just
leave it as is?


svn:r5412
2005-11-17 21:45:38 +00:00
Roger Dingledine
af86345b74 we used to kill the circuit when we receive a relay command we
don't recognize. now we just drop it. perhaps this will make us
more forward-compatible? or perhaps it will bite us? one day we
will find out.


svn:r5405
2005-11-17 03:40:20 +00:00
Roger Dingledine
298da4497a help the term "OP" become obsolete
svn:r5403
2005-11-17 01:17:53 +00:00
Roger Dingledine
279e29a1f2 bugfix: the controller doesn't mention it's a .onion if it is.
svn:r5400
2005-11-16 23:54:24 +00:00
Roger Dingledine
c4aa9e7941 Add a new config option TestSocks so people can see if their
applications are using socks4, socks4a, socks5-with-ip, or
socks5-with-hostname. This way they don't have to keep mucking
with tcpdump and wondering if something got cached somewhere.


svn:r5399
2005-11-16 23:37:35 +00:00
Nick Mathewson
22aea0757e Verify that router fingerprint lines match identity keys. (We dont use them, but others might.)
svn:r5389
2005-11-15 21:24:32 +00:00
Roger Dingledine
74d1ca66c0 another case where the poor server operator doesn't need to
hear about lexi's bugs.


svn:r5388
2005-11-15 20:40:32 +00:00
Roger Dingledine
fe7b07754f make it even more clear that i didn't screw up the logic
svn:r5378
2005-11-15 09:57:58 +00:00
Roger Dingledine
53269f696d fix logic error: not unnamed is good.
svn:r5377
2005-11-15 09:15:43 +00:00
Nick Mathewson
9b432311c4 Make new logging stuff work on windows; fix a couple of windows typos.
svn:r5375
2005-11-15 03:05:23 +00:00
Nick Mathewson
669fdde91b Fix number in error message
svn:r5369
2005-11-14 19:17:28 +00:00
Roger Dingledine
4ea6d71a26 shorten more of the startup log messages
svn:r5368
2005-11-14 04:39:49 +00:00
Roger Dingledine
6fc30a65fd when a stream times out, provide less (but better) explanation
of what happened. don't bother printing the path, since i don't
know of any person who has gotten anything useful out of that.


svn:r5367
2005-11-14 04:13:43 +00:00
Roger Dingledine
014c6bfe00 We were refusing to start if you define SocksListenAddress
but define SocksPort to be 0. But this is a standard configuration!
So don't fail.


svn:r5361
2005-11-11 22:41:07 +00:00
Roger Dingledine
a3c53e0af9 speed up the lookup-by-circid-orconn now that it seems that
our code works.


svn:r5358
2005-11-11 19:28:32 +00:00
Roger Dingledine
862a997495 when we were cannibalizing a circuit with a particular exit
node in mind, we weren't checking to see if that exit node
was already present earlier in the circuit. oops.


svn:r5357
2005-11-11 19:25:30 +00:00
Roger Dingledine
4d1c6bbfc4 fix function comment
svn:r5356
2005-11-11 17:16:24 +00:00
Roger Dingledine
c136bbe505 stop discouraging the old *BindAddress config options. we will
just confuse our users when they upgrade.


svn:r5354
2005-11-11 17:04:14 +00:00
Roger Dingledine
e6fd88c698 simplify a log entry
svn:r5353
2005-11-11 17:03:35 +00:00
Roger Dingledine
c074f528c1 fix a harmless warn and mark two points where we should
maybe change our approach.


svn:r5352
2005-11-11 17:01:20 +00:00
Nick Mathewson
b76f61ee66 If we stop knowing about a dirserver between request and answer, do not die.
svn:r5351
2005-11-08 22:30:17 +00:00
Peter Palfrader
43c253958e Tor26's IP has changed to 86.59.21.38
svn:r5350
2005-11-05 20:20:51 +00:00
Nick Mathewson
75d85c8214 On directory servers, old_routers was wasting hundreds of bytes per superseded router descriptor. Roll the signed descriptor info and identifying info into a cache_info struct, and use only that for old_routers.
svn:r5349
2005-11-05 20:15:27 +00:00
Nick Mathewson
757def59b6 Fix bugs in routerlist_remove_old_cached_routers_with_id()
svn:r5348
2005-11-04 16:47:26 +00:00
Nick Mathewson
a913cb3536 prevent duplicat mark-for-close
svn:r5347
2005-11-04 05:00:12 +00:00
Nick Mathewson
9e82f0cdb7 enable code to remove members of old_routers when it gets big.
svn:r5345
2005-11-01 17:34:17 +00:00
Nick Mathewson
80758473f8 fix a signed/unsigned warning
svn:r5344
2005-11-01 17:28:49 +00:00
Roger Dingledine
40ecaf4857 answer nick's XXX, and muck with some log domain choices
svn:r5339
2005-11-01 06:13:12 +00:00
Roger Dingledine
6dafca62f0 remove redundant checking for . and .. now that
tor_listdir() checks for this too.


svn:r5337
2005-11-01 03:50:14 +00:00
Roger Dingledine
1991f6cf48 more doc cleanups and reorganizing
svn:r5336
2005-11-01 03:48:51 +00:00
Roger Dingledine
44b3f3060a make circ->onionskin a pointer, not a static array. moria2 was using
125000 circuit_t's after it had been up for a few weeks, which translates
to 20+ megs of wasted space.


svn:r5333
2005-10-29 19:13:48 +00:00
Roger Dingledine
bf2be9abd7 Do round-robin writes of at most 16 kB per write. This might
be more fair on loaded Tor servers, and it might resolve our
Windows crash bug. It might also slow things down.


svn:r5332
2005-10-29 18:19:37 +00:00
Roger Dingledine
862e8a1bd1 fix typo
svn:r5331
2005-10-29 18:00:25 +00:00
Nick Mathewson
f2617c6b79 Free the v2 directory networkstatus on exit. (Not a leak.)
svn:r5330
2005-10-29 05:01:12 +00:00
Nick Mathewson
4cb2435388 aaand another leak. Oops, I guess I lied to weasel when I told him there was no leak here.
svn:r5329
2005-10-28 19:10:53 +00:00
Nick Mathewson
ed32d85a04 router_add_to_routerlist() really needs to free not-added routers.
svn:r5328
2005-10-28 18:44:51 +00:00
Nick Mathewson
76988bafbe Fix bug when parsing list of router descriptors containing a truncated entry. (Found by Lasse)
svn:r5327
2005-10-28 15:56:19 +00:00
Nick Mathewson
267af9ecf9 Fix a fun bug that was probably causing unnecessary downloads, and that coupld possibly have caused some segfaults: When post-processing a split fingerprint URL, we were trying to base16_decode() entries already in the fingerprint list, failing, and removing them. Ow.
svn:r5326
2005-10-27 23:16:08 +00:00
Nick Mathewson
7643c5254c Fix an annoying rep violation bug
svn:r5325
2005-10-27 23:06:09 +00:00
Nick Mathewson
e594ce92fe Start making directory caches retain old routerinfo_t. The code to remove old ones is definitely some textbook C problem.
svn:r5323
2005-10-27 00:34:39 +00:00
Nick Mathewson
9492424d3f Per comments at the bottom of openssl/FAQ, call even more functions to
clean up OpenSSL's toys when it's done playing.  (Why isn't there an
OpenSSL_free_everything() function?)


svn:r5321
2005-10-25 19:01:48 +00:00
Nick Mathewson
b39d03116b remove some commented-out code that may tempt us to do ill
svn:r5320
2005-10-25 18:38:44 +00:00
Nick Mathewson
e5633c2e66 fix a nasty corruption bug
svn:r5319
2005-10-25 18:33:33 +00:00
Nick Mathewson
35f1b7fa26 fix minor memory leak in config
svn:r5318
2005-10-25 18:06:29 +00:00
Nick Mathewson
5d85560d9e Remove last vestiges of old logging interface.
svn:r5317
2005-10-25 18:01:01 +00:00
Nick Mathewson
049f6c0131 Switch remaining files to new log interface.
svn:r5315
2005-10-25 17:52:14 +00:00
Nick Mathewson
a38aa81bf8 fix another segv, this time in circid fix.
svn:r5312
2005-10-25 15:31:25 +00:00
Nick Mathewson
9b6c5614c6 fix a segv
svn:r5311
2005-10-25 15:30:02 +00:00
Nick Mathewson
e7e170a59e Change more files to new loggin interface. 3 left.
svn:r5310
2005-10-25 08:20:10 +00:00
Nick Mathewson
932106f54c Efficiency hack: call tor_fix_source_file late, not early. Add "BUG" domain. Domains are now bitmasks... just in case. Make some err msgs non-general.
svn:r5309
2005-10-25 07:05:03 +00:00
Nick Mathewson
452f4cfa09 Convert circuituse, command, config, connection, relay, router, test to new logging interface
svn:r5308
2005-10-25 07:04:36 +00:00
Nick Mathewson
81dd50a942 Fix memory leak when retrieving networkstatus or routerdesc by malformed fingerprint
svn:r5307
2005-10-25 07:03:22 +00:00
Nick Mathewson
91a666064a Fix possible free(NULL) in control.c
svn:r5306
2005-10-25 07:02:13 +00:00
Nick Mathewson
26caf69555 Fix possible minor memory leak when parsing helpernode state
svn:r5305
2005-10-25 07:00:03 +00:00
Nick Mathewson
f9b0be526e Use LD_BUG as appropriate; convert rend* and router* to new logging interface; use new circ_log_path interface
svn:r5302
2005-10-24 19:39:45 +00:00
Nick Mathewson
fa338d85db Fix one possible source of reuse-a-circuit-id bug; convert circuitbuild to new logging
svn:r5301
2005-10-24 19:37:45 +00:00
Nick Mathewson
7f20dec1cd When warning about a networkstatus fp, we need to put it in hex.
svn:r5293
2005-10-24 03:25:12 +00:00
Nick Mathewson
37708e9b1b Avoid potential infinite recursion when building a descriptor
svn:r5292
2005-10-24 03:04:05 +00:00
Roger Dingledine
d6dcd973c3 Oct 19 13:27:24.391 [info] router_reload_networkstatus(): Skipping cached-status file with unexpected name "."
Oct 19 13:27:24.391 [info] router_reload_networkstatus(): Skipping cached-status file with unexpected name ".."


svn:r5291
2005-10-20 17:22:00 +00:00
Nick Mathewson
52eaccce44 Crank down the frequency for replacing unchanged descriptors
svn:r5290
2005-10-19 16:21:19 +00:00
Nick Mathewson
7b8980a43c Make it compile. appease roger and his thirst for documentation.
svn:r5289
2005-10-19 03:08:50 +00:00
Nick Mathewson
74d9c92c49 We need a routerlist_replace as well. This should do something about those annoying mysterious segfaults.
svn:r5288
2005-10-19 03:02:28 +00:00
Roger Dingledine
4df1892db1 solve the first half of bug 199: if we don't like the looks
of an address, but it's the controller's job to handle it,
don't refuse it first.


svn:r5287
2005-10-19 02:07:11 +00:00
Nick Mathewson
1bd3f6cc9a Update more files to new log stuff.
svn:r5286
2005-10-18 22:56:40 +00:00
Nick Mathewson
55f2ab9cc3 Migrate a few more files to domained logging
svn:r5285
2005-10-18 22:21:29 +00:00
Nick Mathewson
edf5698474 Start dividing log messages into logging domains. No, LD_ is not the best of identifiers. src/or has not been converted yet. Domains dont do anything yet.
svn:r5284
2005-10-18 21:58:19 +00:00
Roger Dingledine
102df4a982 fix some typos
svn:r5283
2005-10-18 21:39:00 +00:00
Peter Palfrader
e54efb1655 I think nick meant to compare r2->platform the second time
svn:r5282
2005-10-18 21:19:48 +00:00
Peter Palfrader
0d5c007266 Fix tor26's first segfault
svn:r5281
2005-10-18 21:19:02 +00:00
Nick Mathewson
d25873ae9c Use a digestmap_t to speed up router_get_by_digest, which was previously a bottleneck (~~27% CPU)
svn:r5280
2005-10-18 20:13:09 +00:00
Nick Mathewson
7a19588a43 Use digestmap_t instead of strmap_t where appropriate. Do less hex en/decoding
svn:r5279
2005-10-18 20:12:22 +00:00
Nick Mathewson
3347c1741d Refactor routerlist access slightly: always use router_get_by_routerlist(); change its interface; add modifier functions to add/remove elements from the current routerlist (so we can add indices).
svn:r5276
2005-10-18 17:43:54 +00:00
Peter Palfrader
d8daa910a6 Make dirserv_get_routerdescs() return better http 404 error messages instead of a generic "Servers unavailable."
svn:r5274
2005-10-18 17:09:57 +00:00
Peter Palfrader
551e3402a3 split send_control1_event() into the printf and the print/dispatch part. The
printf part was and is limited to at most 1024 byte messages, so having the print
part separately available makes sense.


svn:r5273
2005-10-18 16:45:43 +00:00
Peter Palfrader
00e1709244 Fix download by SD digest
svn:r5272
2005-10-18 15:58:40 +00:00
Peter Palfrader
6e8052e0f8 I wonder what a stautus is.
svn:r5271
2005-10-18 15:25:10 +00:00
Peter Palfrader
64a631e187 Some http status lines ended in a dot, others did not. Make it all the same and remove the period from all
svn:r5270
2005-10-18 14:57:46 +00:00
Peter Palfrader
0186cb283f And close the double quote too
svn:r5269
2005-10-18 14:34:49 +00:00
Peter Palfrader
d2f1cd4196 Fix documentation of dirserv_get_routerdescs:
correct the path for queries by server key, add queries by SD digest


svn:r5268
2005-10-18 14:33:19 +00:00
Nick Mathewson
27fcbf87f3 Add a missing struct initializer field
svn:r5264
2005-10-17 23:00:08 +00:00
Peter Palfrader
0d9aedfcea Downgrade a few INFO level logs to DEBUG again. Also add two or three new
logs in cases where a calling function's log was downgraded and we wouldn't
get any log message otherwise.


svn:r5263
2005-10-17 16:21:42 +00:00
Roger Dingledine
bec2271029 fix a few comments
svn:r5262
2005-10-17 08:41:58 +00:00
Roger Dingledine
fd165329b8 start calling it *ListenAddress rather than *BindAddress,
since none of our users know what it means to bind an address or port.


svn:r5260
2005-10-17 03:17:29 +00:00
Nick Mathewson
22c72bd9c5 Add ability to warn when using abbrev mechanism to deprecate option names
svn:r5259
2005-10-17 03:06:00 +00:00
Roger Dingledine
435fb973c2 when providing content-type application/octet-stream for providing
server descriptors with .z, we were leaving out the content-encoding
header. oops. (everything tolerated this just fine, but that doesn't
mean we need to be part of the problem.)


svn:r5258
2005-10-17 02:32:33 +00:00
Peter Palfrader
7b15f77dd6 Make a few INFO log lines into DEBUG
svn:r5257
2005-10-17 02:13:36 +00:00
Roger Dingledine
1be5f4a81b start hunting down why servers keep getting so many duplicate create cells
svn:r5255
2005-10-17 01:46:47 +00:00
Roger Dingledine
ae92a91d96 more log uncluttering
svn:r5254
2005-10-17 01:29:28 +00:00
Roger Dingledine
03dcef4c78 start the process of reducing clutter in server logs
svn:r5253
2005-10-17 00:35:53 +00:00
Roger Dingledine
aca6fb5f5f cut out a warning that doesn't need to warn
svn:r5252
2005-10-16 19:47:01 +00:00
Roger Dingledine
2a82182243 remove obsolete IgnoreVersion config from or.h
svn:r5251
2005-10-16 18:43:41 +00:00
Nick Mathewson
6101468cbe Enable trivial "download by descriptor digest" functionality.
svn:r5250
2005-10-14 04:56:20 +00:00
Nick Mathewson
998cf8d622 Try to extract as many descriptors as possible from truncated http responses. (when DIR_PURPOSE_FETCH_ROUTERDESC)
svn:r5249
2005-10-14 02:26:13 +00:00
Nick Mathewson
11b76b9ca5 Allow tor_gzip_uncompress to extract as much as possible from truncated compressed data. Also, fix a bug where truncated compressed data could break tor_gzip_uncompress. [This last part is a backport candidate.]
svn:r5247
2005-10-13 22:48:09 +00:00
Peter Palfrader
8808b26206 Check if our IP address has changed every 5 minutes. If it has, update our server descriptor, but not too often
svn:r5246
2005-10-12 22:41:16 +00:00
Peter Palfrader
640211e59a Be a bit more verbose in our AUTHENTICATE error messages in the control protocol so the next guy doesn't blame Nick again
svn:r5245
2005-10-12 19:45:35 +00:00
Nick Mathewson
aac738d2be When no descriptors changed, do not send a NEWDESC event.
svn:r5244
2005-10-12 19:41:16 +00:00
Nick Mathewson
905ef987e2 Make --hash-password not craash on exit.
svn:r5243
2005-10-12 19:08:48 +00:00
Nick Mathewson
9a1d204318 Avoid warning on end-of-function
svn:r5242
2005-10-12 18:43:03 +00:00
Nick Mathewson
972b7512c7 authorities do not replace server descriptors where nothing semantically relevant has changed since the last upload.
svn:r5240
2005-10-12 18:25:25 +00:00
Nick Mathewson
fd9bfef13b Funny. I could have sworn it compiled this morning when I checked it in.
svn:r5239
2005-10-12 17:16:25 +00:00
Nick Mathewson
a7ca56b537 More work towards a sane digest-based liveness testing.
svn:r5238
2005-10-12 13:49:13 +00:00
Nick Mathewson
2b3a7b818f Add an as-yet-unused "EXTENDED" flag to SETEVENTS to indicate that the client can handle extra labeled info in its events. Add moreinfo to the "what is ready for downloading" msg so we can investigate digest-related download rules
svn:r5237
2005-10-12 04:31:44 +00:00
Nick Mathewson
bf9ff1c1e7 Do not check whether DirPort is reachable when we are suppressing it because of hibernation. (Backport candidate)
svn:r5235
2005-10-12 04:07:10 +00:00
Nick Mathewson
08e4f132a8 add some docs; if warn_if_unnamed is 0, really do not warn.
svn:r5234
2005-10-11 01:57:28 +00:00
Nick Mathewson
c48ccf9db4 Insert a newline between all router descriptors when generating (old style) signed directories, in case somebody was counting on that.
svn:r5231
2005-10-08 06:02:41 +00:00
Nick Mathewson
2f49e058d0 Now that directory admins assure me they have adjested teir configs, it is safe to make authorities be non-versioning, non-naming by default.
svn:r5230
2005-10-08 05:47:58 +00:00
Nick Mathewson
d7b04a8788 do not try to download a routerdesc if we would immediately reject it as obsolete.
svn:r5225
2005-10-07 22:00:09 +00:00
Nick Mathewson
2572db2472 Warn less about intro nodes by nickname; remember our own intro nodes by key.
svn:r5224
2005-10-07 21:38:44 +00:00
Roger Dingledine
78edd804ff fix a malformed warning entry
svn:r5219
2005-10-07 19:49:48 +00:00
Roger Dingledine
83e119154b doxygen fix
svn:r5217
2005-10-07 19:25:01 +00:00
Roger Dingledine
46af2d26d0 you can't declare variables in the middle of a block
svn:r5214
2005-10-07 18:56:21 +00:00
Peter Palfrader
14934dece2 Print address too when we say we cannot bind/listen
svn:r5213
2005-10-07 18:48:31 +00:00
Nick Mathewson
4c7113d26a Strip extra trailing newlines when parsing router descriptors.
svn:r5212
2005-10-07 18:33:30 +00:00
Nick Mathewson
a89daaeca9 Once an hour (not just on startup) give OpenSSL some more entropy.
Add entropy in 512-bit chunks, not 160-bit chunks.  (This latter
change is voodoo.)


svn:r5211
2005-10-06 22:22:22 +00:00
Nick Mathewson
cc35e1720f Using RAND_pseudo_bytes instead of RAND_bytes is an accident waiting to happen, and does not really speed us up much when we do it. So stop doing it.
svn:r5210
2005-10-06 22:18:01 +00:00
Roger Dingledine
0e5b6a84eb without braces, what will hold up the code?
svn:r5209
2005-10-06 05:08:00 +00:00
Nick Mathewson
ba24193ab5 Make doxygen marginally happier
svn:r5208
2005-10-06 04:33:40 +00:00
Nick Mathewson
5cf758764e Rate-limit warnings related to unrecognized MyFamily elements.
svn:r5204
2005-10-05 23:20:45 +00:00
Nick Mathewson
ba67d14d40 On sighup, if usehelpernodes changed to 1, use new circuits.
svn:r5203
2005-10-05 23:02:40 +00:00
Roger Dingledine
f12663a4ce call circuit_expire_all_dirty_circs() on do_hup().
there, now we use it.


svn:r5202
2005-10-05 22:36:33 +00:00
Nick Mathewson
56be5a9706 I *knew* something was wrong here. Flip some comparison operators and make download-rate-limiting sane again.
svn:r5201
2005-10-05 22:36:18 +00:00
Nick Mathewson
039edb3dbb Downgrade too-frequent "nothing happened" message from info to debug
svn:r5200
2005-10-05 22:32:59 +00:00
Roger Dingledine
c3aac3ff6b infrastructure for the 'change pseudonym' button.
not used yet.


svn:r5199
2005-10-05 22:31:21 +00:00
Nick Mathewson
1ebbaf5c3a improve INFO-level logging for directory downloads. This is still too chatty, but it will help us analyze things.
svn:r5197
2005-10-05 20:45:18 +00:00
Nick Mathewson
370e4abdc9 replace former relaunches of directory downloads with reset of failure count and relaunch of status downloads. Fix memory leak in trusted_dir_server_t. Reset "last download attempted" time when resetting failure counts.
svn:r5195
2005-10-05 05:03:52 +00:00
Roger Dingledine
adf04f121e size_t int printf mucking
svn:r5194
2005-10-05 04:52:55 +00:00
Nick Mathewson
96c47c8478 Note the two places where clients will still try to fetch old-style (v1) directory info. These should be fixed, I think.
svn:r5193
2005-10-05 02:25:59 +00:00
Nick Mathewson
509de69a7e reset warning flags on SIGHUP. arma: is this everything?
svn:r5192
2005-10-05 02:20:46 +00:00
Roger Dingledine
be478bb56c stutter therapy lessons
svn:r5191
2005-10-05 02:09:27 +00:00
Nick Mathewson
8434595584 Fix verbose compiler warnings, including one in routerlist.c that would have been an actual error. Normalize whitespace. Enforce convention that "address" is a hostname and "addr" is an IPv4 address.
svn:r5190
2005-10-05 02:06:36 +00:00
Nick Mathewson
0924094042 resolve some directory-related XXXXs; downgrade naming conflict messages from WARN to INFO for non-authorities; do not repeat naming conflict messages.
svn:r5189
2005-10-05 01:53:44 +00:00
Nick Mathewson
1223310b69 Downgrade noisy log messages in preparation for an alpha release.
svn:r5188
2005-10-05 01:27:08 +00:00
Nick Mathewson
a608905070 Give a less frequent and more helpful warning on failed serverdesc downloads
svn:r5187
2005-10-05 00:22:56 +00:00
Nick Mathewson
42e17182da When we get an EOF or a timeout on a directory connection, note how many bytes of serverdesc we are dropping. This will help us determine whether it is smart to parse incomplete serverdesc responses.
svn:r5186
2005-10-04 22:34:09 +00:00
Nick Mathewson
61ea516885 Check for named servers when looking them up by nickname;
warn when we'recalling a non-named server by its nickname;
don't warn twice about the same name.

Fix a bug in routers_update_status_from_networkstatus that made nearly
all clients never update routerinfo_t.is_named.

Try to list MyFamily elements by key, not by nickname.

Only warn about names that we generated ourself, or got from the local
user.

On TLS handshake, only check the other router's nickname against its
expected nickname if is_named is set.


svn:r5185
2005-10-04 22:23:31 +00:00
Nick Mathewson
2d203fdcf3 link nicknames to trusted directory servers; log these nicknames when mentioning servers; also, when we get a naming conflict; log which nicknames or keys are supposed to bind.
svn:r5184
2005-10-04 21:21:09 +00:00
Nick Mathewson
b10df0d595 cosmetic fix: only have one local to hold smartlist_len(downloadable), not too.
svn:r5183
2005-10-04 20:18:26 +00:00
Nick Mathewson
e4a6a03249 switch semantics of authdirinvalid/reject
svn:r5182
2005-10-04 19:52:58 +00:00
Roger Dingledine
88c37f2d24 comment cleanups
svn:r5181
2005-10-04 06:53:59 +00:00
Nick Mathewson
c5ee3e961e Reorganize some quick-and-dirty code to find out what openssl stuff is leaking, using dmalloc.
svn:r5178
2005-10-03 20:20:38 +00:00
Nick Mathewson
9e54e2e293 free helper node status info on shutdown
svn:r5177
2005-09-30 21:38:57 +00:00
Nick Mathewson
808e584a87 remove a never-used smartlist in routerlist.c
svn:r5176
2005-09-30 21:38:45 +00:00
Nick Mathewson
6e4608701d and another leak.
svn:r5175
2005-09-30 21:31:26 +00:00
Roger Dingledine
ae30c8101b by convention, addr is a uint32_t and address is a string.
that's why we hadn't caught that leak.


svn:r5174
2005-09-30 21:30:04 +00:00
Nick Mathewson
5c5d2e82e6 Fix a leak when launching listeners.
svn:r5173
2005-09-30 21:28:00 +00:00
Nick Mathewson
23864ad423 Try to hunt down a few more leaks
svn:r5172
2005-09-30 21:22:25 +00:00
Nick Mathewson
80f2e10228 Stop leaking or_state_t on shutdown.
svn:r5171
2005-09-30 21:16:47 +00:00
Nick Mathewson
5333a3b838 fix a small filename leak
svn:r5170
2005-09-30 21:11:22 +00:00
Nick Mathewson
8408006318 fix a memory leak on exit in routerlist.c
svn:r5169
2005-09-30 21:04:52 +00:00
Nick Mathewson
de198d800b Never call free() on tor_malloc()d memory. This is unlikely to be our current leak, but it may help dmalloc work.
svn:r5168
2005-09-30 20:47:58 +00:00
Nick Mathewson
fc3c0197f9 Resolve several DOCDOCs. Make non-mirrors only launch routerdesc downloads when they have more than 16 router descriptors to download, or when 10 minutes have passed since the last download.
svn:r5166
2005-09-30 20:04:55 +00:00
Roger Dingledine
e28c31ebce we were leaking some memory every time the client changes IPs
svn:r5165
2005-09-30 06:03:04 +00:00
Nick Mathewson
ab245746a9 Hey kids, guess why connection_mark_for_close() started giving an assert when called for an even-numbered line? Right, because I made it a bitfield, when it was really a line number. Why did I think it was a bitfield? A stale comment. Let that be a lesson to us all.
svn:r5164
2005-09-30 04:43:42 +00:00
Roger Dingledine
13e709a0ff resolve nick's comment
svn:r5163
2005-09-30 02:08:57 +00:00
Nick Mathewson
26e7a05725 even better function start checks; give dmalloc a chance of working.
svn:r5162
2005-09-30 01:39:24 +00:00
Nick Mathewson
edd15cb781 Note that there is incorrect behavior in directory.c code. Arma, please check this too.
svn:r5161
2005-09-30 01:38:09 +00:00
Nick Mathewson
92451f74a8 Reformat inconsistent function declarations.
svn:r5160
2005-09-30 01:09:52 +00:00
Roger Dingledine
609af664ac resolve a docdoc
svn:r5157
2005-09-30 00:43:40 +00:00
Roger Dingledine
ea18827cee do the other half of dirport reachability testing.
it should be back and working now.


svn:r5155
2005-09-29 23:59:36 +00:00
Roger Dingledine
f8d430653e better cleanups as i figure out what's going on
svn:r5154
2005-09-29 23:26:42 +00:00
Roger Dingledine
d4d8adaa6d move some code around when we're succeeding or failing at fetching
server descs.
also clean up some formatting.


svn:r5153
2005-09-29 23:06:48 +00:00
Roger Dingledine
54a662a542 re-enable dirport testing again
(still need the other half, to notice when it has worked.)


svn:r5152
2005-09-29 23:04:01 +00:00
Roger Dingledine
8fc9330686 fix typo
svn:r5151
2005-09-29 23:03:34 +00:00
Nick Mathewson
5c53545d81 Add a bunch more warnings to out warning suite; resolve them; pack structs a little better.
svn:r5150
2005-09-29 22:59:17 +00:00
Nick Mathewson
c6347cdb0e suppress all our usual compiler warnings, including a longstanding one from tree.h
svn:r5149
2005-09-29 20:49:41 +00:00
Roger Dingledine
8ae6e1c226 Be more conservative about whether to advertise our dirport.
The main change is to not advertise if we're running at capacity and
either a) we could hibernate or b) our capacity is low and we're using
a default dirport.


svn:r5148
2005-09-29 06:45:03 +00:00
Roger Dingledine
3559f821a1 clean up some doxygen stuff
svn:r5147
2005-09-29 02:54:09 +00:00
Nick Mathewson
126a1e3e32 Fix crash-on-wakeup bug in networkstatus download.
svn:r5144
2005-09-26 16:37:39 +00:00
Roger Dingledine
fba01c3cc0 bugfix: we were whining about using socks4 or socks5-with-local-lookup
even when they used an IP in the "virtual" range we designed exactly
for this case.


svn:r5142
2005-09-24 21:56:04 +00:00
Nick Mathewson
abb8576538 But, of course, mirrors should get the most up-to-date server in any case.
svn:r5135
2005-09-23 21:33:59 +00:00
Nick Mathewson
b726507d36 Log even less verbosely. Also, do not download old (frequently-updating) servers more than once every 2 hours.
svn:r5134
2005-09-23 21:25:29 +00:00
Nick Mathewson
ebf6476e8e Provide dire warnings to any users who set DirServer; move it out of torrc.sample and into torrc.complete.
svn:r5132
2005-09-23 20:44:22 +00:00
Nick Mathewson
18a0a0e458 Oops. It looks like some old GCCs dislike #if inside a macro argument.
svn:r5131
2005-09-23 20:31:07 +00:00
Roger Dingledine
0ef18a0fba put a log message so we can start confirming socks5-with-remote-dns
vs socks5-with-local-dns


svn:r5130
2005-09-23 19:56:34 +00:00
Nick Mathewson
06625e779d Decouple router downloads from old directory downloads entirely
svn:r5128
2005-09-23 18:49:37 +00:00
Nick Mathewson
c345dab3bd Fix logic error (people who ask authorities should never split; others should always split). Also, fix timing error in main.c so retries really happen.
svn:r5127
2005-09-23 18:17:37 +00:00
Nick Mathewson
a1f1c4bf6b Re-enable autosplitting, but authorities and mirrors should not do it, and make the cutoff higher than 1.
svn:r5126
2005-09-23 18:08:31 +00:00
Nick Mathewson
f995edd516 Fix at least one overzealous download bug. (tor_malloc_zero new local_routerstatus_t objs); add a pile of logs back in; probe every 10sec; never autolaunch on failure. Let us see if this works better.
svn:r5125
2005-09-23 18:05:14 +00:00
Nick Mathewson
9050480339 Fix some compiler warnings
svn:r5124
2005-09-23 17:11:20 +00:00
Nick Mathewson
faa4f420de Remove extraneous space on read-history lines.
svn:r5123
2005-09-23 17:02:50 +00:00
Roger Dingledine
03d0f62da0 make the numbers in read-history and write-history into uint64s,
so they don't overflow and publish negatives in the descriptor.
fixes bug 193.


svn:r5119
2005-09-23 08:29:58 +00:00
Roger Dingledine
512d6ccdc1 and a minor log cleanup
svn:r5115
2005-09-23 00:04:53 +00:00
Roger Dingledine
e286c4267e there was no need to die when we failed to spawn a cpuworker.
it handles it fine if we decide not to die.


svn:r5114
2005-09-23 00:04:44 +00:00
Roger Dingledine
479886fce2 remove another loud debug msg
svn:r5113
2005-09-22 23:56:56 +00:00
Roger Dingledine
d050ff7906 resolve lucky's recent bug: tor was exiting if we failed to spawn
a new dns worker (e.g. because we were out of fd's).


svn:r5112
2005-09-22 23:43:41 +00:00
Roger Dingledine
2d6b36a001 get rid of a noisy debug log
svn:r5111
2005-09-22 20:51:45 +00:00
Nick Mathewson
cdc912714e I love the smell of C in the morning. Make router-download rules smarter (download more so long as we dont duplicate existing requests; relaunch at staggered intervals); relaunch one a minute or on failure; reset 60 minutes; always open 3 requests if we can; add authority opinion to networkstatus; make naming rule correct. There is a remaining bug where we retry servers too quickly; We need to look at that harder.
svn:r5110
2005-09-22 06:34:29 +00:00
Nick Mathewson
6693031947 Use a separate type for "local view of router status". Also, even though I told arma there was no need, replace an ugly O ( n lg n ) algorithm with a nice O ( n ) algorithm when stepping through servers. Some ugliness is just too bad to stand.
svn:r5109
2005-09-22 01:51:14 +00:00
Roger Dingledine
959598fae6 content-type bugfixes:
http://seppia.noreply.org/tor/dir.z was being declared text/plain
and
http://seppia.noreply.org/tor/server/fp/719BE45DE224B607C53707D0E2143E2D423E74CF
was being declared application/octet-stream


svn:r5108
2005-09-22 00:17:41 +00:00
Roger Dingledine
f011b12df2 bugfix: nobody ever implemented EVENT_ADDRMAP for control protocol
version 0, so don't let version 0 controllers ask for it.


svn:r5107
2005-09-21 23:30:15 +00:00
Nick Mathewson
f99b91505b Make write_escaped_data more bulletproof; backport candidate.
svn:r5106
2005-09-21 23:13:29 +00:00
Roger Dingledine
1cfcc4b351 clean up misleading comment on authdir_wants_to_reject_router()
svn:r5105
2005-09-21 21:10:36 +00:00
Nick Mathewson
72915546cd Only check versions from versioning authdirs.
svn:r5101
2005-09-21 02:38:51 +00:00
Nick Mathewson
20b9111266 Implement new version handling code.
svn:r5100
2005-09-21 00:41:06 +00:00
Roger Dingledine
94ff09af23 clean up a bit more code
svn:r5098
2005-09-20 19:50:43 +00:00
Roger Dingledine
19f04ae9c3 make router_is_general_exit match its documentation
but it's still wrong maybe


svn:r5095
2005-09-20 03:40:54 +00:00
Nick Mathewson
837b223c8c remove some debugging garbage
svn:r5092
2005-09-18 04:32:58 +00:00
Nick Mathewson
283032960d Make give-up-on-failure actually work: it seems the servers gave me a real test case.
svn:r5091
2005-09-18 04:15:39 +00:00
Nick Mathewson
d118d5069a Prevent a "try forever to download an unobtainable descriptor" bug. Still remaining: the "give up forever" bug.
svn:r5090
2005-09-18 02:51:12 +00:00
Nick Mathewson
87f6d526fe Refactor new directory code a bit. Keep a big list of rolled-up router status info, including # of download failures (not yet used). Update this list from networkstatuses when they arrive, then update routers from this list. Only download 128 routers at a time, to avoid gargantuan URLs.
svn:r5089
2005-09-18 02:24:42 +00:00
Nick Mathewson
e86893e87b Move to new base64 digest functions. Switch to new router digest calculation. Make sure there are no duplicates in router status lists.
svn:r5088
2005-09-18 02:22:21 +00:00
Nick Mathewson
1fbe499bfe Remove a bunch of #if0d code that I no longer need to look at.
svn:r5083
2005-09-16 16:47:20 +00:00
Nick Mathewson
6d15a73548 Resolve/expand some XXXXs and improve a log message or two
svn:r5082
2005-09-16 16:41:45 +00:00
Roger Dingledine
cce469c5ce simplify
svn:r5081
2005-09-16 06:15:34 +00:00
Nick Mathewson
538740e362 Fix the never-marked-anything-as-running bug. Now Tor builds circuts again. Woo.
svn:r5080
2005-09-16 04:53:28 +00:00
Nick Mathewson
d45badd9f4 Add a missing return
svn:r5079
2005-09-16 04:52:53 +00:00
Nick Mathewson
1a786a297f Fix the confusing bug where we were downloading only the first n/2-1 of the servers we actually wanted.
svn:r5078
2005-09-16 04:43:21 +00:00
Nick Mathewson
9c2ca40df3 Unify our "figure out which fingerprints we were downloading" code.
svn:r5077
2005-09-16 04:42:45 +00:00
Nick Mathewson
05bab28c7d Add some (notice, for now) log messages that imply confusing things are happening.
svn:r5076
2005-09-15 21:11:48 +00:00
Nick Mathewson
51da58eccf fix braino in dirserv.
svn:r5075
2005-09-15 21:10:58 +00:00
Nick Mathewson
e72e76cad6 Make authdirs smarter. Reject/invalidate by key and IP. Remember that not every authdir has to be a naming authdir.
svn:r5074
2005-09-15 14:39:05 +00:00
Nick Mathewson
ed21abfe87 And some documentation before bed.
svn:r5073
2005-09-15 06:15:31 +00:00
Nick Mathewson
b70c229f6e make some functions static; clean dead networkstatus entries more often.
svn:r5072
2005-09-15 05:41:30 +00:00
Nick Mathewson
3dcc4630b9 Make unittests not die
svn:r5071
2005-09-15 05:28:18 +00:00
Nick Mathewson
b16048917c Stop downloading directories and download routers instead. This still needs some work, but at last clients are finally on the new architecture. Next comes the tuning and bugfixing.
svn:r5070
2005-09-15 05:19:38 +00:00
Nick Mathewson
e83e1df811 separate validation from naming in authoritative directory servers; simplify some router-management code.
svn:r5069
2005-09-15 00:51:42 +00:00
Nick Mathewson
d4e0af7822 Fix a bunch of log messages. Deprecate some routerlist fields; remove others, and status_set_at from routerinfo_t. Compress routerlist.c cleanup functions. Update cached networkstatus mtime when we download the same one twice. Change some interfaces.
svn:r5068
2005-09-14 23:42:06 +00:00
Nick Mathewson
bc0af7046a Oops. directory_set_dirty() needs to mark networkstatus as dirty too.
svn:r5066
2005-09-14 23:14:37 +00:00
Nick Mathewson
27bbfe9dcf Would you believe that the software_versions field of routerlist_t was never actually used for anything?
svn:r5064
2005-09-14 21:38:05 +00:00
Nick Mathewson
e3adcbdb95 Big commit: clients start downloading and using network-statuses.
Only caches need to get running-routers; nobody needs to parse, store,
or use it.  Same for the router-status line in the directories.  Add
many #if 0's that can get removed once I'm convinced they don't
contain anything I'm forgetting.

Start all newly-parsed routers as non-running and non-valid; update
them from the list of network statuses.

Update all routers when a new networkstatus comes in.

After 3 tries for a networkstatus, clients give up until they're told
to try again.

     "Let's get those missles ready to **DESTROY THE UNIVERSE**!"
				-TMBG


svn:r5063
2005-09-14 21:09:25 +00:00
Nick Mathewson
922cee3d0c Clean up a few warnings that make gcc twig out a bit.
svn:r5062
2005-09-14 20:59:25 +00:00
Nick Mathewson
d9ee94543e Declare 0.1.1.7 as The Version With The Good Dirservers.
svn:r5061
2005-09-14 19:12:35 +00:00
Roger Dingledine
ca727ba6e1 bugfix: when we try to determine the reachability of our dirport,
and it doesn't work, don't freak out and mark ourselves as down and
try somewhere else. just calmly fail.


svn:r5050
2005-09-14 03:49:17 +00:00
Nick Mathewson
7c6679d8dc Add new config.c function to set options that can fail, and roll back if they do. This should solve the setconf-an-impossible-port bug.
svn:r5046
2005-09-14 02:36:29 +00:00
Roger Dingledine
93be26a74a stop the call duplication inside config_assign()
svn:r5045
2005-09-14 02:35:06 +00:00
Nick Mathewson
6aa8850d90 note that routerstatus_t.entries is sorted.
svn:r5044
2005-09-14 02:28:35 +00:00