Commit Graph

5889 Commits

Author SHA1 Message Date
Nick Mathewson
57db1c1a7d Tweak the dbg-stability.txt code to log everything else that influences router stability calculations.
svn:r17003
2008-09-29 14:40:34 +00:00
Roger Dingledine
9678f166a8 If we have correct permissions on $datadir, we complain to stdout
and fail to start. But dangerous permissions on
$datadir/cached-status/ would cause us to open a log and complain
there. Now complain to stdout and fail to start in both cases. Fixes
bug 820, reported by seeess.


svn:r16998
2008-09-29 10:09:05 +00:00
Roger Dingledine
c846979ab7 Fix a bug where an unreachable relay would establish enough
reachability testing circuits to do a bandwidth test -- if
we already have a connection to the middle hop of the testing
circuit, then it could establish the last hop by using the existing
connection. Bugfix on 0.1.2.2-alpha, exposed when we made testing
circuits no longer use entry guards in 0.2.1.3-alpha.


svn:r16997
2008-09-29 09:36:42 +00:00
Nick Mathewson
99755f374d Fix 0/0 calculation in get_weighted_fractional_uptime().
svn:r16994
2008-09-28 15:48:36 +00:00
Nick Mathewson
bb1685318c Commit fix for bug 807 from mwenge: send CLOSED controller event for reverse dns resolve, not FAILED.
svn:r16985
2008-09-26 20:25:35 +00:00
Nick Mathewson
745e5b0e22 Make sure ExcludeSingleHopRelays works for an exit.
svn:r16984
2008-09-26 19:09:12 +00:00
Nick Mathewson
e147e867be Proposal 152 implementation from Josh Albrecht, with tweaks.
svn:r16983
2008-09-26 18:58:45 +00:00
Nick Mathewson
87eb230c01 Put the start-of-downtime value in the start-of-downtime buffer so that we do not put junk in the dbg-stability.txt file
svn:r16982
2008-09-26 18:31:22 +00:00
Nick Mathewson
e7e12236ac Code to serve a current stability calculations from /tor/dbg-stability.txt. Untested: somebody please run this on an authority and let me know if it is broken.
svn:r16981
2008-09-26 18:02:48 +00:00
Nick Mathewson
283b95e463 Make tests pass again by adding an opt hidden-service-dir to the example routerinfo output.
svn:r16980
2008-09-26 17:58:35 +00:00
Nick Mathewson
ae33d3ead7 Apply rovv's fix for bug 824.
svn:r16975
2008-09-26 15:30:26 +00:00
Nick Mathewson
02c71a7eb4 Widen the conditions under which we whine about not having a geoip file to include "a country code was configured in a node list."
svn:r16968
2008-09-25 21:06:32 +00:00
Nick Mathewson
e06f140f97 Whitespace fixes.
svn:r16967
2008-09-25 20:22:17 +00:00
Nick Mathewson
8bbbbaf87b Add country-code support to configured node lists to implement the ever-popular "no exits in Monaco" feature (ExcludeExitNodes {MC}). Also allow country codes and IP ranges in ExitNodes. (EntryNodes needs more work.) Based on code by Robert Hogan. Needs more testing.
svn:r16966
2008-09-25 20:21:35 +00:00
Nick Mathewson
b2c7090da6 Make it easier for dmalloc to see if keys are leaking; remove a test-only key leak.
svn:r16965
2008-09-25 17:37:00 +00:00
Nick Mathewson
06f96363fd Remove now-needless _tor_dmalloc_free helper.
svn:r16964
2008-09-25 17:36:09 +00:00
Nick Mathewson
a7e383af19 More test memory-management fixes
svn:r16963
2008-09-25 15:20:38 +00:00
Karsten Loesing
f2ff3e74ae All relays now store and serve v2 hidden service descriptors by default (not only directory mirrors).
svn:r16961
2008-09-24 22:33:47 +00:00
Karsten Loesing
9a7098487b If we are not using BEGIN_DIR cells, don't attempt to contact hidden service directories with non-open dir port.
svn:r16960
2008-09-24 22:29:22 +00:00
Nick Mathewson
7f805aca2b Split test_crypto() into manageable pieces.
svn:r16959
2008-09-24 20:55:38 +00:00
Karsten Loesing
5f457e4fa6 Minor correction of commentation.
svn:r16958
2008-09-24 17:33:07 +00:00
Nick Mathewson
8bc1536a9e Add patch 4 from Karsten for proposal 121, slightly modified. Karsten should definitely re-review the bits I changed.
svn:r16955
2008-09-24 14:44:29 +00:00
Nick Mathewson
75977fd79b Patch from roger for 752, but with more comments: When we get an A.B.exit:P address, and B would reject most connections to P, but we do not know whether it would allow A, then allow the connection to procede. Bugfix, amusingly, on 0.0.9rc5.
svn:r16944
2008-09-23 20:25:01 +00:00
Nick Mathewson
545b317e1f Fix for bug 797 (by arma, with tweaks): always use create_fast for circuits where we do not know an onion key.
svn:r16942
2008-09-23 20:13:23 +00:00
Nick Mathewson
f28fc83ea5 More logging for mtbf/wfu calculations.
svn:r16941
2008-09-23 18:24:20 +00:00
Karsten Loesing
e4942e809e Exclude v0 rendezvous descriptors when considering republication.
svn:r16939
2008-09-23 09:30:57 +00:00
Roger Dingledine
6a7abbd25d ok, but inaccurate error strings worse
svn:r16938
2008-09-23 08:57:30 +00:00
Roger Dingledine
0fc0d5266c identical error strings in different contexts bad
svn:r16937
2008-09-23 08:54:03 +00:00
Nick Mathewson
b0c48d8e45 Oops; we need to make sure that DNS request names are matched in the _questions_ section of the replies. Rejecting answers whether the _answers_ section did not match made us reject A records waiting at the end of a CNAME record. Bug 823.
svn:r16933
2008-09-22 20:06:25 +00:00
Roger Dingledine
4fd9880540 give rend_client_desc_here a slightly more accurate name
svn:r16916
2008-09-16 10:26:15 +00:00
Roger Dingledine
38f2272d5d patch from karsten for bug 814. whew.
svn:r16915
2008-09-16 10:17:04 +00:00
Nick Mathewson
3db8c15287 Add a circuit_conforms_to_options() function for use in debugging paths [and inother stuff too]. Untested, and so far unused.
svn:r16914
2008-09-15 22:29:47 +00:00
Roger Dingledine
2bde30efa6 read_to_buf should take an int *error_socket and return it.
svn:r16909
2008-09-14 08:35:41 +00:00
Roger Dingledine
7f2fd34645 stop telling us every time we fetch a consensus. that's not really news.
svn:r16908
2008-09-14 07:17:44 +00:00
Roger Dingledine
dbb481c169 Serve the latest v3 networkstatus consensus via the control
port. Use "getinfo dir/status-vote/current/consensus" to fetch it.


