Commit Graph

3052 Commits

Author SHA1 Message Date
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
Roger Dingledine
10893e7254 simplify
svn:r5043
2005-09-14 02:18:28 +00:00
Roger Dingledine
c78aafe4b5 and take the bang out
svn:r5042
2005-09-14 02:13:35 +00:00
Roger Dingledine
62fe24c40c ok, ok, csv's get replaced even when we assign them from the torrc.
svn:r5041
2005-09-14 02:12:29 +00:00
Roger Dingledine
1f930a9a70 checkpoint: clean up and document the three ways to call config_assign()
and reduce code duplication in config_free() and option_is_same().


svn:r5040
2005-09-14 02:07:35 +00:00
Roger Dingledine
8585599965 correct "your server is reachable" log entries to indicate that it was
self-testing that told us so.


svn:r5034
2005-09-13 21:39:42 +00:00
Roger Dingledine
26cc51ffea a bit more code cleanup
svn:r5033
2005-09-13 21:24:51 +00:00
Nick Mathewson
890847d232 I forgot -- smart kids make their code compile.
svn:r5032
2005-09-13 21:18:00 +00:00
Nick Mathewson
4efa652a98 add docs, fix whitespace, and make ANY rule in routerparse a little tighter.
svn:r5031
2005-09-13 21:14:55 +00:00
Nick Mathewson
76351b8416 Fix DOCDOC entries in routerlist.c. Make more functions use SMARTLIST_FOREACH instead of raw loops. Replace router_list_superseded implementation with one that has a prayer of working.
svn:r5027
2005-09-13 15:32:03 +00:00
Nick Mathewson
29c57b54d4 Add functions to extend and compress new router store logic. (Basic idea: use a journal of newly received router descriptors, and periodically replace the old file. This avoids the "too many files" problem and the "too many rewrites" problem.)
svn:r5025
2005-09-13 06:21:10 +00:00
Roger Dingledine
82b3b6249c fix a seg fault if we ask an authdirserver for a descriptor by
fingerprint but he doesn't know about him.


svn:r5023
2005-09-13 01:20:26 +00:00
Roger Dingledine
8b0d37096b when the user asked for a rendezvous port that the hidden service
didn't want to provide, we were sending an IP address back along
with the end cell. fortunately, it was zero. but stop that anyway.


svn:r5022
2005-09-12 22:05:17 +00:00
Roger Dingledine
569efe61c0 make the patch less likely to bite us later
svn:r5021
2005-09-12 21:42:59 +00:00
Nick Mathewson
93c1d37d5f Resolve stack corruption identified by edmanw in connection_edge_end(). Thanks!
svn:r5020
2005-09-12 20:57:16 +00:00
Nick Mathewson
39e29738b1 Maybe I should pay more attention to return values and less to clever comments. Fortunately, the aforementioned comments came out against smacking upside the head.
svn:r5018
2005-09-12 08:49:21 +00:00
Nick Mathewson
a6271650d5 Versions should be sorted by version. Lexical sorting should be used only as a last resort.
svn:r5017
2005-09-12 08:46:37 +00:00
Roger Dingledine
689cb28098 when writing the recommended*versions lines, sort them first.
this is because weasel put his out of order and told me the code
should take care of it.


svn:r5016
2005-09-12 08:31:47 +00:00
Roger Dingledine
63bb27f19d be more thorough about noticing when a directory request has failed:
it has failed not only when the connection attempt fails, but also
if the conn reaches eof before we get a response that we're happy with.


svn:r5013
2005-09-12 07:36:26 +00:00
Nick Mathewson
3dc5e77b58 Numerous changes to move towards client-side v2 directories.
connection.c:
- Add some more connection accessor functions to make directory
  download redundancy checking work.

directory.c, or.h, router.c, routerlist.c:
- Start on logic to note when networkstatus downloads fail.

dirserv.c, routerlist.c, routerparse.c:
- Start maintaining an is_named field in routerstatus_t.  Don't
  actually look at it yet.

dirserv.c, routerlist.c:
- Remove expired networkstatus objects.

or.h:
- Make some booleans into bitfields
- Add prototypes

routerlist.c:
- Sort networkstatus list by publication time
- Function to remove old (older than 10 days) networkstatus objects.
- Function to set a list of routerinfo_ts' status info from the
  current set of networkstatus objects.
- Function to tell which routerinfos we need to download based no the
  current set of networkstatus objects.
- Do not launch a networkstatus download if a redundant one is in progress.

routerparse.c:
- Keep router entries in networkstatus sorted by digest.


svn:r5012
2005-09-12 06:56:42 +00:00
Roger Dingledine
5cebd8df70 remove temporary network-status keyword
svn:r5007
2005-09-12 06:14:41 +00:00
Roger Dingledine
89d516f95c clean up the log entry for when a server posts a server descriptor that
the dirserver doesn't like


svn:r5005
2005-09-12 06:08:48 +00:00
Nick Mathewson
63dfe2447e Fix bug found by "ca": looking up a non-existent stream for a v1 control connection would cause a segfault. (No backport needed since 0.1.0 had only v0 connections.)
svn:r5001
2005-09-12 03:32:30 +00:00
Roger Dingledine
d7d4d4cbbf fix comment and return value for check_software_version_against_directory()
svn:r4996
2005-09-11 22:36:50 +00:00
Roger Dingledine
b0a5ba4248 downgrade the dirserver log messages when whining about unreachability
svn:r4991
2005-09-10 20:40:16 +00:00
Roger Dingledine
cfe34812eb bugfix: if you gave tor an odd number of command-line arguments,
we were silently ignoring the last one. now we complain and fail.


svn:r4988
2005-09-10 04:40:27 +00:00
Roger Dingledine
9b54cd349d break out a new function config_assign_value() that just assigns the
value it's given, and doesn't do any of their weird clearing or resetting
stuff. use that when we're trying to clear or reset values.


svn:r4984
2005-09-10 02:42:32 +00:00
Nick Mathewson
d26523e089 Use tor_listdir in test.c instead of duplicating ode.
svn:r4981
2005-09-10 01:42:42 +00:00
Roger Dingledine
1d9786a392 generalize route length to three plus one if the exit node is risky.
svn:r4978
2005-09-10 01:01:40 +00:00
Nick Mathewson
035b1953eb Add sorting/searching to smartlist
svn:r4977
2005-09-09 23:12:54 +00:00
Roger Dingledine
cfa321374d reject ports 465 and 587 by default now too
svn:r4974
2005-09-09 22:46:43 +00:00
Nick Mathewson
dcf1e14190 downgrade warning to info
svn:r4967
2005-09-09 21:03:57 +00:00
Roger Dingledine
a5ea401b2e a few more hints on a rare but mysterious warning
svn:r4966
2005-09-09 20:58:44 +00:00
Nick Mathewson
047e105daf Fix a bug in config_dump: we want to run options_validate on the defaults, not (again, uselessly) on the configuration. This was introduced when we made the config code more generic.
svn:r4965
2005-09-09 20:08:26 +00:00
Roger Dingledine
35b78b2d8e clean up the rendezvous warn log msgs, and downgrade some to info
svn:r4964
2005-09-09 19:54:28 +00:00
Nick Mathewson
0de64f224e Warn in more detail when network-status serving and fetching fails. Also, fix a small leak.
svn:r4963
2005-09-09 19:37:12 +00:00
Roger Dingledine
42f752a0a5 bugfix: we were automatically condemning an exit node (concluding
its advertised exit policy is different from its real one) as soon
as it refused any requests.
After fixing that bug, another bug appeared: we would try the same
server again and again, since once we learned an IP address for a
hostname, we still kept think of it as the hostname. now pass it to
the remapper before trying to reattach.


svn:r4962
2005-09-09 06:11:37 +00:00
Roger Dingledine
843550721a stop notifying people about dns worker spawning and culling
it just freaks them out


svn:r4960
2005-09-09 02:03:31 +00:00
Roger Dingledine
2065c5f7aa when printing x-forwarded-by headers, don't print the \r
svn:r4959
2005-09-09 02:02:20 +00:00
Nick Mathewson
bd911d8612 Fix segfault and memleak when getting many compressed server descs.
svn:r4956
2005-09-08 22:00:29 +00:00
Nick Mathewson
659491bbc6 Fix some messages that say "failing".
svn:r4955
2005-09-08 21:46:31 +00:00
Nick Mathewson
d410c49965 Clean up some more fingerprint-checking logic
svn:r4954
2005-09-08 21:39:39 +00:00
Roger Dingledine
587b513ec0 remove obsolete kludge
svn:r4953
2005-09-08 21:36:27 +00:00
Nick Mathewson
9df4716ac3 make it work correctly when we download multiple network-status objects.
svn:r4952
2005-09-08 21:28:45 +00:00
Nick Mathewson
4ce0e01848 add conn->requested_resource to connection_t checks.
svn:r4951
2005-09-08 21:21:54 +00:00
Nick Mathewson
a938190bdb Iteration is happier when you stop.
svn:r4950
2005-09-08 21:20:20 +00:00
Roger Dingledine
e28931dc94 unused variable
svn:r4949
2005-09-08 21:12:53 +00:00
Nick Mathewson
4528bbfd9f Resolve some XXXs. Add some others.
svn:r4947
2005-09-08 21:01:24 +00:00
Nick Mathewson
c523e106b5 Do not generate more than 2 of each directory type per minute.
svn:r4946
2005-09-08 20:47:11 +00:00
Nick Mathewson
18e4d78354 Fix an assert in directory.c. Check received network-status objects against the list we expected to get. Do not let anyone else update our network-status object.
svn:r4945
2005-09-08 20:36:40 +00:00
Nick Mathewson
059148f588 Only caches download network-status for now, and they use a different strategy. Add an element to connection_t to remember what we are downloading, and a function to recognize our own fingerprint.
svn:r4944
2005-09-08 20:18:15 +00:00
Nick Mathewson
6c4d43c724 Special-case for retrieving own networkstatus by fingerprint: regenerate if dirty!
svn:r4943
2005-09-08 19:29:21 +00:00
Roger Dingledine
465aec04c1 when reporting results from a dirserver fetch/post, tell us the
port for the dirserver too


svn:r4942
2005-09-08 19:21:48 +00:00
Nick Mathewson
df79dc673b Remove sneaky double declaration.
svn:r4941
2005-09-08 19:18:55 +00:00
Nick Mathewson
0f94aa2ea1 Write status to disk in the right place
svn:r4940
2005-09-08 19:16:16 +00:00
Nick Mathewson
cc16fb7636 oops -- that log should have been removed
svn:r4939
2005-09-08 19:12:55 +00:00
Nick Mathewson
e5f117606f Fix network-status parsing.
svn:r4938
2005-09-08 19:10:36 +00:00
Nick Mathewson
b43a720bd4 Fix another reversed inet_aton
svn:r4937
2005-09-08 18:53:57 +00:00
Nick Mathewson
1e2f1679c8 Fix some more bugs; add a temporary log.
svn:r4936
2005-09-08 18:46:25 +00:00
Nick Mathewson
eab005c948 Ensure case match, not mismatch.
svn:r4935
2005-09-08 18:34:41 +00:00
Nick Mathewson
810572a5de Stop dying when we get a directory from tor26; workaround for change in networkstatus format
svn:r4933
2005-09-08 18:24:26 +00:00
Roger Dingledine
4633b271f9 fix spacing
svn:r4932
2005-09-08 18:15:57 +00:00
Nick Mathewson
548a863779 Avoid assertion failure
svn:r4931
2005-09-08 18:14:23 +00:00
Nick Mathewson
ff9452e900 Clean up should-i-go-to-the-dirserv logic a little: All servers with DirPorts should get their directories from the source
svn:r4930
2005-09-08 18:14:01 +00:00
Nick Mathewson
3a99927859 Make directory download code slightly less likely to segfault or assert.
svn:r4929
2005-09-08 16:18:28 +00:00
Roger Dingledine
022f23249f make doxygen output look prettier
svn:r4928
2005-09-08 07:10:12 +00:00
Roger Dingledine
dbeb8e7863 it really does help with the functions end.
svn:r4927
2005-09-08 06:59:58 +00:00
Roger Dingledine
74fb086210 if you give a config option in the torrc or the commandline with no
value, and reset is false, then it clears it entirely.


svn:r4926
2005-09-08 06:55:53 +00:00
Roger Dingledine
36fa360c11 and fix grammar
svn:r4925
2005-09-08 06:49:23 +00:00
Roger Dingledine
69da0ef757 add punctuation
svn:r4924
2005-09-08 06:49:02 +00:00
Nick Mathewson
8f37357193 Make GCC v4 happy with heavy warnings enabled.
svn:r4922
2005-09-08 06:37:50 +00:00
Nick Mathewson
f50ddfd4dd Download network-status at regular intervals. The code is probably iffy, and the constants need to be renamed.
svn:r4921
2005-09-08 06:22:44 +00:00
Roger Dingledine
2f6664ce80 MonthlyAccountingStart is dead.
svn:r4920
2005-09-08 05:38:47 +00:00
Roger Dingledine
c9e1c41873 dirserv_add_descriptor() doesn't chew up its argument anymore,
so we can stop protecting it.


