Nick Mathewson
51da58eccf
fix braino in dirserv.
...
svn:r5075
2005-09-15 21:10:58 +00:00
Nick Mathewson
e72e76cad6
Make authdirs smarter. Reject/invalidate by key and IP. Remember that not every authdir has to be a naming authdir.
...
svn:r5074
2005-09-15 14:39:05 +00:00
Nick Mathewson
ed21abfe87
And some documentation before bed.
...
svn:r5073
2005-09-15 06:15:31 +00:00
Nick Mathewson
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
bc0af7046a
Oops. directory_set_dirty() needs to mark networkstatus as dirty too.
...
svn:r5066
2005-09-14 23:14:37 +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
4efa652a98
add docs, fix whitespace, and make ANY rule in routerparse a little tighter.
...
svn:r5031
2005-09-13 21:14:55 +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
569efe61c0
make the patch less likely to bite us later
...
svn:r5021
2005-09-12 21:42:59 +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
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
Nick Mathewson
dcf1e14190
downgrade warning to info
...
svn:r4967
2005-09-09 21:03:57 +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
Nick Mathewson
a938190bdb
Iteration is happier when you stop.
...
svn:r4950
2005-09-08 21:20:20 +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
Nick Mathewson
eab005c948
Ensure case match, not mismatch.
...
svn:r4935
2005-09-08 18:34:41 +00:00
Nick Mathewson
548a863779
Avoid assertion failure
...
svn:r4931
2005-09-08 18:14:23 +00:00
Roger Dingledine
36fa360c11
and fix grammar
...
svn:r4925
2005-09-08 06:49:23 +00:00
Nick Mathewson
8f37357193
Make GCC v4 happy with heavy warnings enabled.
...
svn:r4922
2005-09-08 06:37:50 +00:00
Roger Dingledine
0ac3c58480
clean up comments for router_is_general_exit()
...
svn:r4917
2005-09-08 05:23:55 +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
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
9bc3d34682
Add contact field to generated network-status objects
...
svn:r4897
2005-09-02 20:30:03 +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
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
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
e3a058f33a
Change semantics of set_cached_dir; fix massive authdir memleak.
...
svn:r4880
2005-08-28 04:20:37 +00:00
Nick Mathewson
ed070b0fdb
Set a variable that exists. That works better.
...
svn:r4868
2005-08-26 22:16:09 +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
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
f559c49c39
Make network-status strings wellformed
...
svn:r4857
2005-08-26 21:11:53 +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
f3bccdce73
if dirservers set assumereachable, it overrides their individual
...
reachability testing
svn:r4851
2005-08-26 20:08:12 +00:00
Nick Mathewson
0239249160
Only free strmap if it is allocated.
...
svn:r4846
2005-08-26 18:48:13 +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
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
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
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
50452c32ec
fix bug 180: handle duplicate lines in approved-routers files.
...
svn:r4825
2005-08-23 22:00:35 +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
Nick Mathewson
18c11eb3bc
Be consistent about preferring foo* to struct foo*
...
svn:r4637
2005-07-22 21:12:10 +00:00
Roger Dingledine
7c7c95c3f6
anonymous bugfix on our pointer arithmetic
...
svn:r4535
2005-07-12 22:56:06 +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
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
d4972bd2e1
Remove code that has been #if-0ed for a long time.
...
svn:r4435
2005-06-15 18:34:46 +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
fcd0fc3364
flesh out the source file descriptions for doxygen
...
svn:r4404
2005-06-11 05:31:17 +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
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
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
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
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
bf79b5266f
those should be notices, not warns
...
svn:r4079
2005-04-12 22:09:04 +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
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
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
Nick Mathewson
374edd356e
Change replacement semantics for directory entries: fix bug 121.
...
svn:r4012
2005-04-06 00:01:35 +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
0e81265359
update copyright notices.
...
svn:r3982
2005-04-01 20:15:56 +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
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
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
Nick Mathewson
bbaa3c7792
Implement more control spec functionality
...
- Mapaddress
- Postdescriptor
- GetInfo on descriptors
Required changes elsewhere:
- Keep the most recent running_routers_t in the routerlist_t. That way we
can learn about new routers and remember whether we were last told that
they were up or down. Also enables more simplifications.
- Keep the signed descriptor inside routerinfo_t. This makes
descriptor_entry_t in dirservers.c unneeded.
- Rename AddressMap (the verb) to MapAddress. Keep AddressMap as a noun.
- Check addresses for plausibility before mapping them.
svn:r3696
2005-02-25 20:46:13 +00:00
Nick Mathewson
60f234f42b
Add more functions to free things to help dmalloc allong.
...
svn:r3613
2005-02-10 23:18:39 +00:00
Peter Palfrader
d19aaa9a46
Fix arma's fix for my leak
...
svn:r3485
2005-01-31 23:47:25 +00:00
Roger Dingledine
ab8691c343
fix a minor memory leak found by weasel
...
svn:r3484
2005-01-31 20:38:57 +00:00
Roger Dingledine
191e52179c
distinguish between "well-formed and rejected" and "not well
...
formed", when parsing server descriptors.
svn:r3458
2005-01-29 11:23:34 +00:00
Roger Dingledine
7fd8dfe6ea
accept LDAP (389/tcp) and LDAPS (636/tcp) in default exit policy
...
svn:r3457
2005-01-29 11:16:23 +00:00
Nick Mathewson
de9b46ad64
clean a couple of messages
...
svn:r3401
2005-01-21 23:16:07 +00:00
Nick Mathewson
fd41cbcadf
Have reason string for serverdesc post requests contain actual serverdesc status. Also fix return values of dirserv_add_descriptor to work as advertised.
...
svn:r3391
2005-01-20 20:18:32 +00:00
Roger Dingledine
cd1f50d2f0
new config option DirAllowPrivateAddresses for authdirservers.
...
now by default they refuse router descriptors that have non-IP
or private-IP addresses.
svn:r3321
2005-01-06 21:03:27 +00:00
Nick Mathewson
91bafc476e
Fix a fun bug: do not rewrite a cached directory back to the cache; otherwise we will think it is recent and not fetch a newer one.
...
svn:r3319
2005-01-06 20:11:52 +00:00
Roger Dingledine
59504f4831
bugfix: if a server uploads a descriptor that's unapproved, actually
...
tell him so.
svn:r3243
2005-01-03 17:47:32 +00:00
Nick Mathewson
ded8e79979
remove sentence-fragment comment refering to a design that never happened.
...
svn:r3220
2004-12-24 02:50:27 +00:00
Nick Mathewson
e8585dfe97
Remove length restriction when generating directories.
...
svn:r3218
2004-12-24 02:17:32 +00:00
Nick Mathewson
7117366810
Fix for running-routers length bug
...
svn:r3216
2004-12-24 01:41:52 +00:00
Roger Dingledine
011ad3cba5
clean up logging,
...
make it clearer which warns are bugs,
make the control log event match its specification,
point out a bug in how we deal with failure when renewing the tls context.
svn:r3138
2004-12-13 00:44:39 +00:00
Nick Mathewson
b457cfb5eb
Spell-check strings and comments
...
svn:r3052
2004-12-01 03:48:14 +00:00
Nick Mathewson
7fbd297532
Suggestion from weasel: Make tor --version --version dump the cvs Id of every file.
...
svn:r3019
2004-11-29 22:25:31 +00:00
Roger Dingledine
22727b4edc
wrong is ok, and right is fine, but in between is apparently
...
totally unacceptable to me.
svn:r3005
2004-11-28 11:39:53 +00:00
Nick Mathewson
6f5dbefa7e
Normalize space: add one between every control keyword and control clause.
...
svn:r3003
2004-11-28 09:05:49 +00:00
Roger Dingledine
7c9a707900
remove emacs droppings, since nick says he doesn't need them anymore
...
svn:r2989
2004-11-26 04:00:55 +00:00
Nick Mathewson
f91152ce6a
Clarify a bunch of log messages
...
svn:r2983
2004-11-25 04:20:10 +00:00
Nick Mathewson
22dba27d8d
Normalize a few more kinds of whitespace. We now dislike:
...
- func (args)
- if (x){
This doesn't normalize if(x), for(x); while(x), and friends.
svn:r2943
2004-11-22 23:28:26 +00:00
Nick Mathewson
7a8ac5dfef
Tweak on patch to make authoritative directory servers cache
...
directories on disk. Make authdirservers cache *their own*
directories instead of the ones they download. This gives better
liveness, and marginally better resistance to broken authdirservers.
Authdirservers don't cache running-routers at all: r-r isn't stored to
disk, so there's no point right now.
svn:r2893
2004-11-15 16:17:59 +00:00
Roger Dingledine
dbd4dadff7
Authoritative dirservers now also cache the directory, since
...
they weren't writing anything into their datadirectory, so
when they stop and start, they would know nothing until they
fetched a directory from another authdirserver.
svn:r2891
2004-11-15 09:38:17 +00:00
Nick Mathewson
22a0d82749
Cache running-routers; compress running-routers; serve compressed running-routers.z
...
svn:r2883
2004-11-15 04:04:20 +00:00
Nick Mathewson
5a5be93f80
Normalize whitespace; add a "tell me about all the unnormalized whitespace" target; fix a braino in dirserv.c
...
svn:r2758
2004-11-09 20:04:00 +00:00
Nick Mathewson
cd753df7bf
Resolve many XXXs and all DOCDOCs
...
svn:r2755
2004-11-09 18:22:17 +00:00
Nick Mathewson
548d4174ef
When listing router status, include ourself if we are awake
...
svn:r2752
2004-11-09 17:12:56 +00:00
Roger Dingledine
b773045a58
only non-authdirservers cache the dir they just fetched
...
svn:r2747
2004-11-09 10:38:42 +00:00
Roger Dingledine
cad26b343d
once normalized, DataDirectory is always defined
...
svn:r2734
2004-11-09 07:20:21 +00:00
Roger Dingledine
6521c2ce51
Stop using the wrong DataDirectory when we're validating.
...
Also validate/normalize the DataDirectory better.
svn:r2732
2004-11-09 07:05:53 +00:00
Roger Dingledine
394554cfbf
Clean up copyrights.
...
Break connection_consider_empty_buckets() out of
connection_read_bucket_decrement().
svn:r2698
2004-11-07 01:33:06 +00:00
Roger Dingledine
6c61ed4fb5
Make options no longer a global variable.
...
Now we can try setting an option but back out if it fails to parse, or
if it's disallowed (e.g. changing RunAsDaemon from 1 to 0).
Use parse_line_from_str rather than parse_line_from_file.
svn:r2692
2004-11-06 05:18:11 +00:00
Nick Mathewson
451f8b5045
- Implement all of control interface except authentication, setconfig,
...
and actually making the sockets.
- Make sure that identity-based nicknames start with $.
- Use new string_join interface.
svn:r2661
2004-11-03 18:33:07 +00:00
Nick Mathewson
ad4dc74482
Use a stricter set of warnings; make them all pass.
...
svn:r2645
2004-11-02 03:02:17 +00:00
Roger Dingledine
85c79ffbc7
canonicalize "src" and "dest" arg order in crypto.c (and others)
...
svn:r2644
2004-11-02 02:28:51 +00:00
Nick Mathewson
11d330be5e
Tweaks to prevent obsolete restarting tors from hammering the dirservers. (1) Cache a received directory as soon as the signature checks out. (2) Treat a cached directory as "recent" based on its mtime. (3) If we have a recent directory, we dont need to fetch a newer one for DirFetchPostPeriod. This needs review!
...
svn:r2618
2004-10-28 18:37:52 +00:00
Nick Mathewson
6874c39904
Fix windows build
...
svn:r2613
2004-10-27 18:14:38 +00:00
Roger Dingledine
75ad4615d1
stop freeing arbitrary memory
...
fix a couple of memory leaks
svn:r2611
2004-10-27 12:34:02 +00:00
Nick Mathewson
6980929e64
Use strlcpy, not strcpy.
...
svn:r2610
2004-10-27 06:48:16 +00:00
Nick Mathewson
44d4516155
Use tor_snprintf, not snprintf
...
svn:r2609
2004-10-27 06:37:34 +00:00
Nick Mathewson
f67f83b1fa
Use strlcpy, not strncpy
...
svn:r2603
2004-10-27 06:03:28 +00:00
Nick Mathewson
bc62f8e983
Replace sprintf with snprintf
...
svn:r2602
2004-10-27 05:53:07 +00:00
Nick Mathewson
b90b2bb848
Add and document router-status line using new unified liveness/verifiedness format; continue to generate running-routers; continue to parse running-routers when no router-status line is found
...
svn:r2592
2004-10-27 00:48:51 +00:00
Nick Mathewson
01eacbca9e
Make RecommendedVersions a CONFIG_TYPE_LINELIST option, and have it tolerate whitespace a little better.
...
svn:r2528
2004-10-15 05:09:48 +00:00
Roger Dingledine
aebc3a03ba
more int to size_t conversions, fixing one or more amd64 bugs
...
plus a whitespace patch on config.c from vicman
svn:r2482
2004-10-14 02:47:09 +00:00
Nick Mathewson
55634e4eec
Fix comment in dirserv.c
...
svn:r2470
2004-10-13 20:28:46 +00:00
Roger Dingledine
2b7b86f5e6
stop trying to print a NULL
...
plus make router_nickname_is_approved() more obviously unused
svn:r2469
2004-10-13 20:17:45 +00:00
Nick Mathewson
afd8b650ee
hex-to-hex compare makes more sense than hex-to-bin.
...
svn:r2463
2004-10-13 19:17:27 +00:00
Roger Dingledine
a1041154eb
fix const char * vs char * issue
...
plus unshadow some variables
svn:r2460
2004-10-13 04:44:37 +00:00
Nick Mathewson
9c49947163
Check fingerprint list before generating running-routers lists; also add as-yet-uncalled function to update an OR connection nickname on the fly
...
svn:r2458
2004-10-13 01:13:37 +00:00
Nick Mathewson
43ef5a3e37
Add long-term format for dir-signing-key fields (commented out)
...
svn:r2442
2004-10-12 15:52:57 +00:00
Nick Mathewson
c7e8c2098a
Include a dir-signing-key token in directories to tell the parsing entity which key is being used to sign. This is the first step in obsoleting the dirservers file.
...
svn:r2428
2004-10-07 21:10:40 +00:00
Nick Mathewson
ce3162d035
Make base-64-encoded DER work, including workaround for ugly openssl misfeature that makes base64 decoding fail when you strip out the newlines.
...
svn:r2423
2004-10-07 03:11:42 +00:00
Nick Mathewson
2bba65148b
Refactor fingerprint handling: remember hex digests (no spaces) instead of beautified fingerprints
...
svn:r2422
2004-10-06 13:31:48 +00:00
Nick Mathewson
9e8ae9766e
Only check versions against downloaded directories, not cached directories.
...
svn:r2413
2004-10-03 02:37:52 +00:00
Roger Dingledine
3f4b544b77
use size_t rather than int for directory lengths in memory
...
this might fix a bug with amd64
svn:r2410
2004-10-01 21:02:12 +00:00
Roger Dingledine
136d4e5739
prefer tor_free to free
...
plus complain more loudly when we fail to parse a dir we just fetched
svn:r2401
2004-09-29 06:52:36 +00:00
Roger Dingledine
a31ba30ae6
if our local cached directory is new enough, go ahead and
...
start building circuits while we're fetching a new one
svn:r2394
2004-09-28 23:27:41 +00:00
Roger Dingledine
4b3001a08c
fix some local buffer overflows
...
fix a memory leak
svn:r2391
2004-09-28 22:38:21 +00:00
Nick Mathewson
d20d10f360
If we are an authoritative dirserver, check out the fingerprint list when setting connection nicknames
...
svn:r2389
2004-09-28 22:24:56 +00:00
Roger Dingledine
9f9f0e5edd
fix another bug with cached compressed directories
...
still not working
svn:r2383
2004-09-27 07:28:48 +00:00
Roger Dingledine
d0edf8e8b5
fix two bugs with cached directories:
...
- don't complain that you won't cache it, then cache it anyway.
- change confusing terminology from 'deflate' to 'compress', so
we'll stop getting our logic backwards. i assume the rfc author
has shot himself by now.
svn:r2382
2004-09-27 06:57:16 +00:00
Roger Dingledine
185b9fddf2
protect dirservers from overzealous descriptor uploading
...
wait 10 seconds after directory gets dirty, before regenerating
svn:r2370
2004-09-23 19:58:44 +00:00
Nick Mathewson
c20b24c952
clean up/bugfix deflate logic and log messages
...
svn:r2359
2004-09-21 18:09:38 +00:00
Nick Mathewson
0ef85f6dba
Some platforms have weird translations when you open files in "test" mode; make read/write_str_to_file aware.
...
svn:r2336
2004-09-08 07:16:34 +00:00
Nick Mathewson
c66e4c4870
Flush more changes from sandbox
...
- make clients cache directories and use them to seed their router lists
at startup. This means clients have a datadir again.
- Introduce a global_write_bucket. We need to respond better to exhausting
it.
- Remove the last vestiges of LinkPadding and TrafficShaping.
- Configuration infrastructure support for warning on obsolete options.
- Refactor directory header parsing to use smartlist_split_string.
- Respond to content-encoding headers by trying to uncompress as appropriate.
- Reply with a deflated directory when a client asks for "dir.z".
(We could use allow-encodings instead, but allow-encodings isn't
specified in HTTP 1.0.)
svn:r2335
2004-09-08 06:52:33 +00:00
Nick Mathewson
d6e47bec46
Keep a deflated version of each directory so we can deliver it when requested
...
svn:r2328
2004-09-02 18:57:09 +00:00
Roger Dingledine
7506cce649
stop wasting cpu time on authdirservers
...
we were making a new directory only when the old one was dirty, but
every time we made one, we'd dirty it by testing it right then.
svn:r2199
2004-08-08 11:15:38 +00:00
Nick Mathewson
f6cc218742
Refactor ISO-style (yyyy-mm-dd hh:mm:ss) time parsing into util.c; rename format/parse_rfc1123_time; make rephist remember used bandwidth; published used bandwidth in descriptors in 15-minute chunks. Breaks unittests.
...
svn:r2182
2004-08-07 02:46:16 +00:00
Roger Dingledine
e95ae1c9ad
let purging routerinfos and descriptors take an age argument
...
svn:r2171
2004-08-06 22:15:25 +00:00
Nick Mathewson
3ca2728eb2
(size_t)-1 is never < 0; fix an XXXX008 by changing the interface for dirserv_get_runningrouters
...
svn:r2165
2004-08-06 20:00:16 +00:00
Roger Dingledine
1d41c0ee35
note a bug that adam found
...
svn:r2150
2004-08-06 02:27:06 +00:00
Nick Mathewson
5b61dd0457
Fix all warnings on win32 build
...
svn:r2127
2004-08-03 23:57:05 +00:00
Roger Dingledine
a328aab316
clean whitespace and tabs
...
svn:r2115
2004-07-22 23:21:12 +00:00
Roger Dingledine
aebec8ab9e
stop using atexit() to remove our pid, since it's called
...
immediately when we daemonize.
also drop our retry period for hidserv desc uploads from 10m to 5m
svn:r2111
2004-07-22 22:15:36 +00:00
Nick Mathewson
7b4865ec33
Add notion of "longest nickname-or-hex-digest-with-$"
...
svn:r2108
2004-07-22 21:31:04 +00:00
Roger Dingledine
a403c1035e
getting an unknown descriptor is an info, not a warn, now
...
svn:r2098
2004-07-22 06:04:13 +00:00
Roger Dingledine
6c56f34aaf
clients shouldn't create datadir until we have something to put there
...
svn:r2092
2004-07-22 00:13:42 +00:00
Roger Dingledine
f82a36508d
make router_nickname_is_approved() do the right thing
...
svn:r2090
2004-07-21 22:54:27 +00:00
Roger Dingledine
3783d2e682
if johnny has three fenceposts, and jill takes four away...
...
svn:r2089
2004-07-21 22:37:03 +00:00
Roger Dingledine
ecc9009256
authdirservers accept the uploading of unverified descriptors.
...
fix a bunch of bugs in router_update_status_from_smartlist()
(Nick, did I get them all, or was there a trickier one still hiding?)
svn:r2081
2004-07-21 09:13:12 +00:00
Roger Dingledine
dc7951a5a7
a whole swath of fixes
...
introduce an authdir_mode() macro to match the others.
don't initialize uptime to the number of seconds since 1970.
non-authoritative dirservers don't cache their directory on disk.
make only authdirservers use clique_mode.
only read approved-routers file if you're an authdirserver.
even authdirservers fetch a new directory in do_hup.
retry_all_connections() is now called retry_all_listeners().
router_parse_list_from_string() correctly reports the router number
it's working on.
only call dirserv_add_own_fingerprint() and
dirserv_add_descriptor() on startup if we're an authdirserver.
if AuthDir and !ORPort then fail.
if AuthDir and ClientOnly then fail.
svn:r2061
2004-07-20 10:17:43 +00:00
Nick Mathewson
1040762531
Remove 1024-router limit in routerparse.c; unify handling of running-routers lines in running-routers requests and in directories; set is_verified field of routerinfo_ts correctly; use most-recent-info rule to decide whether to change router-is-running status.
...
svn:r2051
2004-07-16 23:05:40 +00:00
Nick Mathewson
c2103eb63a
Finish most pre2 items: make running-routers list work right; rename secret key files; make even more lookup-by-nickname use lookup-by-id; default nicknames to hostname.
...
svn:r2043
2004-07-13 18:23:40 +00:00
Roger Dingledine
e1ba0c4663
running-routers now lists down routers too (with a ! before their name)
...
svn:r1996
2004-07-01 11:32:26 +00:00
Roger Dingledine
f42f04c859
cleanups on 008pre1 items
...
svn:r1993
2004-06-30 21:48:02 +00:00
Nick Mathewson
b1e9adf056
Always use get_data_directory() instead of options.DataDirectory; fix a memory leak in router.c
...
svn:r1991
2004-06-30 16:37:08 +00:00
Nick Mathewson
76f769deb9
Remaining 008pre1 items done; deferred where more design is needed.
...
More docs and (way more!) testing needed.
Done:
- Authdirservers down directories from others.
- Generate and use running-routers lists
- Cache directories; store across reboots.
- Refactor directory parsing a bit; note potential trouble spots.
svn:r1985
2004-06-25 00:29:31 +00:00
Nick Mathewson
8aec3a7301
Implement several 008pre1 items: needs more testing
...
svn:r1981
2004-06-21 04:37:27 +00:00
Roger Dingledine
ba5d48e852
router->is_trusted_dir implies router->dir_port>0
...
and add some infrastructure for fetching running-routers list
svn:r1973
2004-06-16 21:08:29 +00:00
Roger Dingledine
30a07b2ecd
non-dirservers expire routerinfo's that are more than a day old
...
svn:r1907
2004-05-20 05:10:30 +00:00
Roger Dingledine
41c9b8230d
fix compile error in dirserv
...
(declare variables before the rest of the function)
svn:r1896
2004-05-19 19:42:50 +00:00
Nick Mathewson
1cfac90984
remove upper limit on number of descriptors/directories in dirserver; use smartlists instead of arrays
...
svn:r1894
2004-05-18 17:41:40 +00:00
Roger Dingledine
d2de7120fa
fix a seg fault, add another XXX for nick ;)
...
svn:r1892
2004-05-18 16:54:04 +00:00
Nick Mathewson
7511fbf993
Resolve some XXXs
...
svn:r1889
2004-05-18 15:35:21 +00:00
Nick Mathewson
50b7ebcf9e
Make directory functions update routerlist, not replace it. Add notion of OR-is-trusted-to-be-a-dirserver. Arma, please review: does this handle being a dirserver right?
...
svn:r1880
2004-05-17 20:31:01 +00:00
Nick Mathewson
b45fafa3d0
Split directory/router parsing functionality into separate file from routerlist.c
...
svn:r1846
2004-05-10 17:30:51 +00:00
Nick Mathewson
81922a125c
More doxygenation.
...
svn:r1832
2004-05-10 04:34:48 +00:00
Roger Dingledine
c6d4a00c5f
more doxygen markup
...
plenty more remains
svn:r1824
2004-05-09 16:47:25 +00:00
Nick Mathewson
44defa4b1a
Never list unapproved servers as recommended
...
svn:r1790
2004-05-05 04:55:00 +00:00
Nick Mathewson
efdb356a81
More documentation
...
svn:r1785
2004-05-05 00:30:43 +00:00
Roger Dingledine
2b5e6aef15
note another bug to be fixed sometime
...
svn:r1754
2004-04-30 05:42:52 +00:00
Nick Mathewson
7055f837ab
Make Tor build on win32 with VC6 without warnings.
...
svn:r1739
2004-04-28 20:13:21 +00:00
Nick Mathewson
0fca143ea1
Remove onion_pkey from connection, since onion keys can change more often than connections. Also add more log messages
...
svn:r1693
2004-04-25 19:04:11 +00:00
Nick Mathewson
c44016e86e
Merge flagday into main branch.
...
svn:r1683
2004-04-24 22:17:50 +00:00
Nick Mathewson
5514ad715b
Scan list of servers in directory after reloading fingerprint list; remove any servers that are no longer recognized.
...
svn:r1613
2004-04-13 20:06:08 +00:00
Nick Mathewson
6290d027c9
Continue attack on magic numbers; use new crypto wrappers where possible
...
svn:r1504
2004-04-06 20:16:12 +00:00
Roger Dingledine
7793078dff
alice can now look up bob's service descriptor,
...
choose an intro point, connect to it,
choose a rend point, connect to it and establish a cookie,
get an ack from the rendezvous point,
and know when both circs are ready for her.
APConns don't use conn->purpose anymore
don't initiate a renddesc lookup if one is already in progress
also fix a buffer overflow in nickname parsing (only exploitable
by the operator though)
svn:r1471
2004-04-05 00:47:48 +00:00
Nick Mathewson
b3c2b62a14
Make "common" no longer depend on or.h
...
svn:r1466
2004-04-03 04:05:12 +00:00
Roger Dingledine
83c88c55fd
old or skewed descriptor doesn't mean we failed to parse it
...
svn:r1373
2004-03-29 23:23:01 +00:00
Roger Dingledine
155c777a84
fix typo
...
svn:r1364
2004-03-29 19:53:53 +00:00
Nick Mathewson
6a79b1cb57
Re-enable unit tests for directory generation.
...
svn:r1362
2004-03-29 19:50:59 +00:00
Nick Mathewson
0e6084d751
Remove descriptors that are older than 24 hours from the directory. Use strlcat instead of strncat to generate directories.
...
svn:r1361
2004-03-29 19:28:16 +00:00
Roger Dingledine
fdc5751c60
bugfix: address that strcat vulnerability in circuit.c
...
svn:r1273
2004-03-14 22:47:11 +00:00
Roger Dingledine
6af8d0606f
inform unapproved servers when we reject their descriptors
...
svn:r1263
2004-03-12 12:43:13 +00:00
Roger Dingledine
30969421d3
stop troubling router operators with unapproved router connect attempts
...
but give the dirserver operator more information
svn:r1246
2004-03-09 14:53:00 +00:00
Roger Dingledine
6e22801e0f
when you get a desc from an unknown router, log its fingerprint
...
svn:r1244
2004-03-08 00:15:40 +00:00
Nick Mathewson
1e5b7bc6f1
New, more flexible directory parsing backend. Uses a bit more RAM, but implements the new spec. Uses more RAM, but not so you would notice.
...
svn:r1235
2004-03-05 05:48:28 +00:00
Roger Dingledine
6a19e64066
remove trailing whitespace
...
svn:r951
2003-12-17 21:09:31 +00:00
Roger Dingledine
4a1e05de51
betcha didn't know strncpy could leave an unterminated string
...
svn:r949
2003-12-17 09:20:29 +00:00
Roger Dingledine
36ea39ec9c
on hup, close and rebind listener ports too (in case their config has changed)
...
svn:r926
2003-12-14 06:03:46 +00:00
Roger Dingledine
50e17d633b
clean up some file-scope-global directory variables
...
svn:r925
2003-12-14 05:25:23 +00:00
Roger Dingledine
8222fe8e4f
clean up some copyrights
...
svn:r907
2003-12-13 22:53:17 +00:00
Nick Mathewson
ac552573dd
Make router/directory parsing nondestructive and more const-friendly
...
svn:r890
2003-12-08 23:45:37 +00:00
Roger Dingledine
e0952d0773
terminology shift:
...
directory is the string that dirserv.c and directory.c deal with
routerlist is routerinfo's that are bundled together in routers.c
rename some of the get_routerlist functions to set_routerlist
preparing to break into router.c for stuff the router does,
and routerlist.c for handling routerlist.
svn:r886
2003-12-05 09:51:49 +00:00
Roger Dingledine
ac56486bf6
use the tor_malloc_zero wrapper
...
svn:r837
2003-11-18 08:20:19 +00:00
Roger Dingledine
56cd147eb9
let getconfig survive repeated calls. now we call it again when we hup.
...
change RecommendedVersions into a config option, so dirservers can hup
for a new one
svn:r809
2003-11-13 06:49:25 +00:00
Roger Dingledine
4ba8bc0a73
make dir parsing robust to invalid but well-formed descriptors
...
svn:r800
2003-11-12 05:12:51 +00:00
Nick Mathewson
7604cfe61b
Clock skew fixes.
...
Allow some slop (currently 3 minutes) when checking certificate validity.
Change certificate lifetime from 1 year to 2 days. Since we
regenerate regularly (we regenerate regularly, right??), this
shouldn't be a problem.
Have directories reject descriptors published too far in the future
(currently 30 minutes). If dirservs don't do this:
0) Today is January 1, 2000.
1) A very skewed server publishes descriptor X with a declared
publication time of August 1, 2000.
2) The directory includes X.
3) Because of certificate lifetime issues, nobody can use the
skewed server.
4) The server fixes its skew, and goes to republish a new descriptor Y
with publication time of January 1, 2000.
5) But because the directory already has a "more recent" descriptor X,
it rejects descriptor "Y" as superseded!
This patch should make step 2 go away.
svn:r658
2003-10-22 16:41:35 +00:00
Roger Dingledine
e4127e4d36
move closer to being able to reload config on HUP
...
rename APPort to SocksPort
introduce new tor_free() macro
svn:r642
2003-10-21 09:48:17 +00:00
Roger Dingledine
a3962bf6fc
fix two more memory problems
...
one remains :)
svn:r621
2003-10-18 03:23:26 +00:00
Roger Dingledine
35dcfcb145
put a blank line in the directory, before the first router
...
this makes it easier to read (at least for me)
svn:r613
2003-10-17 10:24:58 +00:00
Roger Dingledine
b9628f266f
change WARNING to WARN
...
and fix a few typos
svn:r571
2003-10-10 01:48:32 +00:00
Roger Dingledine
be874358a4
wrap strdup; prefer time() to gettimeofday()
...
svn:r538
2003-10-04 03:29:09 +00:00
Nick Mathewson
df5c7534b1
Move dirserv/routers code out of main.c
...
svn:r527
2003-10-01 00:43:34 +00:00
Nick Mathewson
1cd57b8466
make sure router descriptor doesnt eat the directory-signature
...
svn:r516
2003-09-30 20:04:40 +00:00
Nick Mathewson
01786266ca
Bugfixes in directory code:
...
Improve debugging output on fingerprint checking.
Make sure to add our own fingerprint to the fingerprint list _before_
adding our own descriptor, or else we'll reject ourself.
Don't call a directory invalid just because we have a newer descriptor
for some router.
Use router_get_dir_hash to generate hashes for signed directories.
Make sure we add our own descriptor successfully.
Don't fall-through on failed base64-endode.
svn:r514
2003-09-30 19:27:54 +00:00
Roger Dingledine
4533da06c9
getting closer to having dirserv working
...
we now add our own descriptor to the descriptor list
and we rebuild the directory (and dump to disk) after receiving a POST
svn:r509
2003-09-30 08:18:10 +00:00
Roger Dingledine
3ed7aedc11
bugfixes and features: closer to making dirserv work
...
fix a variety of seg faults
don't try to list OPs in running-routers
write cached-directory to disk when rebuilding the dir
on boot, dirservers load approved-routers file
on boot, dirservers load cached directory file
svn:r508
2003-09-29 23:14:49 +00:00
Roger Dingledine
467d278b8b
more cleanup and rearranging
...
still not finished integrating new dirserv stuff
svn:r507
2003-09-29 07:50:08 +00:00
Roger Dingledine
5d31f71557
fix two new segfaults
...
svn:r506
2003-09-28 08:06:18 +00:00
Nick Mathewson
0e0169d6fa
Write necessary backends for online directory generation. I think.
...
svn:r503
2003-09-27 21:30:10 +00:00