svn:r16907
2008-09-14 04:07:29 +00:00
Roger Dingledine
4045ef72f5 make it explicit that the uncompressed cached dir items are nul-terminated
(they are, but now we should keep them that way)


svn:r16906
2008-09-14 03:36:54 +00:00
Roger Dingledine
2d95accc75 Allow ports 465 and 587 in the default exit policy again. We had
rejected them in 0.1.0.15, because back in 2005 they were commonly
misconfigured and ended up as spam targets. We hear they are better
locked down these days.


svn:r16898
2008-09-13 10:04:42 +00:00
Karsten Loesing
f0a5ef804f Directory mirrors store and serve v2 hidden service descriptors by default.
svn:r16858
2008-09-11 20:06:04 +00:00
Nick Mathewson
b322348e8a Fix more actual test leaks
svn:r16831
2008-09-10 05:34:03 +00:00
Nick Mathewson
45205126fe Fix some apparent leaks in voting. If authorities suddenly start segfaulting, this could be a patch to look harder at.
svn:r16830
2008-09-10 05:33:49 +00:00
Nick Mathewson
aa69d586ea Make buffer unit tests handle resource leaks properly.
svn:r16823
2008-09-10 00:16:32 +00:00
Nick Mathewson
38f56608d9 Make more unit tests handle resource leaks properly.
svn:r16822
2008-09-10 00:11:53 +00:00
Karsten Loesing
52fbfc5d45 Correct indentation.
svn:r16819
2008-09-09 22:19:41 +00:00
Roger Dingledine
659f1651e0 tweak karsten's patch
svn:r16818
2008-09-09 21:09:15 +00:00
Roger Dingledine
2c14705a4d patch from karsten to fix more of bug 767
svn:r16817
2008-09-09 21:08:02 +00:00
Nick Mathewson
f95d7c189b Refactor unit test macros and tor_free_all() logic a bit so as to make it easier to free memory on failing tests, in order to suppress scanner warnings and to make dmalloc() usable with tests.
svn:r16816
2008-09-09 20:43:31 +00:00
Roger Dingledine
fa64d8041f minor cleanups on karsten's patch
svn:r16810
2008-09-09 09:21:21 +00:00
Roger Dingledine
ef7af1d61e karsten's patch for bug 767.
svn:r16808
2008-09-09 08:41:58 +00:00
Roger Dingledine
d37fae2f4e Catch and report a few more bootstrapping failure cases when Tor
fails to establish a TCP connection. Cleanup on 0.2.1.x.


svn:r16803
2008-09-09 06:25:39 +00:00
Nick Mathewson
aacda9cd8e We should not alter an addr_policy_t that has been canonicalized.
svn:r16802
2008-09-09 03:48:01 +00:00
Nick Mathewson
baeb260ad1 Refactor use of connection_new so that we get more verifiable typesafety.
svn:r16785
2008-09-05 22:09:44 +00:00
Nick Mathewson
339f094056 Refactor some code and add some asserts based on scanner results.
svn:r16783
2008-09-05 21:19:53 +00:00
Nick Mathewson
d5b2dab31d Fix a malloc that should have been a tor_malloc
svn:r16780
2008-09-05 20:53:39 +00:00
Nick Mathewson
0b8117a5c0 Fix numerous memory leaks: some were almost impossible to trigger, and some almost inevitable.
svn:r16779
2008-09-05 20:52:15 +00:00
Nick Mathewson
a56a072f29 It is probably some kind of misdeed to say for (i=0;i<2;++i) { A=i?x:y; foo(bar(A)); } rather than foo(bar(x)); foo(bar(y)); . Also, it can confuse tools.
svn:r16777
2008-09-05 20:04:27 +00:00
Nick Mathewson
c33dde4ac1 Fix mingw build with --enable-gcc-warnings set.
svn:r16759
2008-09-04 21:58:09 +00:00
Nick Mathewson
3f2b7078d2 Use warn_too_many_conns() when accept() fails with a resource limit.
svn:r16751
2008-09-04 15:22:55 +00:00
Nick Mathewson
f80ac31d74 Add a lockfile to the Tor data directory to avoid situations where two Tors start with the same datadir, or where a --list-fingerprints races with a server to create keys, or such.
svn:r16722
2008-09-01 20:06:26 +00:00
Roger Dingledine
cfff21e78a backport candidate:
If not enough of our entry guards are available so we add a new
one, we might use the new one even if it overlapped with the
current circuit's exit relay (or its family). Anonymity bugfix
pointed out by rovv.


svn:r16698
2008-08-31 06:33:39 +00:00
Nick Mathewson
32549ad95e Double oops: revert accidentally committed local geoipc.c debugging hack.
svn:r16687
2008-08-29 17:02:26 +00:00
Nick Mathewson
730f1b6d3f Oops. Make warn_too_many_conns() actually work.
svn:r16686
2008-08-29 17:01:15 +00:00
Nick Mathewson
6bf1dec945 Oops; set address families on nameservers.
svn:r16674
2008-08-27 14:12:10 +00:00
Nick Mathewson
2625eb204f Fix a memory leak when freeing routerstatuses with exit policy summaries. Patch from mwenge.
svn:r16659
2008-08-25 23:19:58 +00:00
Roger Dingledine
c5fef3c57f commit jake's patch to include strings with socks5 error numbers
svn:r16657
2008-08-25 21:02:22 +00:00
Roger Dingledine
8a9b6204ca get rid of some magic constants i found while walking
jake through socks4 and socks5 failure codes


svn:r16651
2008-08-25 07:06:55 +00:00
Nick Mathewson
239cbe99ba Oops. Linux has no sa_len field.
svn:r16627
2008-08-22 18:00:26 +00:00
Nick Mathewson
0800b332a0 r17847@tombo: nickm | 2008-08-22 12:08:56 -0400
ipv6: make server-side dns cache remember for each address an ipv6 addr and an ipv4 addr.  This fix is just the struct side.