svn:r4919
2005-09-08 05:37:22 +00:00
Roger Dingledine
03ddeb2620 strip obsolete code
svn:r4918
2005-09-08 05:32:41 +00:00
Roger Dingledine
0ac3c58480 clean up comments for router_is_general_exit()
svn:r4917
2005-09-08 05:23:55 +00:00
Roger Dingledine
08348ae66e add a RESETCONF controller command, and make setconf with a null
option actually mean to set it to ""


svn:r4916
2005-09-08 03:18:51 +00:00
Roger Dingledine
0a8a8ba546 fix some typos
svn:r4915
2005-09-08 03:17:50 +00:00
Nick Mathewson
4aca47268d Logic to launch connections for new directory types.
svn:r4914
2005-09-07 20:03:02 +00:00
Nick Mathewson
9e76eae810 add missing return
svn:r4913
2005-09-07 17:18:52 +00:00
Nick Mathewson
eac917fd6a clean whitespace.
svn:r4912
2005-09-07 17:15:46 +00:00
Nick Mathewson
5c6c88e76d More stuff for new directories.
- Distinguish v1 authorities (all currently trusted directories) from
  v2 authorities (all trusted directories).
    - Add configuration option for which dirs are v1 authories.
    - Add configuration option for whether to be a v1 authority.
    - Make trusted dirserver selection functions take options to
      choose which functionality we need.
    - Remove option when getting directory cache to see whether they
      support running-routers; they all do now.  Replace it with one
      to see whether caches support v2 stuff.

- Parse, cache, and serve network-status objects properly.

- Serve compressed groups of router descriptors.  The compression logic
  here could be more memory-efficient.

-


svn:r4911
2005-09-07 16:42:53 +00:00
Roger Dingledine
c384fa706d stop using the v1 rend desc format. we're going to change v1
some more before we switch to it.


svn:r4909
2005-09-06 06:14:38 +00:00
Nick Mathewson
1e37ec4782 Comment structs, reload a field, start making network status caches work
svn:r4908
2005-09-04 23:12:27 +00:00
Roger Dingledine
d2a5b614eb if you're an auth dir server, start yourself out as verified.
svn:r4907
2005-09-03 23:10:28 +00:00
Roger Dingledine
33b2abbc90 remove redundant logs about unreachable servers
svn:r4905
2005-09-03 04:37:30 +00:00
Nick Mathewson
467fd6e4e6 fix order of items in network-status
svn:r4904
2005-09-03 02:38:39 +00:00
Nick Mathewson
3485a497fe Fix another ntohl
svn:r4903
2005-09-03 02:23:53 +00:00
Nick Mathewson
ae726e659e and another byte counting error.
svn:r4902
2005-09-03 02:14:31 +00:00
Nick Mathewson
9b949cc1d2 Excellent. We have at least 8 bytes, so I can safely get the 9th.
svn:r4901
2005-09-03 02:12:53 +00:00
Nick Mathewson
bcbff6dcd7 Note to self: htonl(htonl(X)) is *not* "twice as good as htonl(X)". Spotted by arma.
svn:r4900
2005-09-03 01:47:39 +00:00
Nick Mathewson
815c092b22 Make structs for (v2) network-status and its per-router components. Add functions to parse them. Re-do the parsing logic a litt.e. Change signatures in or.h to support new DNS TTL logic.
svn:r4898
2005-09-02 20:37:31 +00:00
Nick Mathewson
9bc3d34682 Add contact field to generated network-status objects
svn:r4897
2005-09-02 20:30:03 +00:00
Nick Mathewson
09e8521236 Make ContactInfo mandatory for authoritative directories.
svn:r4896
2005-09-02 20:29:29 +00:00
Nick Mathewson
a6a45b7713 Add TTLs to RESOLVED, CONNECTED, and END_REASON_EXITPOLICY cells. Also, add a missing ntohl in connection_ap_handshake_socks_resolved.
svn:r4894
2005-09-02 18:53:31 +00:00
Roger Dingledine
93179f4e7e bugfix: moria2 wasn't listing itself as verified in its directory
svn:r4893
2005-09-02 06:19:31 +00:00
Roger Dingledine
ba899d0648 when we're shutting down and we do something like try to post a
server descriptor or rendezvous descriptor, don't complain that we
seem to be unreachable. of course we are, we're shutting down.


svn:r4892
2005-09-01 08:19:49 +00:00
Roger Dingledine
1b04f38145 subtle change to avoid some false positives:
if a server went down for six hours and then came back, we would
complain to it that it's unreachable. now we wait until the third
consecutive descriptor post that we thought it was unreachable,
before complaining to it.


svn:r4891
2005-09-01 08:13:40 +00:00
Roger Dingledine
3b6ab71929 and notify the dirserver operator whenever we do
svn:r4890
2005-08-31 06:18:19 +00:00
Roger Dingledine
711cad94ed when we think a router is unreachable, pass the message back to the
server's logs, and make it a 'warn'.
also, fix a memory leak for rejected router descriptors.


svn:r4889
2005-08-31 06:14:37 +00:00
Nick Mathewson
0b92c28d84 Actually set is_hibernating when parsing router descriptors.
svn:r4888
2005-08-30 15:04:24 +00:00
Roger Dingledine
6a52aa52fe fix a pair of hard-coded urls
svn:r4887
2005-08-30 07:01:30 +00:00
Roger Dingledine
4240410a9d don't whine about reachability if the guy is hibernating now.
speaking of which, we don't actually parse is_hibernating out
of the router descriptor right now. nick, can you fix this?


svn:r4886
2005-08-30 06:48:24 +00:00
Roger Dingledine
e9524f9d2d refactor -- no actual changes
svn:r4885
2005-08-30 06:43:07 +00:00
Roger Dingledine
a8c0c51e0b a bit of cleanup
svn:r4884
2005-08-30 06:01:13 +00:00
Nick Mathewson
0691c7221e Update routerinfo_t.is_running when generating network status on authdirserver.
svn:r4883
2005-08-29 18:42:36 +00:00
Nick Mathewson
29a6c17d67 Allow tor_gzip_uncompress to handle multiple concatenated compressed strings.
svn:r4882
2005-08-29 18:01:38 +00:00
Nick Mathewson
e3a058f33a Change semantics of set_cached_dir; fix massive authdir memleak.
svn:r4880
2005-08-28 04:20:37 +00:00
Nick Mathewson
26d2301c76 Make unit tests (and others) run without launching listeners, creating subdirectories, and so on.
svn:r4876
2005-08-26 23:22:27 +00:00
Nick Mathewson
cd2bb915ed Fix a warning, add an assert.
svn:r4875
2005-08-26 23:12:13 +00:00
Nick Mathewson
70fe2a6cee Crashing dirservers on startup is often considered bad form.
svn:r4874
2005-08-26 23:04:12 +00:00
Nick Mathewson
e863771485 Log when falling back to nonfast/nonstabl routers
svn:r4869
2005-08-26 22:16:32 +00:00
Nick Mathewson
ed070b0fdb Set a variable that exists. That works better.
svn:r4868
2005-08-26 22:16:09 +00:00
Roger Dingledine
6577e08e38 when we're trying to build a circuit and we're being picky about what
sort we get but there aren't any suitable servers, try being less picky
rather than simply failing.


svn:r4867
2005-08-26 22:10:22 +00:00
Nick Mathewson
a74ad8efea Remember to mark v2 networkstatus non-dirty when we generate it; also, fix spaces.
svn:r4866
2005-08-26 22:08:24 +00:00
Nick Mathewson
3cc960c7dd Make sure that cached-status directory exists.
svn:r4865
2005-08-26 22:03:57 +00:00
Roger Dingledine
77f52e3467 fix some logs and comments
svn:r4864
2005-08-26 21:55:38 +00:00
Nick Mathewson
ae4a183ed8 Change the return values on dirserv_add_descriptor
svn:r4863
2005-08-26 21:46:24 +00:00
Roger Dingledine
53431a4950 fix compile complaints (and a bug)
svn:r4862
2005-08-26 21:30:52 +00:00
Nick Mathewson
e24d540d81 We no longer need dirserv_load_from_directory_string, so dirserv_add_descriptor no longer has to keep track of where each descriptor ends.
svn:r4861
2005-08-26 21:28:16 +00:00
Nick Mathewson
208bdf5f27 No need to load cached directory twice
svn:r4860
2005-08-26 21:19:58 +00:00
Roger Dingledine
715b972300 disarm a trap
svn:r4859
2005-08-26 21:12:53 +00:00
Nick Mathewson
47669fa0fd Fix assert failure on directory startup.
svn:r4858
2005-08-26 21:12:34 +00:00
Nick Mathewson
f559c49c39 Make network-status strings wellformed
svn:r4857
2005-08-26 21:11:53 +00:00
Nick Mathewson
47aa42fc17 Remove a field that nobody sets or uses.
svn:r4856
2005-08-26 21:11:34 +00:00
Nick Mathewson
9a3be928e9 Note that a descriptor has changed when we receive a new directory.
svn:r4855
2005-08-26 21:02:18 +00:00
Nick Mathewson
0e649ac60a Remove descriptor_list and use routerlist instead. Make directories manage routerlist a little better.
svn:r4854
2005-08-26 20:59:04 +00:00
Roger Dingledine
a47765a16d stop freeing the new global options list whenever we update it.
svn:r4853
2005-08-26 20:26:20 +00:00
Roger Dingledine
237f58524f make it clearer which elements of routerinfo_t are for reachability
testing


svn:r4852
2005-08-26 20:22:32 +00:00
Roger Dingledine
f3bccdce73 if dirservers set assumereachable, it overrides their individual
reachability testing


svn:r4851
2005-08-26 20:08:12 +00:00
Roger Dingledine
61f728f4fe fix an infinite loop at hup
svn:r4850
2005-08-26 20:07:55 +00:00
Nick Mathewson
7f78be1659 Clean up the "add myself as a trusted dirserver" code.
svn:r4849
2005-08-26 19:31:51 +00:00
Nick Mathewson
43488472ec The circus music begins playing as nickm and arma juggle an ntohl. Hoop-lah!
svn:r4848
2005-08-26 19:25:36 +00:00
Nick Mathewson
ee76baae3d move a wandering ntohl
svn:r4847
2005-08-26 19:23:52 +00:00
Nick Mathewson
0239249160 Only free strmap if it is allocated.
svn:r4846
2005-08-26 18:48:13 +00:00
Nick Mathewson
cf90a36dd1 Add quotes around filenames in src/or
svn:r4845
2005-08-26 18:44:26 +00:00
Nick Mathewson
ff25a7707a fix syntax err
svn:r4843
2005-08-26 18:35:52 +00:00
Nick Mathewson
88989be99b More documenting
svn:r4842
2005-08-26 18:02:49 +00:00
Nick Mathewson
e204dd5d2a Remove accidentally added printf
svn:r4841
2005-08-26 15:35:43 +00:00
Nick Mathewson
d54d7b7ec1 Add some documentation; move the signature generation logic into routerparse.c along with the hash generation logic; make router signing use it as well.
svn:r4840
2005-08-26 15:34:53 +00:00
Roger Dingledine
893acb3acc Make a new AssumeReachable config option that will publish anyway.
Also, let authdirservers start without setting their Address field.
Something is still not working though. Will fix in morning.


svn:r4839
2005-08-26 07:41:19 +00:00
Nick Mathewson
e68bed8782 Fall back to routerlist instead of descriptor_list when we are a cache.
svn:r4837
2005-08-25 20:54:12 +00:00
Nick Mathewson
4dc3cb9fd9 Fix a segfault when starting a dir cache
svn:r4836
2005-08-25 20:45:53 +00:00
Nick Mathewson
54a6a8f0ef Start implementing the server side of the new directory protocol.
Probably very buggy, since I can't actually run an authdir.

Features
- Generate and publish new network-status format
- Code to cache and re-serve network-status objects generated by others.
- Publish individual descriptors (by fingerprint, by "all", and by
  "tell me yours.")  [Still needs compression logic]
- Publish client and server recommended versions seprately.
- Add digest of descriptor to routerinfo_t, so we can track them better, and
  length, so we can server them more easily.

Cleanups
- Unify code to sign directory-like things
- Make resolve_my_address() able to tell you which name it wound up resolving.
- Unify code to store and serve directory-like things so it all uses
  cached_dir_t.
- Unify code to set the value of cached_dir_t objects.


svn:r4835
2005-08-25 20:33:17 +00:00
Roger Dingledine
86f85f240c be much more conservative about logging reachability complaints.
the ones it logs now are probably genuine problem servers.


svn:r4832
2005-08-24 14:31:32 +00:00
Roger Dingledine
e54e970a82 ha ha, that infinite loop was fun.
but dirservers aren't supposed to have infinite loops.