svn:r16622
2008-08-22 16:24:47 +00:00
Nick Mathewson
fc52d85b7c r17846@tombo: nickm | 2008-08-22 11:54:00 -0400
Make dns resolver code more robust: handle nameservers with IPv6 addresses, make sure names in replies match requested names, make sure origin address of reply matches the address we asked.


svn:r16621
2008-08-22 16:24:43 +00:00
Roger Dingledine
8f5642edbc Relays now reject risky extend cells: if the extend cell includes
a digest of all zeroes, or asks to extend back to the relay that
sent the extend cell, tear down the circuit. Ideas suggested
by rovv.


svn:r16605
2008-08-20 05:21:43 +00:00
Roger Dingledine
cc8b2247bf make r16598 compile on 64-bit too
svn:r16604
2008-08-20 05:15:08 +00:00
Karsten Loesing
a8035b5fc3 Update doxygen documentation.
svn:r16599
2008-08-19 19:01:41 +00:00
Nick Mathewson
24f1d29be1 Apply proposal 121 patch 3, with minor tweaks and a few comments.
svn:r16598
2008-08-19 15:41:28 +00:00
Peter Palfrader
87a5962abb All the controller things want their stuff in v2 format. Well then, maybe that's already sufficient
svn:r16578
2008-08-17 08:26:02 +00:00
Peter Palfrader
d3be2cb7fb And tell us more in another error case
svn:r16577
2008-08-17 08:14:57 +00:00
Peter Palfrader
ab9078fca0 Change a warning/bug message
svn:r16576
2008-08-17 08:11:21 +00:00
Peter Palfrader
3c0b0ccca9 Two consensus fixes: always reset has_* to 0, and use a buffer of proper length for exitsummaries.
svn:r16575
2008-08-17 08:01:23 +00:00
Peter Palfrader
4eecd27b42 Make trunk build again under -DEXPORTMALLINFO
svn:r16559
2008-08-15 14:03:37 +00:00
Nick Mathewson
fcf817f897 Switch global_identifier on connections to a 64-bit field and move it to connection_t. When procession onionskins, look up the connection by this field rather than by addr:port. This will keep us from dropping onionskins. How many dropped circuits are dropped because of this bug?
svn:r16558
2008-08-15 13:55:01 +00:00
Peter Palfrader
521f8c791f spaceman
svn:r16555
2008-08-14 23:09:48 +00:00
Peter Palfrader
8cc3d6e22d Add exitpolicy summaries to the consensus
svn:r16554
2008-08-14 23:01:31 +00:00
Peter Palfrader
e27b448c57 Do not split stored exit policy summary into type(accept/reject) and portlist. At least not just yet
svn:r16553
2008-08-14 23:01:21 +00:00
Peter Palfrader
41730a893c Rename a field so weasel likes it better
svn:r16552
2008-08-14 23:01:09 +00:00
Peter Palfrader
ceae7ed960 Add bw to consensus
svn:r16551
2008-08-14 23:00:57 +00:00
Peter Palfrader
82f8050ac4 Parse policies and weight (bw) into routerstatuses
svn:r16550
2008-08-14 23:00:44 +00:00
Peter Palfrader
e8de3ff54d If we are lucky the whitespace nazis will not have noticed these things yet
svn:r16549
2008-08-14 18:01:20 +00:00
Peter Palfrader
fdba26f213 minor comment/doxygen fix
svn:r16548
2008-08-14 18:01:09 +00:00
Peter Palfrader
7c4106135a Give bw in kb/sec in votes/consensus
svn:r16544
2008-08-14 12:37:59 +00:00
Peter Palfrader
ff32708d0e Having a reject-all policy summarized with a lack of summary is stupid. Explicitly mention them as reject 1-65535.
svn:r16543
2008-08-14 12:37:50 +00:00
Peter Palfrader
2f91a3528a testsuite: Now that we add (pretty useless, but still) routerinfos to the routerlist for every one of our routerstatuses in the votes we pass again. yay
svn:r16542
2008-08-14 12:37:42 +00:00
Peter Palfrader
6317cc2956 Only fetch the routerinfo_t in routerstatus_format_entry() if we are going to need it
svn:r16541
2008-08-14 12:37:34 +00:00
Peter Palfrader
a6ade97f67 Properly move forward char pointer after appending stuff to the string
svn:r16540
2008-08-14 12:37:28 +00:00
Peter Palfrader
056157984b Disable test suite for today
svn:r16539
2008-08-14 12:37:21 +00:00
Peter Palfrader
b246c4de9b asserting(s) is better than segfaulting if it turns out to be NULL later
svn:r16538
2008-08-14 12:37:14 +00:00
Peter Palfrader
1a2c6b41e3 Do not show policy and bw in v2 statuses
svn:r16537
2008-08-14 12:37:07 +00:00
Peter Palfrader
24da63ea7b Add exit policy and bw to dirvotes - unfortunately also to v2 statuses
svn:r16536
2008-08-14 12:37:00 +00:00
Peter Palfrader
91f654f2ff This bunch of functions really should be static
svn:r16535
2008-08-14 11:24:03 +00:00
Peter Palfrader
171a7d4b0f Fix an overflow when counting rejects for *, truncate exit summaries after 1000 chars
svn:r16530
2008-08-13 19:25:18 +00:00
Peter Palfrader
adcea0f332 Think of the poor children in Antarctica who still have to work on 4" screens
svn:r16528
2008-08-13 12:46:13 +00:00
Peter Palfrader
0d807068a3 A few testcases for policy summaries
svn:r16527
2008-08-13 12:46:06 +00:00
Peter Palfrader
c4e8fe11db Also special case "accept 1-65535" case, do not leak in non-exit case
svn:r16526
2008-08-13 12:46:00 +00:00
Peter Palfrader
8ef2fe4b37 Return NULL for policies that do not allow any exits
svn:r16525
2008-08-13 12:45:53 +00:00
Peter Palfrader
4a74b9a7df Fix condition statement for accept items, fix two asserts
svn:r16524
2008-08-13 12:45:44 +00:00
Peter Palfrader
34e083dde1 Make sure we don't run off the end of the list
svn:r16523
2008-08-13 12:45:34 +00:00
Peter Palfrader
b2344a9e4d Move policy_summarize() prototype to or.h
svn:r16522
2008-08-13 12:45:28 +00:00
Peter Palfrader
49a616e0fa Create string representation of exit summaries
svn:r16521
2008-08-13 12:45:23 +00:00
Peter Palfrader
7eaf5bd848 Nickm says I'm going to hell, but if I write that in a comment he might just save my soul
svn:r16520
2008-08-13 12:45:15 +00:00
Peter Palfrader
1adc12546e implement policy_summary_accept and policy_summary_reject together with a set of helpers
svn:r16519
2008-08-13 12:45:09 +00:00
Peter Palfrader
f5adde1a17 Start with exit policy summaries
svn:r16518
2008-08-13 12:45:01 +00:00
Nick Mathewson
97245376d9 Next patch from Karsten: client-side configuration stuff for proposal 121.
svn:r16510
2008-08-12 16:12:26 +00:00
Nick Mathewson
30422b5df1 Rate-limit "too-many-sockets" messages; they can get needlessly verbose.
svn:r16480
2008-08-09 15:35:37 +00:00
Nick Mathewson
60a0ae198d Patch cleanups from karsten
svn:r16479
2008-08-09 15:13:28 +00:00
Nick Mathewson
7994f49d43 Fix bug in my changes to karsten's patch
svn:r16477
2008-08-08 16:45:22 +00:00
Nick Mathewson
a8ddac96d8 handle ipv6 in socks5 requests.
svn:r16476
2008-08-08 16:41:59 +00:00
Nick Mathewson
22259a0877 The first of Karsten's proposal 121 patches: configure and maintain client authorization data. Tweaked a bit: see comments on or-dev.
svn:r16475
2008-08-08 14:36:11 +00:00
Nick Mathewson
f6879caa04 Try once again to make BSD compilation happy.
svn:r16474
2008-08-08 12:58:17 +00:00
Nick Mathewson
39f88641c1 r17692@tombo: nickm | 2008-08-07 22:41:26 -0400
Fix more compile errors on BSD pf stuff. How about now?


svn:r16472
2008-08-08 02:41:34 +00:00
Nick Mathewson
5ab6fe0051 r17680@tombo: nickm | 2008-08-07 16:06:30 -0400
Add a missing safe_str for a debug_log_message.  Fix the bad part of bug 674.


svn:r16462
2008-08-07 20:06:40 +00:00
Nick Mathewson
b81d70addb Oops. On recent linux kernels we were not detecting the linux/netfilter_ipv4.h header properly, since we needed to have in_addr and in6_addr and __u32 defined before trying to include it. Fix that.
svn:r16460
2008-08-07 19:39:52 +00:00
Nick Mathewson
48848537bc r17667@tombo: nickm | 2008-08-07 15:13:30 -0400
Make the TransPort input code handle IPv6 addresses, I hope.  This code may not compile.  Possibly fix bug 796.


svn:r16459
2008-08-07 19:13:39 +00:00
Nick Mathewson
d9601c65e0 r17666@tombo: nickm | 2008-08-07 15:12:30 -0400
Make tor_addr_from_sockaddr also give away the port in a useful format


svn:r16458
2008-08-07 19:13:35 +00:00
Nick Mathewson
635f3c8aee r17664@tombo: nickm | 2008-08-06 12:32:09 -0400
Patch from Christopher Davis: open /dev/pf before dropping privileges.  Fixes bug 782.  Backport candidate.


svn:r16450
2008-08-06 16:32:17 +00:00
Nick Mathewson
9855c1d06f r17645@31-33-44: nickm | 2008-08-05 16:28:01 -0400
Make unspecified addresses also cause connection_is_rate_limited to say 0.


svn:r16437
2008-08-05 20:28:03 +00:00
Nick Mathewson
960a0f0a99 r17641@31-33-44: nickm | 2008-08-05 16:07:53 -0400
Initial conversion of uint32_t addr to tor_addr_t addr in connection_t and related types.  Most of the Tor wire formats using these new types are in, but the code to generate and use it is not.  This is a big patch.  Let me know what it breaks for you.


svn:r16435
2008-08-05 20:08:19 +00:00
Peter Palfrader
0cfb68454e Document that we break ties in favor of smaller SD digest if there are still ties after comparing the published timestamp
svn:r16432
2008-08-05 18:54:23 +00:00
Roger Dingledine
d01813a8dd Take out the TestVia config option, since it was a workaround for
a bug that was fixed in Tor 0.1.1.21.


svn:r16409
2008-08-05 00:12:05 +00:00
Roger Dingledine
d5bb361977 minor fixes
svn:r16407
2008-08-04 23:59:38 +00:00
Karsten Loesing
d166b9dc45 Make check-spaces happy.
svn:r16406
2008-08-04 23:39:07 +00:00
Roger Dingledine
2a417700b4 don't log-warn on a bootstrapping status event if the recommendation
is to ignore.


svn:r16405
2008-08-04 23:38:32 +00:00
Karsten Loesing
1fe07f66f4 In some edge cases it occurs that the router descriptor of a previously picked introduction point becomes obsolete. In that case, don't stick to using that introduction point, but simply give up on it. Reverts some part of r15825.
svn:r16404
2008-08-04 23:35:12 +00:00
Karsten Loesing
ff9c3c006f Remove dead code that was left from marking HiddenService(Exclude)Nodes obsolete in task 754.
svn:r16401
2008-08-04 22:42:27 +00:00
Karsten Loesing
3c9cd463d2 Fix a false assertion when extending a circuit to a relay to which a connection is already established. In that case the circuit should not need to memorize extend info for that relay. circuitbuild.c:389 contains a similar assertion.
svn:r16375
2008-08-03 17:45:24 +00:00
Karsten Loesing
ee44eadf4c Fix a bug when generating router descriptors: The address part of exit policies was uninitialized.
svn:r16372
2008-08-03 12:43:18 +00:00
Roger Dingledine
fd4a30d198 bump to 0.2.1.3-alpha
svn:r16369
2008-08-03 05:35:42 +00:00
Roger Dingledine
bf066be654 note a feature (bugfix) we should do one day
svn:r16368
2008-08-03 05:35:18 +00:00
Nick Mathewson
1a76cd179a When a struct ends with char a[1], the size of all earlier members of the struct is _not_ sizeof(st)-1; compilers add alignment. Problem spotted by rovv. Backport candidate.
svn:r16302
2008-07-31 12:18:14 +00:00
Nick Mathewson
186097906d r17436@tombo: nickm | 2008-07-30 09:03:19 -0400
Move n_addr, n_port, and n_conn_id_digest fields of circuit_t into a separately allocated extend_info_t.  Saves 22 bytes per connected circuit_t on 32-bit platforms, and makes me more comfortable with using tor_addr_t in place of uint32_t n_addr.