svn:r4831
2005-08-24 12:14:44 +00:00
Roger Dingledine
a120cc20c1 Dirservers now do their own external reachability testing of each
Tor server, and only list them as running if they've been found to
be reachable.

Dirservers also log trouble servers, but only start complaining loudly
after they've been up for an hour, to reduce false positives. We still
need to do something about the fact that it is quite loud when there
are many trouble servers.


svn:r4829
2005-08-24 02:31:02 +00:00
Nick Mathewson
5d590861c4 TOR_ISSPACE, not isspace.
svn:r4828
2005-08-24 02:20:31 +00:00
Nick Mathewson
b72ab23ded check [X-]Forwarded-For headers in HTTP requests when generating log messages. Implements feature for bug 181. Arma--please review?
svn:r4826
2005-08-23 22:27:17 +00:00
Nick Mathewson
50452c32ec fix bug 180: handle duplicate lines in approved-routers files.
svn:r4825
2005-08-23 22:00:35 +00:00
Roger Dingledine
f35ef825f9 Our logic to decide if the OR we connected to was the right guy
was brittle and maybe open to a mitm for unverified routers.

Now we be sure to check the digest, and if the nickname he claims is
not a verified one then we don't care what nickname he claims.


svn:r4823
2005-08-23 09:50:51 +00:00
Roger Dingledine
675f6b5f3c that comma was important
svn:r4820
2005-08-23 01:00:30 +00:00
Roger Dingledine
8b766d1b7e fix bad logic that has been lurking for eons, that now prevented us
from uploading descriptors after the first one.


svn:r4818
2005-08-23 00:47:44 +00:00
Roger Dingledine
ab112ca6ad and don't print the null string here either
svn:r4816
2005-08-22 22:59:54 +00:00
Roger Dingledine
23ed3c9786 whoops, avoid printing a null string sometimes
svn:r4815
2005-08-22 22:58:38 +00:00
Roger Dingledine
676b330eb2 Make DirPostPeriod config option obsolete.
Force new descriptor upload every 18 hours, not 24, to avoid races.
Change rate-limiting on new descriptors due to bandwidth changes, from
45 minutes to 20 minutes.


svn:r4814
2005-08-22 21:53:12 +00:00
Roger Dingledine
fa64d73fc7 fix function headers from the descriptor-frequency commit
svn:r4809
2005-08-22 06:45:18 +00:00
Roger Dingledine
435d2d8fde when we begin reachability testing, log the address:port for each
port we're testing, so people are more likely to notice that they're
using the wrong ip address.


svn:r4808
2005-08-22 05:46:02 +00:00
Roger Dingledine
d928411acd change log entry for unreachability to explicitly suggest /etc/hosts
as the culprit


svn:r4807
2005-08-22 05:33:49 +00:00
Nick Mathewson
dc09c7fc73 Implement new (reduced-frequency) upload rules. arma, you should review this.
svn:r4806
2005-08-22 03:10:53 +00:00
Nick Mathewson
9b6eeb81aa Make unit tests run without segfaulting
svn:r4804
2005-08-22 00:34:42 +00:00
Nick Mathewson
7a442c2c48 Make set_options a little smarter: have options_act handle transitions on its own, and only dirty our descriptor when we really want to.
svn:r4802
2005-08-22 00:18:45 +00:00
Roger Dingledine
5e76bac1dd the tor-spec says router->address must be an IP address. so refuse
it if it's not.
(this also fixes some potential security problems with people providing
hostnames as their address and then preferentially resolving them and
partitioning users.)


svn:r4790
2005-08-16 02:52:27 +00:00
Roger Dingledine
04d42ea433 rotate dns and cpu workers if the controller changes options that
will affect them.


svn:r4787
2005-08-15 23:46:18 +00:00
Roger Dingledine
b1d3f124c4 Permit transitioning from ORPort=0 to ORPort!=0, and back.
This is actually a bit more subtle, because we need to rotate
the dnsworkers and cpuworkers if certain options (logs, orport, etc)
change. Maybe set_options() should detect this and notify the caller
that it should rotate them.

Expect some mysterious crashes.


svn:r4786
2005-08-15 10:30:45 +00:00
Roger Dingledine
10ff723938 initialize the dns worker cache tree whether or not we start
out as a server.


svn:r4785
2005-08-15 10:27:37 +00:00
Roger Dingledine
157f013d83 fix typo
svn:r4784
2005-08-15 09:25:36 +00:00
Roger Dingledine
00c2ba4841 resolve a XXX
svn:r4783
2005-08-15 09:19:55 +00:00
Roger Dingledine
11bc97801d clean up some confusing logs.
make MonthlyAccountingStart truly obsolete now.


svn:r4782
2005-08-15 09:17:47 +00:00
Roger Dingledine
79e3f5600a hey, we have a function for that
svn:r4781
2005-08-15 08:51:20 +00:00
Roger Dingledine
3728011f36 after failing from resolve failed or misc, reset the num failures.
svn:r4780
2005-08-15 03:35:15 +00:00
Roger Dingledine
f57d062d9c Implement exit enclaves: if we know an IP address for the destination,
and there's a running Tor server at that address which allows exit to
the destination, then extend the circuit to that exit first.
Also, if the user asks for a .exit node, cannibalize general circs for it.


svn:r4779
2005-08-15 03:25:40 +00:00
Roger Dingledine
cc1b82ade8 when listing min-bandwidth servers in the controller, don't get
fooled by a low bandwidthrate


svn:r4777
2005-08-14 08:38:34 +00:00
Roger Dingledine
ff54050fda let unregistered-servers take a parameter (the min bandwidth)
nick, is this an ugly hack of your protocol?


svn:r4775
2005-08-13 02:20:00 +00:00
Roger Dingledine
66b21a19db Add a 'quit' command for the controller.
Add a 'getinfo unregistered-servers' for arma's internal use.


svn:r4774
2005-08-13 01:55:23 +00:00
Roger Dingledine
6d875b7d58 i'm sick of having my streams fail because of a confused exit node.
try this band-aid to see if it gets better.


svn:r4773
2005-08-13 00:31:41 +00:00
Roger Dingledine
87fcd60aa2 predict required circuits better, with an eye toward making
hidden services faster on the service end.


svn:r4772
2005-08-13 00:22:07 +00:00
Nick Mathewson
789374dbbd Make GCC very happy, even with lots of warnings set. Also, try to fix some reported Solaris x86 warnings.
svn:r4770
2005-08-12 17:24:53 +00:00
Nick Mathewson
21959c1bfd start using new renddesc code
svn:r4769
2005-08-12 15:05:05 +00:00
Roger Dingledine
aab541c852 We weren't cannibilizing circuits correctly for
CIRCUIT_PURPOSE_C_ESTABLISH_REND and CIRCUIT_PURPOSE_S_ESTABLISH_INTRO
so we were being forced to build those from scratch.
This should save us a bit of time. Also fixes bug 173.


svn:r4763
2005-08-12 01:26:21 +00:00
Roger Dingledine
2caa74e6ff quiet a noisy debug
svn:r4762
2005-08-12 00:34:50 +00:00
Nick Mathewson
16528aa070 Add a config-file GETINFO entry; fix a minor memory leak on some SAVECONF calls.
svn:r4761
2005-08-10 18:05:20 +00:00
Nick Mathewson
c031d14633 Fix segfault in unit tests
svn:r4760
2005-08-09 18:49:43 +00:00
Nick Mathewson
18abdfdf58 Replace ADDR_POLICY_ACCEPT/REJECT with its own enum
svn:r4756
2005-08-09 05:22:23 +00:00
Nick Mathewson
05bced6139 check_software_version_against_directory needs a return value.
svn:r4755
2005-08-09 05:20:14 +00:00
Nick Mathewson
742796c19f Avoid sending blank lines when GETINFO replies should be empty
svn:r4754
2005-08-09 05:16:29 +00:00
Nick Mathewson
943ef5256b fix whitespace issues
svn:r4752
2005-08-08 21:59:48 +00:00
Nick Mathewson
249b72f53e Replace (Fascist)Firewall* with a new ReachableAddresses option that understands address policies.
svn:r4751
2005-08-08 21:58:48 +00:00
Roger Dingledine
3ac34ae329 get rid of IgnoreVersion and the forced auto-exit mis-feature
svn:r4746
2005-08-08 21:52:57 +00:00
Roger Dingledine
588e80fdcd fix a function comment
svn:r4743
2005-08-08 17:48:23 +00:00
Nick Mathewson
50cfcbe157 Note which directory server said 400 to a renddesc.
svn:r4742
2005-08-08 17:32:17 +00:00
Roger Dingledine
2e918af35d a few typo fixes
svn:r4738
2005-08-07 21:58:23 +00:00
Nick Mathewson
01d0788950 Generalize FirewallPorts to FirewallIPs so I can run happily when locked in net 18.
svn:r4737
2005-08-07 21:24:00 +00:00
Nick Mathewson
4e735da5da Also set event_mask=0 in connection_free_all, and dont send events to marked control conns (for good measure)
svn:r4729
2005-08-07 19:27:38 +00:00
Roger Dingledine
5c4da9dec6 incomplete patch for matt's info controller signal term bug
svn:r4728
2005-08-07 19:20:55 +00:00
Nick Mathewson
999b7951c3 Shorten hidden service port config parsing; fix bug 174
svn:r4725
2005-08-06 21:35:04 +00:00
Nick Mathewson
52475ee19b Alphebetize config variables
svn:r4714
2005-08-05 01:35:43 +00:00
Nick Mathewson
4870877231 Add SOCKSAndDNS link to appropriate log message, since we wind up pointing everybody to it anyway
svn:r4695
2005-08-04 20:12:44 +00:00
Nick Mathewson
4cb89fd557 Implement some more GETINFO goodness: expose helper nodes, config options, getinfo keys.
svn:r4694
2005-08-04 19:56:41 +00:00
Nick Mathewson
303258972b Fix idiot bug. The "free the IP history" code belons in connection_free_all(), not in connection_free(). You can all mock me now.
svn:r4691
2005-08-04 18:29:01 +00:00
Nick Mathewson
11ff0aba80 Make clients regenerate their keys when their IP address changes.
svn:r4688
2005-08-03 20:42:17 +00:00
Nick Mathewson
ceb02cee2c If they havent told us by now, they probably never will.
svn:r4687
2005-08-03 20:37:13 +00:00
Nick Mathewson
d90841ff5a Fix bug in state parsing
svn:r4681
2005-07-28 19:08:51 +00:00
Nick Mathewson
299af3d393 Possibly broken implementation of persistant state; handles helper nodes; does not handle accounting info yet.
svn:r4680
2005-07-28 19:01:48 +00:00
Roger Dingledine
a32f936346 whoops, fix compile
svn:r4674
2005-07-25 10:36:01 +00:00
Roger Dingledine
1e0fdcae98 parameterize RephistTrackTime
svn:r4673
2005-07-25 10:29:21 +00:00
Roger Dingledine
9385a96235 fix typos
svn:r4645
2005-07-23 04:35:58 +00:00
Nick Mathewson
bb4ebaac6f document code for hibernation
svn:r4644
2005-07-23 04:12:35 +00:00
Nick Mathewson
2bd6040f62 Rename cross-format config.c stuff to config_* and or_options_t-specific stuff to option[s]_*
svn:r4641
2005-07-23 01:58:05 +00:00
Nick Mathewson
3cb7b97660 Fix out-of-place declaration
svn:r4640
2005-07-23 01:52:24 +00:00
Nick Mathewson
18c11eb3bc Be consistent about preferring foo* to struct foo*
svn:r4637
2005-07-22 21:12:10 +00:00
Nick Mathewson
c252a76f0b Parameterize configuration parsing functions
svn:r4635
2005-07-22 20:37:42 +00:00
Nick Mathewson
c3a62c1739 Initial, somewhat dodgy implementation of helper nodes. It has too many XXXXs, it logs too verbosely, and it doesnt do persistence.
svn:r4633
2005-07-22 17:32:25 +00:00
Nick Mathewson
5b4e11fa5d Add getinfo logic for accounting; add options for helper nodes
svn:r4632
2005-07-22 14:55:09 +00:00
Roger Dingledine
3333d27f41 we were mangling memory because we weren't allocing enough
for the hidserv desc
nick can you check that this is enough now?


svn:r4628
2005-07-22 00:18:25 +00:00
Roger Dingledine
1efeb3908a let hidden service descriptors publish 0 intro points
nick, please check the logic here


svn:r4627
2005-07-22 00:14:58 +00:00
Roger Dingledine
11bd4bc521 in circuit_list_path(), don't redundantly print the intended exit
nickname when the circuit is open.


svn:r4622
2005-07-20 20:33:13 +00:00
Roger Dingledine
eedb7c243e be consistent about printing out key digest $'s when we're getting a
different key than we expect