svn:r16257
2008-07-30 13:04:32 +00:00
Nick Mathewson
507b01357a r17426@tombo: nickm | 2008-07-28 20:34:03 -0400
More test coverage for tor_addr_t; fix a couple of bugs.


svn:r16234
2008-07-29 00:34:50 +00:00
Nick Mathewson
056d97da0c r17391@pc-10-8-1-079: nickm | 2008-07-25 17:11:17 +0200
Tor_addr_compare did a semantic comparison, such that ::1.2.3.4 and 1.2.3.4 were "equal".  we sometimes need an exact comparison.  Add a feature to do that.


svn:r16210
2008-07-25 15:11:21 +00:00
Nick Mathewson
016adc9a08 r17359@pc-10-8-1-079: nickm | 2008-07-25 16:42:48 +0200
whitespace fixes


svn:r16209
2008-07-25 14:47:19 +00:00
Nick Mathewson
9da0482007 r17358@pc-10-8-1-079: nickm | 2008-07-25 16:41:03 +0200
Split out the address manipulation functions from compat and util: they were about 21% of the total of those, and spread out too much.


svn:r16208
2008-07-25 14:43:24 +00:00
Nick Mathewson
3ce6e2fba2 r17346@aud-055: nickm | 2008-07-24 15:37:19 +0200
Make generic address manipulation functions work better.  Switch address policy code to use tor_addr_t, so it can handle IPv6.  That is a good place to start.


svn:r16178
2008-07-24 13:44:04 +00:00
Nick Mathewson
ed781e6971 r17338@aud-055: nickm | 2008-07-24 11:21:06 +0200
Refactor the router_choose_random_node interface: any function with 10 parameters, most of which are boolean and one of which is unused, should get refactored like this.


svn:r16167
2008-07-24 09:22:34 +00:00
Nick Mathewson
dff1ef7d06 r17337@aud-055: nickm | 2008-07-24 10:17:43 +0200
Refactor the is_vote field of networkstatus_t to add a third possibility ("opinion") in addition to vote and opinion.  First part of implementing proposal 147.


svn:r16166
2008-07-24 09:22:27 +00:00
Nick Mathewson
ea95ce25b6 r17323@aud-055: nickm | 2008-07-23 17:58:25 +0200
Implement most of proposal 110.


svn:r16156
2008-07-23 15:58:38 +00:00
Nick Mathewson
2748afe609 r17322@aud-055: nickm | 2008-07-23 16:50:50 +0200
Make circid_t and streamid_t get used instead of uint16_t; it is possible we will soon want to make circid_t change to uint32_t.


svn:r16155
2008-07-23 15:58:30 +00:00
Nick Mathewson
15b2b8bd69 r17309@aud-055: nickm | 2008-07-23 16:05:43 +0200
Patch from Christian Wilms: remove (HiddenService|Rend)(Exclude)?Nodes options.  They never worked properly, and nobody seems to be using them.  Resolves bug 754.


svn:r16144
2008-07-23 14:07:32 +00:00
Nick Mathewson
cc46b23248 r17308@aud-055: nickm | 2008-07-23 15:57:41 +0200
In connection_edge_destroy, send a stream status control event when we have an AP connection.  Previously, we would send an event when the connection was AP and non-AP at the same time.  This didn't work so well.  Patch from Anonymous Remailer (Austria).  Backport candidate.


svn:r16143
2008-07-23 14:07:26 +00:00
Nick Mathewson
087094961b r17302@aud-055: nickm | 2008-07-23 14:55:28 +0200
Never allow a circuit to be created with the same circid as a circuit that has been marked for close.  May be a fix for bug 779.  Needs testing.  Backport candidate.


svn:r16136
2008-07-23 12:55:55 +00:00
Nick Mathewson
26746d7578 r17220@tombo: nickm | 2008-07-18 15:11:27 -0400
Fix bug in last patch: ADDR_POLICY_REJECT is not the same as ADDR_POLICY_REJECTED.


svn:r16065
2008-07-18 19:11:30 +00:00
Nick Mathewson
c8160bce1f r17188@tombo: nickm | 2008-07-18 14:35:18 -0400
Add new ExcludeExitNodes option.  Also add a new routerset type to handle Exclude[Exit]Nodes.  It is optimized for O(1) membership tests, so as to make choosing a random router run in O(N_routers) time instead of in O(N_routers*N_Excluded_Routers).


svn:r16061
2008-07-18 18:36:32 +00:00
Nick Mathewson
bdcbd23e23 Stop trying to detect versions of Tor on the server-side older than 0.1.1.15-rc; they simply do not work any more. Also add comment about how or_is_obsolete is a terrible field name.
svn:r15982
2008-07-16 13:15:11 +00:00
Roger Dingledine
267e61d0f3 When relays do their initial bandwidth measurement, don't limit
to just our our entry guards for the test circuits. Otherwise we
tend to have multiple test circuits going through a single entry
guard, which makes our bandwidth test less accurate. Fixes part
of bug 654; patch contributed by Josh Albrecht.

(Actually, modify Josh's patch to avoid doing that when you're
a bridge relay, since it would leak more than we want to leak.)


svn:r15850
2008-07-11 21:42:09 +00:00
Nick Mathewson
787c66b70f r16917@tombo: nickm | 2008-07-11 12:55:26 -0400
Remove token enum constant in routerparse.c that we do not actually use.


svn:r15841
2008-07-11 17:08:05 +00:00
Karsten Loesing
9231858ff5 Fix bug 763. When a hidden service is giving up on an introduction point candidate that was not included in the last published rendezvous descriptor, don't reschedule publication of the next descriptor.
svn:r15825
2008-07-10 21:02:01 +00:00
Nick Mathewson
c717e19a29 r16881@tombo: nickm | 2008-07-10 14:19:21 -0400
fix a rare segfault in bw-share-measuring code


svn:r15820
2008-07-10 18:31:28 +00:00
Nick Mathewson
0f8761f9fa fix typos in last patch spotted by sebastian and karsten
svn:r15700
2008-07-06 18:47:27 +00:00
Nick Mathewson
615c64efb8 Apply fix from chrisw: call connection_ap_attach_pending when we get a rendezvous2 or rendezvous_established call. This is a bit brute-foce, but it is better than we had before, and might not even show up on profiles. Backport candidate, once tested.
svn:r15699
2008-07-06 18:34:45 +00:00
Karsten Loesing
28296ad6e8 Correct punctuation.
svn:r15690
2008-07-06 13:59:36 +00:00
Roger Dingledine
c411f83211 forward-port r15576
svn:r15577
2008-06-30 23:27:11 +00:00
Roger Dingledine
45742ce0b0 Make directory servers include the X-Your-Address-Is: http header in
their responses even for begin_dir conns. Now clients who only ever use
begin_dir connections still have a way to learn their IP address. Should
fix bug 737. Reported by goldy.


svn:r15571
2008-06-30 21:52:39 +00:00
Roger Dingledine
aec928e0b6 Send a bootstrap problem "warn" event on the first problem if the
reason is NO_ROUTE (that is, our network is down).


svn:r15443
2008-06-24 08:00:30 +00:00
Roger Dingledine
b7d00bd52e whoops, i shouldn't've left that in
svn:r15434
2008-06-23 18:51:12 +00:00
Karsten Loesing
33ced73597 Added prefixes to testing-network-only configuration options.
svn:r15375
2008-06-20 17:03:13 +00:00
Roger Dingledine
8fa912a8c5 If we close our OR connection because there's been a circuit
pending on it for too long, we were telling our bootstrap status
events "REASON=NONE". Now tell them "REASON=TIMEOUT".


svn:r15369
2008-06-20 04:42:17 +00:00
Roger Dingledine
94dabd2c23 If you're using bridges, generate "bootstrap problem" warnings
as soon as you run out of working bridges, rather than waiting
for ten failures -- which will never happen if you have less than
ten bridges.