svn:r4609
2005-07-19 21:26:24 +00:00
Roger Dingledine
7ac36a9a74 unit tests to prove i didn't screw up
svn:r4602
2005-07-18 23:36:12 +00:00
Roger Dingledine
e479cc935e stop asserting if we have a controller listening for circuit events
and we're offline so we fail to make a circuit and it tries to notify
us about the zero-length circuit.


svn:r4600
2005-07-18 23:18:00 +00:00
Roger Dingledine
5fe18894b9 now that we're recommending 0.1.1.x-alpha for win32 and os x users,
stop printing debug stuff once a minute


svn:r4596
2005-07-18 19:16:17 +00:00
Roger Dingledine
e8a1b1d6a0 add a trivial tor-counting variable
svn:r4593
2005-07-18 06:09:04 +00:00
Roger Dingledine
43a28a4ca9 make event streams work with control v1 too
svn:r4590
2005-07-17 22:28:01 +00:00
Roger Dingledine
6ac245793c downgrade a warning that could plausibly happen sometimes now that we
have controllers.


svn:r4589
2005-07-17 21:43:47 +00:00
Roger Dingledine
090836d171 correct error message in closestream
svn:r4588
2005-07-17 21:36:33 +00:00
Roger Dingledine
ebf13c6282 not not zero means zero
svn:r4587
2005-07-17 21:22:18 +00:00
Roger Dingledine
5643532bd9 if the controller asks to extendcircuit to circid 0, we need to
init the circuit before we can add hops to its cpath.


svn:r4586
2005-07-17 21:13:36 +00:00
Roger Dingledine
fe7535c5e2 arguments in EXTENDCIRCUIT were reversed
and an error message was misleading
and we were leaking memory on some errors
more bugs remain


svn:r4585
2005-07-17 21:06:00 +00:00
Nick Mathewson
2cff73e7a4 Make "Couldnt add router to list" message more descriptive. Make messages consistenly punctuated.
svn:r4582
2005-07-15 19:40:38 +00:00
Nick Mathewson
f8b48176ed Fix several bugs in read_escaped_data; add a unit test and a few docs
svn:r4580
2005-07-15 19:31:11 +00:00
Nick Mathewson
441e02d4ac Merge patch from Matt Edman for bug 162 (service never stops)
svn:r4578
2005-07-15 19:09:36 +00:00
Roger Dingledine
545c2c6c87 the other half of the bugfix: tolerate a trusted dirserver claiming
dirport 0 in its descriptor.


svn:r4576
2005-07-15 18:56:59 +00:00
Roger Dingledine
97174b67c2 if you're an auth dir server, always publish your dirport,
even if you haven't yet found yourself to be reachable.

this is the cause of Jan Tore Morken's recent or-talk bug.


svn:r4575
2005-07-15 18:49:35 +00:00
Roger Dingledine
83dc42055d point out some bugs for nick, noticed by whiteout
svn:r4574
2005-07-15 18:48:38 +00:00
Roger Dingledine
452c98058f missed one
svn:r4567
2005-07-14 23:08:55 +00:00
Roger Dingledine
d8d0feb633 tell us what kind of listener it is, too
svn:r4566
2005-07-14 23:07:05 +00:00
Nick Mathewson
f86a1e634f fix opening listener log msg
svn:r4565
2005-07-14 23:04:31 +00:00
Nick Mathewson
e94f95a716 Populate address field of listeners with an actually sane value.
svn:r4564
2005-07-14 22:56:17 +00:00
Roger Dingledine
ceae96a3a0 put in tor26's new IP address
svn:r4560
2005-07-14 22:37:52 +00:00
Nick Mathewson
331942870e fix problems noticed by arma in rendservice.c
svn:r4558
2005-07-14 16:41:47 +00:00
Nick Mathewson
149e9a5900 remove pointless XXXX. It was there to remind me to do something I already did.
svn:r4557
2005-07-14 16:37:33 +00:00
Roger Dingledine
4a6bf116e7 substantive changes on nick's rendezvous commit.
nick, can you fix these?


svn:r4554
2005-07-14 08:45:19 +00:00
Roger Dingledine
2259032ea1 trivial changes on nick's rendezvous commit
svn:r4553
2005-07-14 08:43:19 +00:00
Roger Dingledine
19810ba38e make it more pleasant to be told you're using libevent
svn:r4548
2005-07-13 21:22:34 +00:00
Roger Dingledine
306f7d320c make a notice-level log make more sense.
svn:r4547
2005-07-13 21:12:33 +00:00
Nick Mathewson
97c58f066a whitespace fixes
svn:r4544
2005-07-13 17:24:55 +00:00
Nick Mathewson
cf13b3e4a6 Macro-fu to get DEBUG events working.
svn:r4539
2005-07-13 05:14:42 +00:00
Roger Dingledine
ddecb1a04d looks like we were never delivering deflated running-routers lists
svn:r4536
2005-07-12 22:56:22 +00:00
Roger Dingledine
7c7c95c3f6 anonymous bugfix on our pointer arithmetic
svn:r4535
2005-07-12 22:56:06 +00:00
Nick Mathewson
0828feaf7c Add belt-and-suspenders fix to coredump from yesterday; document more functions in buffers.c
svn:r4532
2005-07-12 18:19:30 +00:00
Roger Dingledine
8f9790a023 fix a seg fault with autodetecting which controller version is being used
svn:r4531
2005-07-12 05:48:15 +00:00
Nick Mathewson
63f9a8baa2 Canonicalize option names even on defaulted options.
svn:r4530
2005-07-11 18:11:54 +00:00
Nick Mathewson
50a206e800 Do not reverse command-line configuration options; Use new minimal-listener-close code; Add code to canonicalize configuration names.
svn:r4529
2005-07-11 17:35:36 +00:00
Nick Mathewson
658e1196d0 Change retry_listeners: when force is false, close and re-open a minimal set of listeners (i.e., those that do not match the configuration). This fixes a possible bug on some windowses. Maybe.
svn:r4528
2005-07-11 17:20:22 +00:00
Nick Mathewson
e1db33971e NT service patch from Matt Edman to improve error messages, lightly cleaned; needs more testing.
svn:r4527
2005-07-09 16:37:12 +00:00
Roger Dingledine
2f1f0c8d21 be flexible in what you accept: when people type "tor --install" thinking
they had typed "tor -install", make it work too.


svn:r4526
2005-07-09 03:28:58 +00:00
Roger Dingledine
5c1ba5dcf7 fix compile error in cvs
svn:r4520
2005-07-02 00:18:09 +00:00
Nick Mathewson
b11e314f2e Be more explicit about which IP we are connecting to; expose future exit policy problems better.
svn:r4519
2005-07-01 13:40:29 +00:00
Roger Dingledine
271d49958e fix another compile warn
svn:r4516
2005-07-01 02:02:24 +00:00
Roger Dingledine
3bb756b93b forward-port the 0.1.0.11 stuff
svn:r4515
2005-07-01 02:01:21 +00:00
Roger Dingledine
055477f121 fix compile error (and likely a a crash bug in resolves)
svn:r4514
2005-07-01 01:59:37 +00:00
Nick Mathewson
d85bfe83bf Make errors retrievable from tor_socketpair; resolve bug 163.
svn:r4509
2005-06-30 07:17:38 +00:00
Nick Mathewson
ec83652357 Logic to implement rendezvous/introduction via unknown servers.
- Add a new extend_info_t datatype to hold information needed to
  extend a circuit (addr,port,keyid,onion_key).  Use it in cpath and
  build_state.  Make appropriate functions take or return it instead of
  routerinfo_t or keyid.

- #if 0 needless check in circuit_get_by_edge_conn; if nobody triggers this
  error in 0.1.0.10, nobody will trigger it.

- Implement new hidden service descriptor format, which contains "extend
  info" for introduction points, along with protocol version list.
  - Parse new format.
  - Generate new format
  - Cache old and new formats alongside each other.
  - Directories serve "old" format if asked in old way, "newest available"
    format if asked in new way.
  - Use new format to find introduction points if possible; otherwise fall
    back.  Keep nickname lists and extendinfo lists in sync.
  - Tests for new format.

- Implement new "v2" INTRODUCE cell format.
  - Accept new format
  - Use new format if we have a versioned service descriptor that says the
    server accepts the new format.

- Add documentation for functions and data types.


svn:r4506
2005-06-29 21:46:55 +00:00
Roger Dingledine
6b21c8e74f make the local and private network masks explicit when we complain
svn:r4501
2005-06-29 19:15:23 +00:00
Roger Dingledine
caf7af26d7 whitespace fix
svn:r4500
2005-06-28 01:53:15 +00:00
Nick Mathewson
806da0d8b2 Compile on win32
svn:r4496
2005-06-27 23:35:04 +00:00
Nick Mathewson
30571317dd Fix unit tests that used old signature for add_fingerprint_to_dir
svn:r4495
2005-06-27 22:25:09 +00:00
Nick Mathewson
b759fe4b8d It is not the end of the world when a router descriptor has an unrecognized kwd
svn:r4480
2005-06-24 23:42:15 +00:00
Roger Dingledine
00a7a37c94 we were printing the number of idle dns workers incorrectly.
svn:r4477
2005-06-23 07:57:43 +00:00
Roger Dingledine
9808fbd884 make the log message less scary when all the dirservers are
temporarily unreachable


svn:r4476
2005-06-22 21:59:11 +00:00
Nick Mathewson
3ff473b47b Appease the hungry god of GCC: it wants functions to be static or prototyped!
svn:r4471
2005-06-21 01:08:01 +00:00
Roger Dingledine
419d647353 more cleanups before i go wild
svn:r4469
2005-06-21 01:00:42 +00:00
Roger Dingledine
9c67ae34f1 overall cleanup and streamlining and doccing
also fix a DoS avenue on dirservers


svn:r4468
2005-06-20 23:04:13 +00:00
Nick Mathewson
2aff87caae Load hardware acceleration options when/where available. Can anybody test this?
svn:r4467
2005-06-20 18:56:35 +00:00
Nick Mathewson
5eef9177c5 Appease verbose GCC warnings.
svn:r4466
2005-06-20 09:38:29 +00:00
Nick Mathewson
eb327e7660 Add feature to handle unset (default) configuration options in GETCONF control messages
svn:r4461
2005-06-19 22:38:36 +00:00
Nick Mathewson
64fc1f7bae Implement all the rest of the new controller protocol, debug a little, add some new features, add ADDRMAP events.
svn:r4460
2005-06-19 20:40:41 +00:00
Roger Dingledine
b5fd75a063 forward-port the --hash-password bug, plus other nearby fixes
svn:r4459
2005-06-19 08:35:46 +00:00
Roger Dingledine
cc57e1cab1 fix stray funny-character
svn:r4458
2005-06-19 08:35:16 +00:00
Nick Mathewson
d38c696d5a The new protocol is implemented. Except for the pesky string unquoting business. And the cleanups. And the docs. And the testing. And the debugging. And the new features. Hm, I think it is time to sleep.
svn:r4456
2005-06-18 03:50:08 +00:00
Nick Mathewson
3f2339d1d3 Implement EXTENDCIRCUIT and ATTACHCIRCUIT. Only SETCONFIG and AUTHENTICATE remain.
svn:r4455
2005-06-18 03:09:43 +00:00
Nick Mathewson
c2f6fe9b85 Implement even more control functionality
svn:r4454
2005-06-18 02:39:25 +00:00
Nick Mathewson
9b4aa8d2ab Implement all the easy bits of the new control protocol
svn:r4449
2005-06-17 20:37:21 +00:00
Nick Mathewson
f9f09f1c5e Start implementing framework for revised control spec.
svn:r4447
2005-06-17 18:49:55 +00:00
Nick Mathewson
d4972bd2e1 Remove code that has been #if-0ed for a long time.
svn:r4435
2005-06-15 18:34:46 +00:00
Roger Dingledine
a3c66475f3 compile fix by agl, for code that is always commented out
svn:r4427
2005-06-13 17:33:12 +00:00
Nick Mathewson
2b8fd9ceda Allow a few EINVALs from libevent before dying. Warn on kqueue with libevent before 1.1a
svn:r4419
2005-06-13 00:35:19 +00:00
Roger Dingledine
91b1fb7ff7 some more cleaning and docing
svn:r4415
2005-06-11 21:17:38 +00:00
Nick Mathewson
beae4d0d32 whitespace fix
svn:r4414
2005-06-11 18:59:24 +00:00
Nick Mathewson
44107b6b13 fix typo in last patch
svn:r4413
2005-06-11 18:56:16 +00:00
Nick Mathewson
232861ba42 Docment or add DOCDOC comments to undocumented functions in src/or. Make function definition format uniform.
svn:r4411
2005-06-11 18:52:12 +00:00
Roger Dingledine
2587fa09f9 move more docs into our code
svn:r4406
2005-06-11 06:07:22 +00:00
Roger Dingledine
fcd0fc3364 flesh out the source file descriptions for doxygen
svn:r4404
2005-06-11 05:31:17 +00:00
Roger Dingledine
b349e60543 don't tell people you're publishing the server descriptor if you're
actually not.