svn:r15368
2008-06-20 04:34:39 +00:00
Roger Dingledine
dd50ffb1de Big bridge bugfixes. Backport candidates.
If you have more than one bridge but don't know their keys,
you would only learn a request for the descriptor of the first one
on your list. (Tor considered launching requests for the others, but
found that it already had a connection on the way for $0000...0000
so it didn't open another.)
If you have more than one bridge but don't know their keys, and the
connection to one of the bridges failed, you would cancel all
pending bridge connections. (After all, they all have the same
digest.)


svn:r15366
2008-06-20 03:13:16 +00:00
Roger Dingledine
d76d0493d6 start sending "COUNT=%d RECOMMENDATION=%s" key/values on bootstrap
problem status events, so the controller can hear about problems even
before tor decides they're worth reporting for sure.


svn:r15357
2008-06-19 04:50:06 +00:00
Roger Dingledine
ad6b2e7523 check-spaces, fix a typo
svn:r15355
2008-06-18 20:14:25 +00:00
Roger Dingledine
c6a94718cd Directory authorities shouldn't complain about bootstrapping
problems just because they do a lot of reachability testing and
some of the connection attempts fail. 


svn:r15348
2008-06-18 07:34:04 +00:00
Roger Dingledine
50d3adb819 I was on the second paragraph of my or-dev mail explaining why I chose to
set starting=1 to avoid potential bugs with having it conflict with 0,
which I used to mean uninitialized, when I realized I would be writing
many more lame-sounding paragraphs in the future. Just start it at 0
and handle the bugs.


svn:r15346
2008-06-18 05:35:19 +00:00
Nick Mathewson
ed174245c6 implement more fine-tuning options for stats code
svn:r15345
2008-06-18 04:34:52 +00:00
Karsten Loesing
024de76e5d I was told there is an extend_info_free(). I won't leak memory again. I won't leak memory again. I won't ...
svn:r15335
2008-06-17 19:13:05 +00:00
Karsten Loesing
693d7e3e35 When establishing a hidden service, introduction points that originate from cannibalized circuits are completely ignored and not included in rendezvous service descriptors. Bugfix on 0.2.0.14-alpha. Backport candidate.
svn:r15332
2008-06-17 17:10:03 +00:00
Roger Dingledine
1ad83d74b1 Send an initial "Starting" bootstrap status event, so we have a
state to start out in.


svn:r15326
2008-06-17 08:15:42 +00:00
Roger Dingledine
c19392469d add a getinfo so vidalia can query our current bootstrap state, in case
it attaches partway through and wants to catch up.

matt, is this a good format for you, or is there an even better format?


svn:r15325
2008-06-17 08:01:43 +00:00
Peter Palfrader
efeea9f6de Fix .z suffix for intrumented download stats once more
svn:r15316
2008-06-16 22:40:26 +00:00
Peter Palfrader
6880df52eb Fix .z suffix for intrumented download stats
svn:r15315
2008-06-16 22:39:23 +00:00
Nick Mathewson
dd6324b0c6 More bug 707 fixes: no #if/#endif pairs inside macro arguments.
svn:r15307
2008-06-16 18:35:21 +00:00
Nick Mathewson
6299f4429a Clean up a macro/cpp interaction related to bug 707. Also, add a new "filename" config value type which is currently just a synonym for string, but which might be subject to expansion later.
svn:r15305
2008-06-16 18:09:53 +00:00
Nick Mathewson
44452c2756 r16341@tombo: nickm | 2008-06-15 22:04:25 -0400
Allow spaces to be omitted in approved-router file fingerprints. Requested by arma.


svn:r15296
2008-06-16 02:08:30 +00:00
Nick Mathewson
96bf9cd4c5 Comments and doc tweaks on Karsten's testing-dir-networks patch
svn:r15254
2008-06-14 16:11:37 +00:00
Nick Mathewson
0831cc3dbc Patch from Karsten to implement proposal 135 ("Testing Tor Networks").
svn:r15253
2008-06-14 16:01:29 +00:00
Nick Mathewson
97c06691b9 Malloc does not return size_t. (bug noticed by lodger.)
svn:r15252
2008-06-14 15:42:29 +00:00
Peter Palfrader
54b3b48802 Make unit tests pass again
svn:r15237
2008-06-13 23:24:11 +00:00
Roger Dingledine
6dee2bad83 note a bug that karsten found
svn:r15236
2008-06-13 23:05:48 +00:00
Roger Dingledine
5ded5b58a4 > why would it need an anonymized connection?
> ah.
> yes, i think you're right. i was thinking 3-hop, but i think it is 1-hop.


svn:r15235
2008-06-13 22:52:17 +00:00
Peter Palfrader
4ef606b8fc implement proposal 138: removing down routers from consensus
svn:r15230
2008-06-13 21:22:49 +00:00
Nick Mathewson
4630f0453d Explain how my emacs setup works in the HACKING file. Someone else may care too.
svn:r15228
2008-06-13 19:57:52 +00:00
Peter Palfrader
1f3dc9b22b Asking for a conditional consensus at .../consensus/<fingerprints> would crash
a dirserver if it did not already have a consensus.


svn:r15227
2008-06-13 18:58:58 +00:00
Roger Dingledine
52d3be06f1 steal some of the bootstrap phase strings from vidalia
svn:r15193
2008-06-13 06:23:46 +00:00
Nick Mathewson
bcde95509d Actually reinstate errors that did not work on windows, and add a comment about reading the documentation of the S_CASE and E_CASE macros before adding new cases to the switch statements there.
svn:r15179
2008-06-13 03:52:58 +00:00
Roger Dingledine
b50206a9d2 ignore some errnos in hopes of building on windows again
svn:r15178
2008-06-13 02:07:17 +00:00
Roger Dingledine
6bd006bdb8 you can't strcasecmp on 20-byte digests
what if they contain nuls?
(worse, what if they *don't* contain nuls? ;)


svn:r15149
2008-06-11 22:46:31 +00:00
Nick Mathewson
a886e86cbd r16171@tombo: nickm | 2008-06-11 13:47:41 -0400
Lower number of syscalls used to write data to ordinary sockets through use of writev.  Disabled till I have time to test it.


svn:r15133
2008-06-11 17:56:52 +00:00
Roger Dingledine
62b507fee0 forward-port r15129, but also note the real way we should fix it.
svn:r15130
2008-06-11 11:12:29 +00:00
Roger Dingledine
8c85eef9b0 start sending "bootstrap problem" status events when we're having troubles
reaching relays.


svn:r15116
2008-06-11 01:14:23 +00:00
Roger Dingledine
42f21007a3 consolidate all our edge/circ/orconn reason-to-foo-or-back functions
svn:r15115
2008-06-11 00:17:02 +00:00
Karsten Loesing
33f846b313 In very rare situations new hidden service descriptors were published earlier than 30 seconds after the last change to the service, with the 30 seconds being the current voodoo saying that a descriptor is stable.
svn:r15113
2008-06-10 23:31:55 +00:00
Roger Dingledine
15680ce8d2 some cleanups in preparation for moving stuff around
svn:r15112
2008-06-10 23:13:14 +00:00
Roger Dingledine
45cc25c019 minor fixes and notes
svn:r15111
2008-06-10 23:00:11 +00:00
Nick Mathewson
67a1658da5 Fix last geoip bugs.
svn:r15106
2008-06-10 20:11:59 +00:00
Nick Mathewson
16b62a01e4 a couple more geoip bugfixes
svn:r15105
2008-06-10 19:51:48 +00:00
Nick Mathewson
e3d1ad67f6 r16139@tombo: nickm | 2008-06-10 15:25:23 -0400
Small formatting fixes for geoip-stats file.


svn:r15104
2008-06-10 19:25:25 +00:00
Nick Mathewson
8d484b64e4 r16137@tombo: nickm | 2008-06-10 15:10:55 -0400
sign error


svn:r15103
2008-06-10 19:11:02 +00:00
Nick Mathewson
1ec5705445 r16133@tombo: nickm | 2008-06-10 15:06:43 -0400
Pointers do not make good ints.


svn:r15102
2008-06-10 19:06:48 +00:00
Nick Mathewson
8fa2e80257 r16132@tombo: nickm | 2008-06-10 14:39:19 -0400
Whitespace fix


svn:r15101
2008-06-10 19:06:46 +00:00
Nick Mathewson
b87a7760e0 r16129@tombo: nickm | 2008-06-10 14:28:06 -0400
More geoip tweaks.  Include in the file a rough estimator of our total share.


svn:r15099
2008-06-10 18:28:10 +00:00
Nick Mathewson
d0a4ad3a1c r16127@tombo: nickm | 2008-06-10 14:03:01 -0400
Improved code for counting clients by country: support recording by number of directory status requests in addition to number of IPs seen.


svn:r15097
2008-06-10 18:08:56 +00:00
Roger Dingledine
f4e12fa66d make the 'bootstrap problem' stuff quieter while i'm messing with it
svn:r15094
2008-06-09 22:15:08 +00:00
Nick Mathewson
55975452b4 r16121@tombo: nickm | 2008-06-09 16:14:39 -0400
fix compile with warnings on osx 10.5: double+int apparently gives a 64-bit value on some gccs


svn:r15093
2008-06-09 20:52:59 +00:00
Roger Dingledine
baa3cea213 Start noticing and reporting bootstrapping failures too. It looks like
we never bothered learning why OR conns fail, so next step is to add some
infrastructure for that.


svn:r15091
2008-06-09 18:32:43 +00:00
Peter Palfrader
dba6d8c55a also count number of downloads, not just the bytes
svn:r15090
2008-06-09 17:07:53 +00:00
Roger Dingledine
ac795353c4 fix a bug where we were never reporting the
"Finishing handshake with entry guard" bootstrap phase


svn:r15087
2008-06-09 07:01:52 +00:00
Roger Dingledine
6aeb79af06 report partial bootstrapping progress as we fetch descriptors
svn:r15083
2008-06-09 06:33:29 +00:00
Roger Dingledine
eafb07ec96 extra points if you make it compile. boy, i'm on a roll.
svn:r15077
2008-06-09 05:17:52 +00:00
Roger Dingledine
3b730c7556 whoops -- the other half of r15074
svn:r15076
2008-06-09 05:16:47 +00:00
Roger Dingledine
1ca2ead8c4 when we haven't had any application requests lately, don't bother
logging when we have expired a bunch of descriptors.


svn:r15074
2008-06-09 05:13:33 +00:00
Roger Dingledine
3bb5d3ba6d include tags in the bootstrap status events. also document the
bootstrapping process and how the phases break down.


svn:r15020
2008-06-08 02:53:32 +00:00
Roger Dingledine
00fcd66218 actually start sending the bootstrap status event, so matt
can start playing with it on his side.


svn:r15009
2008-06-07 09:26:41 +00:00
Roger Dingledine
5aeb89447e infrastructure for the 'bootstrap status event' feature, so we can
tell the controller how we're doing at bootstrapping, and it can
tell the user.


svn:r15008
2008-06-07 05:27:34 +00:00
Roger Dingledine
56658956a1 minor comment cleanup and xxx
svn:r15006
2008-06-07 05:01:22 +00:00
Roger Dingledine
b4d697688e revert r14970, since it didn't fix anything.
leave r14971 in place though.


svn:r15005
2008-06-07 05:00:06 +00:00
Roger Dingledine
ebab48769d Stop reloading the router list from disk for no reason when we
run out of reachable directory mirrors. Once upon a time reloading
it would set the 'is_running' flag back to 1 for them. It hasn't
done that for a long time.


svn:r15004
2008-06-07 04:56:08 +00:00
Roger Dingledine
ce64ca48b8 make some log entries more accurate
svn:r14998
2008-06-06 22:31:36 +00:00
Roger Dingledine
b65b89d50f make sure, when we're checking if we have enough dir info, that
we actually have the descriptor listed in the consensus, not just
any descriptor, for each relay.

don't backport this patch (yet); who knows what it might do.


svn:r14971
2008-06-05 11:37:40 +00:00
Roger Dingledine
ca416a78e3 When we switched to using v3 directories, we threw away the part of
the "do we have enough directory info?" calculation that checked
how many relays we believed to still be running based on our own
experience. So if we went offline, we never gave up trying to make
new circuits; worse, when we came back online we didn't recognize
that we should give all the relays another chance. Bugfix on
0.2.0.9-alpha; fixes bugs 648 and 675.


svn:r14970
2008-06-05 10:57:09 +00:00
Roger Dingledine
6782682ac6 changing v2 network status doesn't require us to recompute
anything about whether enough v3 dir info is here.


svn:r14969
2008-06-05 09:01:18 +00:00
Roger Dingledine
2c84c10196 remove some networkstatus consensus warnings for unnamed / invalid
relays. they weren't very specific, and were confusing people before
we reduced their log severity. now nobody even knows they exist.


svn:r14968
2008-06-05 08:20:23 +00:00
Nick Mathewson
fa0989fd67 Make unit tests pass again: new geoip behavior had freaked out.
svn:r14949
2008-06-04 18:38:37 +00:00
Roger Dingledine
b8bde32c3a forward-port r14934
svn:r14936
2008-06-04 09:02:25 +00:00
Roger Dingledine
c6b3cf4b96 documentation bug
svn:r14935
2008-06-04 08:59:14 +00:00
Roger Dingledine
00405468aa forward-port r14930
svn:r14931
2008-06-04 07:41:22 +00:00
Roger Dingledine
f3d679d4cc blind-forward-port that, while i'm at it
svn:r14929
2008-06-04 07:08:05 +00:00
Peter Palfrader
01c1a355c2 Also add create/create fast/extends to the dir-usage stats.
svn:r14900
2008-06-02 15:09:35 +00:00
Peter Palfrader
cfb1f554e2 Make note_request() accessible from outside of directory.c
svn:r14899
2008-06-02 15:09:29 +00:00
Peter Palfrader
716558a6a1 Instrument all downloads that pass through connection_dir_client_reached_eof()
svn:r14897
2008-06-02 15:09:19 +00:00
Nick Mathewson
3a469018e5 Fix warning when compiling with dmalloc.
svn:r14829
2008-05-29 14:37:56 +00:00
Nick Mathewson
ac330d9ba7 New code to implement proposal for local geoip stats. Only enabled with --enable-geoip-stats passed to configure.
svn:r14802
2008-05-29 02:29:35 +00:00
Nick Mathewson
a335b94c8f On win32, default to looking for the geoip file in the same directory as torrc. This is a dumb hack; it should turn into a general mechanism.
svn:r14796
2008-05-29 01:22:30 +00:00
Nick Mathewson
6bfa96bfc7 Fix bug noted by roger: rebuild extrainfo store from time to time, even if we have never actually downloaded an extrainfo. Bridge authorities need this, or they never clean the extrainfo store.
svn:r14792
2008-05-29 00:44:57 +00:00
Roger Dingledine
277dce9ecf document the handle-comments-in-geoip file
svn:r14785
2008-05-28 21:10:46 +00:00
Nick Mathewson
6641152514 Fix some warnings.
svn:r14781
2008-05-28 18:34:10 +00:00
Nick Mathewson
bd3b86df3b Several geoip changes/fixes as requested.
svn:r14780
2008-05-28 18:31:57 +00:00
Roger Dingledine
7f61dafe8d include the geoip file in the tarball, and load it by default
when tor starts.
this breaks rpms and maybe other packages.


svn:r14764
2008-05-28 04:37:34 +00:00
Nick Mathewson
4ea2a4595e Fix the first part of bug 681, as suggested by Robert Hogan on or-talk.
svn:r14754
2008-05-27 21:02:36 +00:00
Nick Mathewson
9975c4f6f8 Fix part of bug 681: always reattach tunneled directory connections, regardless of the setting for LeaveStreamsUnattached
svn:r14750
2008-05-27 20:26:40 +00:00
Nick Mathewson
09cd8fa371 r19795@catbus: nickm | 2008-05-16 14:54:24 -0400
Rename tor_addr_t manipulation functions for a consistent style.


svn:r14639
2008-05-16 19:19:49 +00:00
Nick Mathewson
0b6b356f71 r19725@catbus: nickm | 2008-05-13 08:47:18 -0400
Forward-port: update authority keys affected by Debian OpenSSL bug (See CVE-2008-0166 or http://lists.debian.org/debian-security-announce/2008/msg00152.html )


svn:r14603
2008-05-13 12:47:27 +00:00
Nick Mathewson
e1ef199cf6 r19714@catbus: nickm | 2008-05-12 17:11:47 -0400
Fwdport Bugfix: an authority signature is "unrecognized" if we lack a dirserver entry for it, even if we have an older cached certificate that says it is recognized.  This affects clients who remove entries from their dirserver list without clearing their certificate cache.


svn:r14597
2008-05-12 21:12:21 +00:00
Nick Mathewson
42dc560b1a r19705@catbus: nickm | 2008-05-12 11:40:15 -0400
Actually load the legacy key, not just the authority key twice.


svn:r14594
2008-05-12 15:40:36 +00:00