svn:r4387
2005-06-09 21:23:54 +00:00
Nick Mathewson
0831823763 Change end-of-file NLNL convention. It turns out arma I and I agree.
svn:r4382
2005-06-09 19:03:31 +00:00
Nick Mathewson
a6f51001a5 New whitespace normalization rule: no blank line at EOF.
svn:r4378
2005-06-09 16:46:51 +00:00
Roger Dingledine
15f937c95e when a dirserver gets a mismatched fingerprint, log the expected
fp and the received fp


svn:r4372
2005-06-09 10:21:55 +00:00
Roger Dingledine
cfc89f8753 pay more attention to the ClientOnly config option
svn:r4367
2005-06-09 08:54:42 +00:00
Roger Dingledine
d922fa7b10 fix another underflow in keeping stats
these size_ts are subtle buggers


svn:r4364
2005-06-09 03:57:54 +00:00
Nick Mathewson
87caad5445 Fix an underflow in buffer use conting.
svn:r4360
2005-06-08 21:55:02 +00:00
Roger Dingledine
43709a9c3d clean up the log warn a bit
svn:r4357
2005-06-08 20:45:29 +00:00
Nick Mathewson
c45845204a Fix warning about unused function when compiling with ancient libevent
svn:r4355
2005-06-08 20:35:28 +00:00
Roger Dingledine
44e85544e4 absolutely refuse to let people pick internal IP addresses if
they're using the default dirservers.

we're getting a big pile of a dozen or so servers that have picked
private IP addresses despite the warning (presumably they don't even
know they have logs)


svn:r4354
2005-06-08 20:32:22 +00:00
Nick Mathewson
b0538591c7 Reset buf->highwater every time buf_shrink is called, not just on suffessful shrink.
svn:r4353
2005-06-08 20:17:32 +00:00
Roger Dingledine
9ed7b53143 don't upload your descriptor if rebuilding it failed
svn:r4352
2005-06-08 19:45:17 +00:00
Roger Dingledine
4c43789435 Some play code to throw away old buffers sometimes rather
than constantly reallocing them; just in case this is our memory
problem. It looks for now like it isn't, so disabled.


svn:r4349
2005-06-08 17:27:11 +00:00
Roger Dingledine
eeb6d6dba6 dump periodic memory usage stats
svn:r4348
2005-06-08 17:24:58 +00:00
Nick Mathewson
be1c81a767 Fix syntax error.
svn:r4346
2005-06-08 16:26:44 +00:00
Nick Mathewson
ec07e1195f add patch for 143 and code to check for known-bad/slow libevent versions. Needs more testing.
svn:r4344
2005-06-08 13:53:19 +00:00
Roger Dingledine
aff308e6d9 reenable the part of the code that tries to flush as soon as an OR outbuf
has a full tls record available. perhaps this will make OR outbufs not grow
as huge except in rare cases, thus saving lots of cpu time plus memory.


svn:r4343
2005-06-08 04:55:06 +00:00
Roger Dingledine
1a5c5452b4 when you send a USR2 signal, the log message now tells you to send
a HUP signal if you want to change back to old log levels.


svn:r4332
2005-06-07 18:16:14 +00:00
Nick Mathewson
621ab95e59 Fix for 152: reject malformed .onion addresses rather then passing them on
svn:r4329
2005-06-07 18:01:46 +00:00
Nick Mathewson
2118e5798a Use correct errno from libevent on win32
svn:r4327
2005-06-07 17:32:33 +00:00
Nick Mathewson
e1c8aa8035 Fix win32 compilation: backport candidate
svn:r4320
2005-06-06 20:06:10 +00:00
Nick Mathewson
fc40f974c2 When RNG seeding fails, die. Backport candidate
svn:r4319
2005-06-06 20:02:33 +00:00
Nick Mathewson
baa10cbbfa Instrument buffers.c and rephist.c memory usage
svn:r4317
2005-06-06 17:03:21 +00:00
Nick Mathewson
9f24078452 Fix buffer overlow when checking hashed passwords
svn:r4308
2005-06-05 14:28:47 +00:00
Nick Mathewson
3c58cdf280 Add unit test for openpgp s2k
svn:r4306
2005-06-04 13:43:03 +00:00
Roger Dingledine
4855990d37 clean up a few more log entries
svn:r4304
2005-05-27 17:43:43 +00:00
Roger Dingledine
bfc7838b97 downgrade the 'caught sigpipe' notice.
we're going to pretend like all of these are fine.


svn:r4301
2005-05-25 02:20:15 +00:00
Roger Dingledine
4f0d7b82ae make lucky's weird libevent poll einprogress bug just warn, not kill tor.
svn:r4300
2005-05-24 22:58:57 +00:00
Nick Mathewson
d2cdae221d Fix not-freed-on-exit event
svn:r4298
2005-05-24 17:13:15 +00:00
Roger Dingledine
5005f682ae Bugfix: we were checking to see if you want to send a keepalive, based
on five minutes since last successful write. But if you have bytes queued
already, and they're not getting through, we were adding a new keepalive
every second. This was bad.


svn:r4296
2005-05-23 22:20:54 +00:00
Roger Dingledine
040a748d87 i screwed up the dirport reachability testing when we don't yet
have a cached version of the directory. hopefully now fixed.


svn:r4284
2005-05-23 05:20:52 +00:00
Nick Mathewson
751db63a17 Always disable kqueue on OSX. It seems linked to kernel panics
svn:r4282
2005-05-23 04:28:58 +00:00
Nick Mathewson
11a64692c3 Make hashed controller password encoding use hex not base64; this makes it possible to write a controller without base64
svn:r4279
2005-05-23 02:31:53 +00:00
Roger Dingledine
b86716b839 If a socks connection ends because read fails, don't warn that you're
not sending a socks reply back. (bug reported by Warren Barrow)


svn:r4277
2005-05-21 00:15:23 +00:00
Roger Dingledine
d22c141659 we were leaking 616 bytes every time somebody established us as
an intro point for their hidden service.


svn:r4276
2005-05-20 22:14:33 +00:00
Roger Dingledine
c95677725a a note for nick about other memory not freed at exit
svn:r4275
2005-05-20 22:11:46 +00:00
Roger Dingledine
f0e309e5bd add HttpProxyAuthenticator config option too
svn:r4272
2005-05-20 08:51:45 +00:00
Roger Dingledine
0fa1890e0e fix the assumption that uninitialized variables are 0
clean up router_load_single_router() more


svn:r4266
2005-05-18 03:52:07 +00:00
Roger Dingledine
fe78aac027 fix seg faults when router_load_single_router fails
svn:r4265
2005-05-18 03:42:46 +00:00
Nick Mathewson
e7354725bb Handle relay cells with rh.length too large.
svn:r4264
2005-05-17 20:00:24 +00:00
Roger Dingledine
9abef5e483 allow the middle hop of the testing circuit to be running
any version, now that most of them have the bugfix to let
them connect to unknown servers.


svn:r4263
2005-05-17 19:46:43 +00:00
Roger Dingledine
b7d6b8a397 doxygeny goodness from tyranix
svn:r4262
2005-05-17 17:01:36 +00:00
Roger Dingledine
ec1331d49e fix a comment that tyranix noticed
svn:r4239
2005-05-17 01:55:53 +00:00
Roger Dingledine
2812d4a08c free some memory that is still reachable on exit
svn:r4234
2005-05-16 10:32:10 +00:00
Nick Mathewson
530da0e772 Normalize whitespace
svn:r4233
2005-05-16 01:04:28 +00:00
Roger Dingledine
28195a0eb1 clean up some log entries
svn:r4228
2005-05-15 05:00:24 +00:00
Nick Mathewson
9bc6e3aa6c Add an explanatory comment
svn:r4222
2005-05-15 02:05:45 +00:00
Roger Dingledine
3c9ec416f6 fix a case error in suppressing a bogus libevent warning.
nick, was this lower-case for a reason? have both cases
appeared? or was this just a typo.


svn:r4206
2005-05-14 05:14:36 +00:00
Roger Dingledine
07230a698c if router_resolve fails on the descriptor the controller
gives us, we shouldn't leave the routerinfo in the list.


svn:r4205
2005-05-14 05:01:41 +00:00
Roger Dingledine
b92a77b1d2 move the periodic buffer shrinking interval from 3 mins to 1 min
svn:r4204
2005-05-14 01:11:45 +00:00
Nick Mathewson
00f2a09380 Append default exit policy before checking for implicit internal addresses: fix bug 129.
svn:r4201
2005-05-14 00:13:17 +00:00
Nick Mathewson
776b411dc9 Fix a segfault
svn:r4191
2005-05-11 04:14:17 +00:00
Nick Mathewson
3893b3c7ac Patch for task 133
svn:r4189
2005-05-10 22:33:45 +00:00
Nick Mathewson
d0c0d6c86a Apply patch from Geoff for bug 132. Clean it up a little to fix a memory leak and to avoid unnecessary parse/unparse code.
svn:r4188
2005-05-10 22:12:48 +00:00
Nick Mathewson
13126eeb0f Patch from goodell for task 131: Do not die on internal address if we are not publishing.
svn:r4186
2005-05-09 04:31:00 +00:00
Nick Mathewson
10b2208d93 Make Tor compile with no warnings with gcc4.0 on OSX
svn:r4184
2005-05-07 05:55:06 +00:00
Nick Mathewson
6567ec9ccf Functions work better when you call them. Resolve a bug which would prevent unreachable dirports from getting suppressed.
svn:r4183
2005-05-07 05:17:36 +00:00
Nick Mathewson
bc51c8b074 Implement --verify-config command-line option to fix bug 69.
svn:r4182
2005-05-07 04:49:09 +00:00
Roger Dingledine
cee7c5988c fix massive memory leak
(50 megabytes over a couple of days, on the dirservers)


svn:r4181
2005-05-06 08:53:23 +00:00
Roger Dingledine
cc0b19888d log buffer sizes on kill -usr1 too.
svn:r4180
2005-05-06 08:32:37 +00:00
Roger Dingledine
1f263bf6f5 whine at you if you're a server and you don't set your contactinfo
svn:r4178
2005-05-04 20:45:38 +00:00
Roger Dingledine
68ba303323 fix compile error if you're not multithreaded
svn:r4177
2005-05-03 18:44:20 +00:00
Roger Dingledine
6ea839265d remove archaic debugging aid that was probably unsafe
svn:r4176
2005-05-03 10:17:38 +00:00
Roger Dingledine
87850c47b0 cleanup now that 0.0.9pre1 is obsolete
svn:r4175
2005-05-03 10:12:08 +00:00
Roger Dingledine
5265bbd2b8 first iteration of scrubbing sensitive strings from logs.
also generally clean up log messages.


svn:r4174
2005-05-03 10:04:08 +00:00
Nick Mathewson
b35f7dacef Call tor_free_all instead of connections_free_all after forking
svn:r4173
2005-05-03 03:51:20 +00:00
Nick Mathewson
8b9ae25224 Change some >=s to >s in buf_resize, so that we do not denormalize buffers on resize.
svn:r4172
2005-05-03 03:25:04 +00:00
Nick Mathewson
4666b801fa If DataDir is ~/.tor, and that expands to /.tor, then default to LOCALSTATEDIR/tor instead.
svn:r4170
2005-05-03 00:36:57 +00:00
Nick Mathewson
14bac4dad4 Elaborate on buf_shrink comment.
svn:r4169
2005-05-02 23:41:39 +00:00
Roger Dingledine
aa6bcd50ca comment buf_shrink
svn:r4168
2005-05-02 23:39:09 +00:00
Nick Mathewson
ad547cbb8c Correct and simplify buf_shrink logic
svn:r4167
2005-05-02 23:36:13 +00:00
Nick Mathewson
d6a6c8785b When removing all bytes from a buffer, reset buf->cur=buf->mem
svn:r4166
2005-05-02 23:32:23 +00:00
Nick Mathewson
a312ce1d3b Change buffer shrinking strategy: only try to shrink once every 3 minutes. Do not try to read over buffer size unless buffer is nearly empty.
svn:r4165
2005-05-02 23:17:08 +00:00
Nick Mathewson
9c683c7613 Make buffer shrinking algorithm a little smarter.
svn:r4164
2005-05-02 22:49:24 +00:00
Nick Mathewson
830ac87611 Actually, dont send CREATE_FAST cells at all for now
svn:r4163
2005-05-02 22:39:59 +00:00
Nick Mathewson
ab34901263 New and frightening code to implement fast-path first-hop CREATE_FAST cells. Watch out when we bump the version to 0.1.0.6-rc!
svn:r4162
2005-05-02 22:35:18 +00:00
Roger Dingledine
978648bff8 also print the platform string for rejected descriptors
svn:r4160
2005-05-02 22:06:04 +00:00
Roger Dingledine
15c1853bd6 don't print nulls
svn:r4159
2005-05-02 21:54:16 +00:00
Roger Dingledine
c9e83eb1b4 when we refuse a router descriptor, log contactinfo and source address.
svn:r4156
2005-05-02 21:48:54 +00:00
Roger Dingledine
57b7427c2d reformat routerparse a bit
svn:r4155
2005-05-02 21:48:25 +00:00
Nick Mathewson
69dc4e1675 Remove support for looking at old directory/routerdesc elements; mark non-new elements optional; switch to new format for dir-signing-key; start accepting newer elements so we can mark them as non-opt later; make tor-spec say the right stuff.
svn:r4154
2005-05-02 21:22:31 +00:00
Roger Dingledine
729e720095 workaround for user error: some people were putting "Address " in their
torrc, and they had a buggy resolver that resolved " " to 0.0.0.0. Oops.


svn:r4150
2005-04-29 18:52:05 +00:00
Nick Mathewson
fe65e57ca1 Re-do fragmented control message handling to work with new buf_t system.
svn:r4144
2005-04-27 22:01:34 +00:00
Nick Mathewson
d0a9a8bdd3 Appease VC7. It has a strangely puritanical attitude about what programmers are allowed to do a consenting void*.
svn:r4140
2005-04-27 20:02:52 +00:00
Nick Mathewson
53607d3bb3 Turn SENTINELS back on; give NOINLINE a name and turn it off.
svn:r4139
2005-04-27 19:40:31 +00:00
Roger Dingledine
4c4a14e3cb turn off the mongo debugging stuff, for performance tests
svn:r4137
2005-04-27 17:21:42 +00:00
Roger Dingledine
543d31c89a bump the default bandwidthrate from 1mb to 2mb
svn:r4131
2005-04-27 04:13:59 +00:00
Nick Mathewson
52376dc9e8 Rename buf->start to buf->cur; fix bug in read_to_buf; still debug with paranoia.
svn:r4130
2005-04-27 02:55:21 +00:00
Nick Mathewson
746768df5d Add even more debugging code; temporarily disable inlines in buffers.c
svn:r4129
2005-04-27 00:53:44 +00:00
Roger Dingledine
914ee87e07 stop re-reading and re-parsing the directory as soon as we make it.
it was nice for checking if we've got bugs, but it's really quite
expensive too. it was also nice for updating our routerinfo's
immediately, but we'll update them like everybody else when we fetch
a new dir from somebody else.


svn:r4128
2005-04-27 00:48:05 +00:00
Roger Dingledine
adaf3d31e6 hidden service client connections were using some of their
60 seconds fetching the hidserv descriptor, which made them
more likely to fail on the first attempt, yet they work fine
on the second. so now give them extra time for the first try.


svn:r4127
2005-04-26 22:36:00 +00:00
Roger Dingledine
2a7aec0ffd fix function prototype, fix typo
svn:r4126
2005-04-26 21:29:20 +00:00
Nick Mathewson
ecc76d8245 Avoid overflow on wrapping a TLS read.
svn:r4125
2005-04-26 21:20:22 +00:00
Nick Mathewson
e6794e5808 Fix unit tests for buffers.
svn:r4124
2005-04-26 21:10:31 +00:00
Nick Mathewson
9ba2dd7ea1 Clean/renormalize whitespace
svn:r4122
2005-04-26 20:55:32 +00:00
Nick Mathewson
ef2409e4ed Change the implementation of buf_t a lot: make it a ring buffer to minimize memmove on flush. This may break the universe, but it is probably Necessary For Perfomance.
svn:r4121
2005-04-26 20:53:22 +00:00
Roger Dingledine
4eb3cf9330 a bit more debug info
svn:r4119
2005-04-26 20:05:15 +00:00
Roger Dingledine
953cf91ecd add more debugging info to help us find the weird dns freebsd pthreads bug.
svn:r4117
2005-04-26 19:08:06 +00:00
Roger Dingledine
509405a5f7 clean up this TOR_FRAGILE business
svn:r4116
2005-04-26 18:52:16 +00:00
Roger Dingledine
5e86e87124 Add basic HttpsProxyAuthenticator support, based on patch
from Adam Langley.


svn:r4115
2005-04-26 18:33:33 +00:00
Roger Dingledine
4fafa81f32 help debug: when we close a conn due to timeout, tell us its
file descriptor, not its connectionarray index.


svn:r4113
2005-04-25 17:24:16 +00:00
Roger Dingledine
662cfc976d only call the connection open once we've decided we like the cert.
svn:r4112
2005-04-25 17:23:52 +00:00
Roger Dingledine
f3ea883ccd bugfix: stop trying to print a null pointer if an OR conn fails
because we didn't like its cert.


svn:r4111
2005-04-25 15:43:37 +00:00
Roger Dingledine
12ea3a26b2 bugfix: make a debug log stop lying
svn:r4110
2005-04-25 15:43:05 +00:00
Roger Dingledine
92b970d2a6 only complain about wedged cpuworkers after an hour, not 100 secs
svn:r4100
2005-04-23 20:58:44 +00:00
Roger Dingledine
6128cdead0 let NumCpus be singular without whining
svn:r4097
2005-04-23 19:29:09 +00:00
Nick Mathewson
5827e2e216 Fix "JAP-client" hideous ASN1 bug, twice. (Fix1: check more thoroughly for TLS errors when handling certs. Fix2: stop assert(0)ing on uncaught TLS errors.)
svn:r4085
2005-04-23 14:26:02 +00:00
Roger Dingledine
ad4eca60ec add geoff's NoPublish patch
svn:r4084
2005-04-21 10:40:48 +00:00
Nick Mathewson
ce9995a579 Replace an infinite-stack-recursion bug with a generate-infinite-debug-messages bug. Maybe it isnt such a good idea to send LOG_DEBUG messages to the controller after all?
svn:r4082
2005-04-17 22:52:02 +00:00
Nick Mathewson
cf84759b4b zero-out errno before calling event_dispatch, just in case we have misdiagnosed poll(2)/EINVAL bug.
svn:r4081
2005-04-17 22:38:39 +00:00
Roger Dingledine
769541ff7e be willing to load balance over up to 2mB, not 1mB, of advertised capacity
svn:r4080
2005-04-12 22:09:47 +00:00
Roger Dingledine
bf79b5266f those should be notices, not warns
svn:r4079
2005-04-12 22:09:04 +00:00
Nick Mathewson
f1dfa30064 Fix postdescriptor behavior: on non-complete success, only say "done" once.
svn:r4073
2005-04-11 02:52:09 +00:00
Roger Dingledine
e2cdc87485 remove some redundant code
svn:r4062
2005-04-08 06:16:09 +00:00
Nick Mathewson
656e31ba33 If it has not been 100 seconds since we told the cpuworker about an onion, complain! Oh, wait...
svn:r4059
2005-04-08 04:59:34 +00:00
Nick Mathewson
74dc7eedc5 Add kludgy function to force controllers to flush EVENT_ERR_MSG events.
svn:r4057
2005-04-08 03:36:39 +00:00
Nick Mathewson
31c12e265f Move a quote, fix a log.
svn:r4056
2005-04-08 03:26:44 +00:00
Nick Mathewson
c6769a80fb Fixs a signed/unsigned comparison
svn:r4055
2005-04-08 03:26:23 +00:00
Nick Mathewson
6face4f482 Add missing "char"
svn:r4054
2005-04-08 03:07:07 +00:00
Roger Dingledine
97637549bb tie MAX_DIR_SIZE to MAX_BUF_SIZE
resolve bug 80


svn:r4052
2005-04-07 22:13:17 +00:00
Roger Dingledine
dabafddb82 fix format bug
svn:r4051
2005-04-07 22:03:56 +00:00
Roger Dingledine
ec3650f00f only whine about clock skew from the dirserver if he's a trusted
dirserver.


svn:r4048
2005-04-07 21:09:19 +00:00
Nick Mathewson
8cc3307e0d Improve conn_*_to_string; add circuit_state_to_string; make skewed-descriptor messages better.
svn:r4047
2005-04-07 21:07:19 +00:00
Roger Dingledine
dd98412ce1 allow servers to publish descriptors from 12 hours in the future.
hopefully this will allow more slack and let crummier servers help
out too.


svn:r4046
2005-04-07 21:01:00 +00:00
Nick Mathewson
b897cb1ec3 Change conn_(type|state)_to_string from const arrays to switch functions so we (I) will not make Tor crash the next time we (I) add a new state.
svn:r4045
2005-04-07 20:25:22 +00:00
Roger Dingledine
6bdfd97272 add function comment
svn:r4043
2005-04-07 20:07:34 +00:00
Roger Dingledine
ab8a0bb52c We have a bug that I can't find. Sometimes, very rarely, cpuworkers get
stuck in the 'busy' state, even though the cpuworker process thinks of
itself as idle. I don't know why. But here's a workaround to kill any
cpuworker that's been busy for more than 100 seconds.


svn:r4042
2005-04-07 20:02:00 +00:00
Nick Mathewson
c92a2620d4 Try RB_TREE instead of SPLAY_TREE, but with a single-entry caching optimization.
svn:r4041
2005-04-07 05:09:19 +00:00
Nick Mathewson
a035b8e3c3 Make compare_orconn_circid_entries marginally faster and inlined, if that helps
svn:r4040
2005-04-07 04:50:25 +00:00
Nick Mathewson
7709547c08 When we connect and finish TLS negotiation with address:port, it is obvious that any other key or nickname we might know about (as an authdirserver) does not actually exist at address:port.
svn:r4036
2005-04-06 21:09:47 +00:00
Roger Dingledine
03720b39fd stop wasting time doing a case insensitive comparison for every dns name
every time we do any lookup. canonicalize the names to lowercase and be
done with it.


svn:r4035
2005-04-06 20:25:21 +00:00
Roger Dingledine
46089c49c4 blow away most calls to assert_all_pending_dns_resolves_ok, since
they're eating our cpu.


svn:r4034
2005-04-06 20:05:34 +00:00
Roger Dingledine
652dde72f1 bugfix: chdir to your datadirectory at the *end* of the
daemonize process, not the beginning. this was a problem
because the first time you run tor, if your datadir isn't
there, and you have runasdaemon set to 1, it will try to
chdir to it before it tries to create it. oops.


svn:r4033
2005-04-06 19:07:38 +00:00
Roger Dingledine
8596947ee2 quiet another instance where we whine to an innocent OR operator's
logs when some other server switches keys unexpectedly.


svn:r4032
2005-04-06 18:55:14 +00:00
Roger Dingledine
620419b421 oh, and accept() into the right place, too.
svn:r4029
2005-04-06 16:16:31 +00:00
Roger Dingledine
70f3b3ef86 Forward-port the checking of
sin_addr.s_addr == 0 || sin->sin_port == 0.
This just happened on moria2, so I guess it happens rarely
on Linux as well as OS X.
We can't afford to accept OR conns from 0.0.0.0:0, since we
send created cells back to the first addr:port that matches,
and we'd better not send them to the wrong place.
So, let's drop them all for now, and see if we can find a pattern
later.


svn:r4028
2005-04-06 15:42:35 +00:00
Roger Dingledine
9cbaf4603d fix an assert trigger: when we have the rare case of accepting
a conn on 0.0.0.0:0, then when we look through the connection array,
we'll find any of the workers. this is no good.


svn:r4027
2005-04-06 15:19:32 +00:00
Nick Mathewson
88dc243bb5 Rename circuit_get_by_stream to circuit_get_by_edge_conn, and actually start using it. Watch out, kids!
svn:r4026
2005-04-06 06:43:21 +00:00
Roger Dingledine
716d9bc99a when using preferred entry or exit nodes, ignore whether
the circuit wants uptime or capacity. they asked for the
nodes, they get the nodes.


svn:r4025
2005-04-06 06:17:35 +00:00
Nick Mathewson
4453e3794a Add a pointer from edge connections to their corresponding circuit (ulp!); add some debugging sanity-checking for cirid_orconn_map stuff
svn:r4024
2005-04-06 06:13:49 +00:00
Nick Mathewson
2a0b1025e5 Fix bug in last commit when no circid can be found
svn:r4023
2005-04-06 05:45:07 +00:00
Nick Mathewson
b34d9adb59 Fix format warning
svn:r4022
2005-04-06 05:44:05 +00:00
Roger Dingledine
94cecc712d note some features we intend to add.
svn:r4021
2005-04-06 05:35:06 +00:00
Nick Mathewson
b7cdcf3462 Hopefully, this will make ORs much faster, and not break them: keep a big splay tree of (circid,orconn)->circuit mappings to make circuit_get_by_circid_conn much faster.
svn:r4020
2005-04-06 05:33:32 +00:00
Roger Dingledine
712d05c19a a bit more data on gene's dns threading bug
svn:r4019
2005-04-06 05:32:24 +00:00
Roger Dingledine
5f0a84cbe2 update conn-type-state-strings to handle https states for ORs
svn:r4018
2005-04-06 04:55:17 +00:00
Nick Mathewson
3014b03b67 Add missing comma. Oops
svn:r4017
2005-04-06 03:20:06 +00:00
Nick Mathewson
88fe4d6292 Handle changed router status correctly when reloading fingerprint file
svn:r4016
2005-04-06 01:09:26 +00:00
Nick Mathewson
1b5e2182fa Log msg spelling fix
svn:r4015
2005-04-06 00:53:13 +00:00
Roger Dingledine
f860b490be When we're connecting to an OR and he's got a different nickname/key
than we were expecting, only complain loudly if we're an OP or an
authdirserver. Complaining loudly to OR admins just confuses people.


svn:r4014
2005-04-06 00:50:40 +00:00
Nick Mathewson
ac268a8340 Fix Tor for no-threading compilation: move connection_unregister from _connection_free to connection_free.
svn:r4013
2005-04-06 00:46:57 +00:00
Nick Mathewson
374edd356e Change replacement semantics for directory entries: fix bug 121.
svn:r4012
2005-04-06 00:01:35 +00:00
Nick Mathewson
4991290935 Revise control spec and implementation to allow all log messages to be sent to controller with their severities intact.
svn:r4010
2005-04-05 22:56:17 +00:00
Nick Mathewson
46be0fa999 Make last fix work on windows too.
svn:r4009
2005-04-04 21:53:26 +00:00
Nick Mathewson
0fff263a46 Fix possible bug on threading platforms with running out of fds do to cpuworkers and dnsworkers.
svn:r4008
2005-04-04 21:46:08 +00:00
Roger Dingledine
f1edeebf7d client now retries when streams end early for 'hibernating' or
'resource limit' reasons; refactor.


svn:r4004
2005-04-04 03:30:49 +00:00
Roger Dingledine
823b7d4d8b automatically approve nodes running 0.1.0.2-rc or later
svn:r4001
2005-04-03 19:01:47 +00:00
Nick Mathewson
1aedf3daf5 Only warn once per nickname from add_nickname_list_to_smartlist per failure.
svn:r3997
2005-04-03 05:53:34 +00:00
Nick Mathewson
11d20d78a0 Adjust maximum skew and age for rendezvous descriptors: adjust code to make skew add to age.
svn:r3995
2005-04-03 05:36:23 +00:00
Roger Dingledine
658463a751 clean up the circuit-mark-for-close patch
svn:r3994
2005-04-03 05:31:41 +00:00
Roger Dingledine
096879687a start sending 'truncated' cells back rather than destroy cells,
if the circuit closes in front of you.


svn:r3993
2005-04-03 05:25:26 +00:00
Nick Mathewson
0dc02328af Move most of *_mark_for_close out of macros.
svn:r3992
2005-04-03 05:22:33 +00:00
Nick Mathewson
055ee7c323 Give better warnings if connection_close_unattached_ap gets called twice or called on a marked connection; rename it to connection_mark_unattached_ap.
svn:r3990
2005-04-02 22:11:24 +00:00
Nick Mathewson
4a90d37229 Better messages when POSTDESCRIPTOR fails
svn:r3989
2005-04-02 22:02:13 +00:00
Roger Dingledine
13e211de17 We're printing the host mask wrong in exit policies in server descriptors.
I believe this isn't a critical bug tho, since we're still obeying the
exit policy internally.


svn:r3987
2005-04-02 08:55:31 +00:00
Roger Dingledine
8dbdbfb831 improved log error message
svn:r3986
2005-04-02 08:30:40 +00:00
Nick Mathewson
0e81265359 update copyright notices.
svn:r3982
2005-04-01 20:15:56 +00:00
Nick Mathewson
0d6c9c47b3 Short-term fix: prevent possible segfault in connection_close_unattached_ap
svn:r3970
2005-04-01 16:04:45 +00:00
Roger Dingledine
453a822425 when you decide you're reachable, actually publish your descriptor
right then.


svn:r3968
2005-04-01 09:28:14 +00:00
Roger Dingledine
1ff62dbd18 require exactly 0.0.9.7 for middle hops of testing circs, for now
svn:r3967
2005-04-01 09:23:51 +00:00
Roger Dingledine
e786e5dedb when building testing circuits, always use middle hops
running at least 0.0.9.7


svn:r3966
2005-04-01 08:42:26 +00:00
Roger Dingledine
a28ae7a70c fix assert: if our dirport isn't reachable yet, don't trick
*ourselves* into thinking the dirport is zero. but continue
to tell other people that it is.


svn:r3952
2005-04-01 07:42:32 +00:00
Roger Dingledine
cd25e56ad2 when the or-connect succeeded and the tls handshake succeeded
but we didn't like the result, we were closing the connection
without sending any destroys back for the pending circuits. now
send those destroys anyway; i hope this doesn't break too much.


svn:r3951
2005-04-01 07:25:18 +00:00
Nick Mathewson
73f6c1531e fix typo in earlier libevent mmessage suppress patch
svn:r3950
2005-04-01 07:16:52 +00:00
Roger Dingledine
003d9df6b0 authdirservers shouldn't do orport reachability detection,
since they're in clique mode, so it will be rare to find a
server not already connected to them.


svn:r3949
2005-04-01 07:09:18 +00:00
Nick Mathewson
410ecfcc71 Add code to suppress spurious libevent log msgs; use it to resolve bug 68.
svn:r3948
2005-04-01 07:05:21 +00:00
Roger Dingledine
2ff2db8d2a fix some log spacing problems
svn:r3942
2005-04-01 06:23:21 +00:00
Nick Mathewson
efe9ca659a Use recent libevent features when possible
svn:r3940
2005-04-01 02:37:40 +00:00
Nick Mathewson
e04a82ecaf Patch: when extending to an unknown router, compare identity to expected identity; not nickname-to-expected identity.
svn:r3937
2005-03-31 23:30:13 +00:00
Roger Dingledine
801d5ef1de spell recommended correctly
svn:r3936
2005-03-31 20:52:43 +00:00
Roger Dingledine
1f5c8335e8 still publish your descriptor if orport is reachable but dirport isn't
when building testing circs for orport testing, require high-bandwidth
nodes, so fewer circs fail. complain about unreachable orport separately
from unreachable dirport.


svn:r3935
2005-03-31 19:26:33 +00:00
Roger Dingledine
c2a05e1ca9 redo the state descriptors now that we have a controller-wait state
svn:r3934
2005-03-31 17:36:24 +00:00
Roger Dingledine
4f5192b280 ...and use it to make sure we only conclude reachability if
we didn't initiate the conn.


svn:r3932
2005-03-31 07:46:59 +00:00
Nick Mathewson
1bf1f44e74 Fix bug in redirectstream.
svn:r3926
2005-03-31 06:06:02 +00:00
Roger Dingledine
5bdab005c9 mark two more bugs. nick, can you take a look?
svn:r3920
2005-03-29 05:27:32 +00:00
Roger Dingledine
20a8eda31b don't check for reachability, and don't whine about it, while we're
hibernating.


svn:r3919
2005-03-29 03:48:31 +00:00
Roger Dingledine
7cf33ed495 resolve another 'hasn't sent end yet' bug
svn:r3911
2005-03-29 00:35:35 +00:00
Nick Mathewson
1612df7b2c Fix a couple more places where we use ->new_address without checking that it is there.
svn:r3907
2005-03-28 02:03:51 +00:00
Roger Dingledine
0e26973c02 make calls to address_is_in_virtual_range more bullet-proof.
might fix the assert failure i just got.


svn:r3906
2005-03-28 01:56:12 +00:00
Nick Mathewson
4246f6f8bc Clarify that we don't, and why we don't, need to redefine FD_SETSIZE.
svn:r3904
2005-03-28 01:07:14 +00:00
Roger Dingledine
96c331e4ed we seem to have lost our define for FD_SETSIZE on win32 in the change
from fakepoll to libevent. be sure to define it *before* we include
winsock.


svn:r3903
2005-03-27 22:52:48 +00:00
Roger Dingledine
9b5432214d but only do the rapid reachability testing if we're hoping to be a server.
svn:r3902
2005-03-27 11:52:15 +00:00
Roger Dingledine
b8fe866a9d forward-port the fixing of the crash bug.
svn:r3900
2005-03-27 07:18:30 +00:00
Roger Dingledine
92acd64da0 if your server hasn't found itself to be reachable, complain every
20 minutes, not just once.


svn:r3897
2005-03-27 06:50:36 +00:00
Roger Dingledine
7a79acd9f6 clean up socks reply stuff more.
add a few more reasons so we can be more informative.


svn:r3895
2005-03-27 06:37:56 +00:00
Nick Mathewson
ce854906db Rename ManageConnections to LeaveStreamsUnattached. Apparently, there was a missing "TorShould" that was mistaken for an "IWantTo".
svn:r3894
2005-03-27 06:25:33 +00:00
Roger Dingledine
36baf7219d stop most cases of hanging up on a socks connection without sending
the socks reject. audit for remaining ones. also make things more
uniform so we always remember to hold-open-until-flushed, etc.


svn:r3891
2005-03-27 04:55:13 +00:00
Roger Dingledine
4533a46e41 move the assert higher up so the error message makes more sense
next time.


svn:r3887
2005-03-26 06:27:51 +00:00
Roger Dingledine
fcfe6d2e8b fix assert: stop trying to send a socks reply to an *exit*
connection when we get an end cell before it's finished opening.


svn:r3886
2005-03-26 06:27:04 +00:00
Roger Dingledine
b8d38dc57b try harder to establish reachability, in the first 20 minutes
of uptime.


svn:r3884
2005-03-26 05:54:50 +00:00
Roger Dingledine
1328383482 make it clearer to the human that his server is testing
its reachability. tell him when it succeeds, or when 20
minutes pass and it hasn't succeeded yet.


svn:r3882
2005-03-26 01:43:39 +00:00
Roger Dingledine
570da8a8e8 and fill in another missing socks reply
svn:r3877
2005-03-25 11:23:03 +00:00
Roger Dingledine
9b9dbad0b7 fix another case where we need to send a socks reply (reject)
back before we close the conn.


svn:r3876
2005-03-25 11:12:14 +00:00
Roger Dingledine
8945df8daa remove dead code
svn:r3875
2005-03-25 10:55:49 +00:00
Roger Dingledine
9685164fe5 don't mark a router down just because your httpsproxy is unreachable
svn:r3874
2005-03-25 10:55:06 +00:00
Nick Mathewson
d26bcfab92 Note where connection that hasnt sent end was marked.
svn:r3872
2005-03-25 05:54:50 +00:00
Roger Dingledine
bd37c9a3bd REUSEADDR on normal places means you can rebind to the port
right after somebody else has let it go. But REUSEADDR on win32
means to let you bind to the port _even when somebody else
already has it bound_. So, don't do that on Win32.


svn:r3867
2005-03-24 23:20:06 +00:00
Roger Dingledine
4abb54a876 forward-port the circuit_resume_edge_reading_helper fix.
svn:r3863
2005-03-24 21:57:45 +00:00
Roger Dingledine
fa3c9d94bc when you attachstream to a circid of 0, send back an answer
svn:r3857
2005-03-24 06:28:21 +00:00
Roger Dingledine
09ef2b7e41 cleanup so connection_ap_handshake_attach_chosen_circuit() always
gets open circs.


svn:r3856
2005-03-24 06:18:59 +00:00
Nick Mathewson
13fdf51bc1 Bulletproof connection_ap_handshake_attach_chosen_circuit
svn:r3855
2005-03-24 06:05:14 +00:00
Nick Mathewson
8e8915f3ca Fix SOCKS5 bug: Set replylen to 0 after sending hanshake back
svn:r3850
2005-03-24 01:11:28 +00:00
Nick Mathewson
0cfdeb01c8 Debug EXTENDCIRCUIT
svn:r3849
2005-03-24 01:08:25 +00:00
Roger Dingledine
0dc91fd9c0 fix an assert -- we're not allowed to write onto a conn after we've
connection_unregistered it. there's still more work to be done here,
since we need to make sure to send back the socks-reply as soon as we
know what it will be -- we can't just wait until connection-about-to-close
to deal with it.


svn:r3847
2005-03-23 23:19:18 +00:00
Roger Dingledine
fb8a319ffe fix an over-eager assert, to make httpsproxy get a little farther
svn:r3846
2005-03-23 22:11:59 +00:00
Roger Dingledine
a799dad937 forward-port the commenting out of the assert that glenn fink was
triggering. we still don't know why he was triggering it.


svn:r3841
2005-03-23 20:42:37 +00:00
Nick Mathewson
4ee6addf57 Fix bug 44: on HUP, if descriptor building fails (say, because router_get_my_address() fails), use old descriptor and warn.
svn:r3839
2005-03-23 20:28:40 +00:00
Nick Mathewson
6e4bccc4ac Make GETINFO for "network-status" work on non-authdirs
svn:r3837
2005-03-23 19:15:10 +00:00
Nick Mathewson
b9016bd18f Fix several bugs (including some crashes) related to control interface; implement missing desc/name functionality.
svn:r3836
2005-03-23 08:40:11 +00:00
Nick Mathewson
0b7a9e2e7b Be willing to cache directories from up to ROUTER_MAX_AGE seconds into the future, now that we are more tolerant of skew.
svn:r3832
2005-03-23 06:39:53 +00:00
Nick Mathewson
631ab5c69b Add a magic value to cpath_layer_t to make sure that we can tell valid cpaths from freed ones. I audited this once; it could use another audit.
svn:r3831
2005-03-23 06:21:48 +00:00
Nick Mathewson
905c16846a Fix a few more instances of memory not freed on exit (found by weasel).
svn:r3830
2005-03-23 06:20:50 +00:00
Nick Mathewson
b7ce4d1d3d Correct fix for self-to-self addressmap; simplify replace-old-entry logic; add missing case.
svn:r3829
2005-03-23 05:32:06 +00:00
Roger Dingledine
22386ecf1e whoops, fix seg fault i just introduced
svn:r3828
2005-03-23 03:02:44 +00:00
Roger Dingledine
7373042a7b fix assert triggers (bugs 109 and 96), and put in some
debugging logs to notice future repeat bugs.


svn:r3826
2005-03-23 02:52:55 +00:00
Roger Dingledine
a523439cbc maybe resolve an assert trigger i just got:
connection_edge.c:643 address_is_in_virtual_range: Assertion addr failed; aborting.
nick, what do you think?


svn:r3825
2005-03-23 00:19:51 +00:00
Roger Dingledine
e28b8aaa40 make httpsproxy more likely to work
(don't let OR conns do tls until they've finished connecting and
doing the proxy dance.)


svn:r3824
2005-03-22 23:57:18 +00:00
Roger Dingledine
21b1adefbb fix a 32bit/64bit sprintf mixup that weasel pointed out
svn:r3823
2005-03-22 23:27:29 +00:00
Roger Dingledine
ad5f5ddf7e remove a duplicate circuit_mark_for_close() when picking
a path for the circuit fails.


svn:r3822
2005-03-22 23:20:33 +00:00
Roger Dingledine
6659cd5e8e options->MaxAdvertisedBandwidth only replaces advertised
bandwidthrate, not advertised bandwidthcapacity


svn:r3818
2005-03-22 20:41:28 +00:00
Nick Mathewson
ab1d0049a2 Prevent spurious closes when we put stuff on a conn that has not written for a while.
svn:r3816
2005-03-22 20:25:51 +00:00
Roger Dingledine
8a763b5ae3 cleanup and a question
svn:r3815
2005-03-22 20:04:00 +00:00
Nick Mathewson
7a0072cc1a Specify and implement close-stream and close-circuit control messages
svn:r3814
2005-03-22 19:36:38 +00:00
Nick Mathewson
ec81f87018 Implement an option to cap bandwidth-to-advertise. Arma: can you improve the manpage entry by explaining why you would want to do this?
svn:r3813
2005-03-22 19:01:46 +00:00
Nick Mathewson
2d662bf773 Clear up a couple of pedantic compiler warnings
svn:r3812
2005-03-22 18:56:11 +00:00
Nick Mathewson
2d40991427 Report HTTP reasons to directory clients. (Also, fix format on new TODO items)
svn:r3811
2005-03-22 18:43:24 +00:00
Roger Dingledine
d6a0e5bcc9 when reporting events about streams, use the "real" address for
the stream, including the requested .exit address.


svn:r3810
2005-03-22 10:34:23 +00:00
Roger Dingledine
e07e0a4732 remove obsolete code
svn:r3809
2005-03-22 10:34:00 +00:00
Nick Mathewson
c4470cbedf be more explicit about why we are expiring a conn; improve logic a bit too
svn:r3808
2005-03-22 06:21:35 +00:00
Nick Mathewson
f5989afde2 Add opt hibernating; fix bug 78
svn:r3807
2005-03-22 06:08:28 +00:00
Roger Dingledine
76a03e8635 handle_control_getinfo() was counting msg_len itself,
when that's actually smartlist_join_strings2()'s job.


svn:r3806
2005-03-22 05:41:05 +00:00
Roger Dingledine
ed9524a626 Remove controller getinfo support for "desc/all-ids".
Replace it with getinfo "network-status" just like in directories.
This way the controller can learn which servers are running, which
are verified, etc.


svn:r3801
2005-03-22 03:27:51 +00:00
Roger Dingledine
8d1460c858 tell me the address of the guy who's trying to attack my dirserver
svn:r3799
2005-03-22 01:18:50 +00:00
Roger Dingledine
f1ba4296c1 clean up and refactor some more
svn:r3798
2005-03-22 01:01:15 +00:00
Roger Dingledine
35953edae0 Implement controller's "extendcircuit" directive.
Also refactor circuit building so we plan the whole path ahead
of time.


svn:r3797
2005-03-22 00:42:38 +00:00
Roger Dingledine
4a497e5030 if our clock jumps forward by 100 seconds or more, assume something
has gone wrong with our network and abandon all not-yet-used circs.


svn:r3792
2005-03-19 23:58:42 +00:00
Roger Dingledine
856ab90ca8 stop logging at -l notice every single time a create cell successfully
gets processed


svn:r3791
2005-03-19 23:04:15 +00:00
Roger Dingledine
fbeaeb138e and forward-port the missing space
svn:r3789
2005-03-19 20:30:23 +00:00
Nick Mathewson
b88c4ba11c Turn addr_policy_compare from a tristate to a quadstate; this should help address our "Ah, you allow 1.2.3.4:80. You are a good choice for google.com" problem.
svn:r3786
2005-03-19 06:57:16 +00:00
Nick Mathewson
07a7b6af64 Implement redirectstream in control interface.
svn:r3785
2005-03-19 06:05:55 +00:00
Roger Dingledine
963ddf2953 fix typo
svn:r3784
2005-03-19 05:09:13 +00:00
Nick Mathewson
11aa682812 Split version info into separate spec doc.
svn:r3783
2005-03-19 05:07:19 +00:00
Roger Dingledine
ec7f232b24 make hidden services more likely to work from the server-side
svn:r3781
2005-03-19 04:38:59 +00:00
Nick Mathewson
b004eda10c Enable NT service code by default
svn:r3780
2005-03-19 01:04:05 +00:00
Nick Mathewson
df9c8feac7 Commit fixes for several pending tor core tasks: document all DOCDOCed functions; time out uncontrolled unattached streams; feed reasons to SOCKS5 (refactoring connection_ap_handshake_socks_reply in the process); change DirFetchPeriod/StatusFetchPeriod to have a special "Be smart" value.
svn:r3769
2005-03-17 12:38:37 +00:00
Roger Dingledine
229761465c re-enable reachability testing stuff.
also, consider your ORPort reachable after you've processed a
create cell from any non-local address.


svn:r3763
2005-03-15 01:44:46 +00:00
Roger Dingledine
316afb6d09 fix an assert trigger in cvs: if a resolve request fails, and the circuit
has vanished in the meantime, then we would both mark it for close
(i.e. put it on the closeable list) and also immediately free it.


svn:r3759
2005-03-14 04:42:52 +00:00
Nick Mathewson
0197b47ce9 Fix some more obscure compiler warnings
svn:r3758
2005-03-14 03:28:46 +00:00
Nick Mathewson
97dad670ea Renormalize whitespace
svn:r3757
2005-03-14 03:18:35 +00:00
Nick Mathewson
fd150459b3 Raise common code for "detach this stream and try it with a different circuit" into a separate function; make that function handle controller-managed streams right.
svn:r3756
2005-03-14 03:12:59 +00:00
Roger Dingledine
cabb8624e2 bugfix: now that we don't do the client dns thing, our checks
to see if somebody was contradicting his exit policy were wrong.


svn:r3755
2005-03-13 05:53:17 +00:00
Roger Dingledine
01f0b31432 ShutdownWaitLength should be an interval, not a uint
svn:r3753
2005-03-12 20:16:52 +00:00
Roger Dingledine
fe768d1d2a change SHUTDOWN_WAIT_LENGTH from a fixed 30 secs to a config option
svn:r3752
2005-03-12 20:13:38 +00:00
Nick Mathewson
115271f65e Implement the common case of ATTACHSTREAM.
svn:r3751
2005-03-12 04:22:01 +00:00
Nick Mathewson
2b7907ef42 Increment step of a for loop should only happen once.
svn:r3746
2005-03-11 21:42:32 +00:00
Nick Mathewson
777d3dde0c Get address map resetting implemented.
svn:r3745
2005-03-11 21:39:39 +00:00
Nick Mathewson
b17bb918ac Remove unused macro; add a comment on remaining macros.
svn:r3744
2005-03-11 21:38:06 +00:00
Roger Dingledine
5254c4e63a remove duplicate function prototype
svn:r3743
2005-03-11 20:47:23 +00:00
Geoff Goodell
af15c711c9 redefining default exit policy as per or-talk discussion
svn:r3739
2005-03-11 05:07:31 +00:00
Nick Mathewson
99cc6bae0d Fix error codes to work on windows
svn:r3738
2005-03-10 18:48:13 +00:00
Nick Mathewson
6394f77edb Initialize msg_len
svn:r3737
2005-03-10 18:46:11 +00:00
Nick Mathewson
aaf70df3bd Fix signed/unsigned warning
svn:r3736
2005-03-10 18:45:42 +00:00
Nick Mathewson
a308353600 Fix const-ness warning
svn:r3733
2005-03-10 06:15:46 +00:00
Nick Mathewson
c185825585 Finish implementing GETINFO; make it easy to query address maps.
svn:r3732
2005-03-03 06:37:54 +00:00
Nick Mathewson
f90ccf5648 Implement new controller events for changed descriptors and new (not-yet-attached) streams.
svn:r3731
2005-03-02 22:29:58 +00:00
Nick Mathewson
4b5e213a0b Separate reverse-virtual-address-map entries into ipv4 and hostname slots. Otherwise if you ask me to map "some IPv4 address" to foo.onion, I might tell you that I already mapped "bar.virtual" to foo.onion
svn:r3730
2005-03-02 22:01:10 +00:00
Nick Mathewson
5315b61e13 Fix some log messages to refer to correct control type.
svn:r3729
2005-03-02 21:59:36 +00:00
Nick Mathewson
5f8e2c2bc4 Rename unused-address functions to virtual address; this is more accurate. Also, include almost-right implementation of reusing dont-care mappings. (It is still kind of wrong because it does not take type into account.)
svn:r3728
2005-03-02 21:02:11 +00:00
Nick Mathewson
b494c2223d Specify and implement fragmented control messages to allow for (among other things) long GETINFO replies. Otherwise we could hit the 64K barrier on questions like "please dump your client-side DNS cache."
svn:r3726
2005-03-02 20:22:10 +00:00
Nick Mathewson
65230fd39f Implement "Dont-Care" from addresses to MapAddress control message. For safety, refuse to launch connections to unmapped addresses in the dont-care range.
svn:r3725
2005-03-02 19:26:46 +00:00
Nick Mathewson
e14f812a67 Still more code to make sure we send the right number and kind of RELAY END cells
svn:r3723
2005-03-02 03:13:05 +00:00
Nick Mathewson
afe414f070 Revise all calls to connection_edge_end to avoid sending MISC, and to take errno into account where possible.
svn:r3720
2005-03-01 22:42:31 +00:00
Nick Mathewson
4ddf768a4f Forward-port new reasons; clean up code more; add code to convert new reasons to SOCKS5 reply codes; add code to convert errnos to reasons. New code still needs to get invoked.
svn:r3719
2005-03-01 22:16:15 +00:00
Nick Mathewson
83743d64ab Change version parsing logic: a version is "obsolete" if it is not recommended and (1) there is a newer recommended version in the same series, or (2) there are no recommended versions in the same series, but there are some recommended versions in a newer series. A version is "new" if it is newer than any recommended version in the same series.
svn:r3716
2005-03-01 01:44:57 +00:00
Nick Mathewson
b7b05dc1b2 make control interface stream IDs monotonically increasing to prevent possible races
svn:r3715
2005-03-01 01:15:01 +00:00
Nick Mathewson
349ee1abea Clean up rend cache on shutdown
svn:r3714
2005-02-28 22:38:00 +00:00
Roger Dingledine
b961d1c3bd disable the reachability detection stuff in cvs, so people can
run servers from cvs while i'm gone.


svn:r3712
2005-02-28 09:39:12 +00:00
Nick Mathewson
c5091e7134 When copying routerinfo, copy descriptor too to prevent later double-free.
svn:r3711
2005-02-28 03:37:27 +00:00
Nick Mathewson
97bc49bd72 Try a little harder to avoid openssl SSL* double-free reports.
svn:r3710
2005-02-28 02:52:51 +00:00
Roger Dingledine
b3177d509e free some more memory at shutdown
svn:r3707
2005-02-28 01:59:18 +00:00
Roger Dingledine
25ff3a5042 fix bug in control mapaddress
svn:r3705
2005-02-27 23:20:48 +00:00
Roger Dingledine
3cef60a0f7 fix a minor memory leak
svn:r3704
2005-02-27 22:08:01 +00:00