Commit Graph

3206 Commits

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


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


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


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


svn:r5148
2005-09-29 06:45:03 +00:00
Roger Dingledine
3559f821a1 clean up some doxygen stuff
svn:r5147
2005-09-29 02:54:09 +00:00
Nick Mathewson
2999cbf233 Use EVP_CIPHER_CTX version of AES from openssl, so openssl can use engines (if they exist).
svn:r5146
2005-09-27 19:39:25 +00:00
Nick Mathewson
126a1e3e32 Fix crash-on-wakeup bug in networkstatus download.
svn:r5144
2005-09-26 16:37:39 +00:00
Roger Dingledine
fba01c3cc0 bugfix: we were whining about using socks4 or socks5-with-local-lookup
even when they used an IP in the "virtual" range we designed exactly
for this case.


svn:r5142
2005-09-24 21:56:04 +00:00
Nick Mathewson
0873386600 Point readers of the code to opensslv.h, since everybody who sees 0x0090700f looks at me like some kind of loon
svn:r5140
2005-09-24 16:39:33 +00:00
Nick Mathewson
d661fde082 Possible fix to make aes build on woody
svn:r5139
2005-09-24 16:37:24 +00:00
Nick Mathewson
abb8576538 But, of course, mirrors should get the most up-to-date server in any case.
svn:r5135
2005-09-23 21:33:59 +00:00
Nick Mathewson
b726507d36 Log even less verbosely. Also, do not download old (frequently-updating) servers more than once every 2 hours.
svn:r5134
2005-09-23 21:25:29 +00:00
Roger Dingledine
31c7f59b25 add MyFamily to the torrc.sample
svn:r5133
2005-09-23 20:53:42 +00:00
Nick Mathewson
ebf6476e8e Provide dire warnings to any users who set DirServer; move it out of torrc.sample and into torrc.complete.
svn:r5132
2005-09-23 20:44:22 +00:00
Nick Mathewson
18a0a0e458 Oops. It looks like some old GCCs dislike #if inside a macro argument.
svn:r5131
2005-09-23 20:31:07 +00:00
Roger Dingledine
0ef18a0fba put a log message so we can start confirming socks5-with-remote-dns
vs socks5-with-local-dns


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


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


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


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


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


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


svn:r5095
2005-09-20 03:40:54 +00:00
Nick Mathewson
dcb6b3df6c bump version to 0.1.1.7-alpha-cvs
svn:r5093
2005-09-19 22:02:14 +00:00
Nick Mathewson
837b223c8c remove some debugging garbage
svn:r5092
2005-09-18 04:32:58 +00:00
Nick Mathewson
283032960d Make give-up-on-failure actually work: it seems the servers gave me a real test case.
svn:r5091
2005-09-18 04:15:39 +00:00
Nick Mathewson
d118d5069a Prevent a "try forever to download an unobtainable descriptor" bug. Still remaining: the "give up forever" bug.
svn:r5090
2005-09-18 02:51:12 +00:00
Nick Mathewson
87f6d526fe Refactor new directory code a bit. Keep a big list of rolled-up router status info, including # of download failures (not yet used). Update this list from networkstatuses when they arrive, then update routers from this list. Only download 128 routers at a time, to avoid gargantuan URLs.
svn:r5089
2005-09-18 02:24:42 +00:00
Nick Mathewson
e86893e87b Move to new base64 digest functions. Switch to new router digest calculation. Make sure there are no duplicates in router status lists.
svn:r5088
2005-09-18 02:22:21 +00:00
Nick Mathewson
f8a80e8d59 Helper functions to perform our truncated base64 encoding on hexdigests.
svn:r5087
2005-09-18 02:18:59 +00:00
Nick Mathewson
312af36126 Make smartlist_add_all more efficient.
svn:r5086
2005-09-18 02:17:02 +00:00
Nick Mathewson
1fbe499bfe Remove a bunch of #if0d code that I no longer need to look at.
svn:r5083
2005-09-16 16:47:20 +00:00
Nick Mathewson
6d15a73548 Resolve/expand some XXXXs and improve a log message or two
svn:r5082
2005-09-16 16:41:45 +00:00
Roger Dingledine
cce469c5ce simplify
svn:r5081
2005-09-16 06:15:34 +00:00
Nick Mathewson
538740e362 Fix the never-marked-anything-as-running bug. Now Tor builds circuts again. Woo.
svn:r5080
2005-09-16 04:53:28 +00:00
Nick Mathewson
d45badd9f4 Add a missing return
svn:r5079
2005-09-16 04:52:53 +00:00
Nick Mathewson
1a786a297f Fix the confusing bug where we were downloading only the first n/2-1 of the servers we actually wanted.
svn:r5078
2005-09-16 04:43:21 +00:00
Nick Mathewson
9c2ca40df3 Unify our "figure out which fingerprints we were downloading" code.
svn:r5077
2005-09-16 04:42:45 +00:00
Nick Mathewson
05bab28c7d Add some (notice, for now) log messages that imply confusing things are happening.
svn:r5076
2005-09-15 21:11:48 +00:00
Nick Mathewson
51da58eccf fix braino in dirserv.
svn:r5075
2005-09-15 21:10:58 +00:00
Nick Mathewson
e72e76cad6 Make authdirs smarter. Reject/invalidate by key and IP. Remember that not every authdir has to be a naming authdir.
svn:r5074
2005-09-15 14:39:05 +00:00
Nick Mathewson
ed21abfe87 And some documentation before bed.
svn:r5073
2005-09-15 06:15:31 +00:00
Nick Mathewson
b70c229f6e make some functions static; clean dead networkstatus entries more often.
svn:r5072
2005-09-15 05:41:30 +00:00
Nick Mathewson
3dcc4630b9 Make unittests not die
svn:r5071
2005-09-15 05:28:18 +00:00
Nick Mathewson
b16048917c Stop downloading directories and download routers instead. This still needs some work, but at last clients are finally on the new architecture. Next comes the tuning and bugfixing.
svn:r5070
2005-09-15 05:19:38 +00:00
Nick Mathewson
e83e1df811 separate validation from naming in authoritative directory servers; simplify some router-management code.
svn:r5069
2005-09-15 00:51:42 +00:00
Nick Mathewson
d4e0af7822 Fix a bunch of log messages. Deprecate some routerlist fields; remove others, and status_set_at from routerinfo_t. Compress routerlist.c cleanup functions. Update cached networkstatus mtime when we download the same one twice. Change some interfaces.
svn:r5068
2005-09-14 23:42:06 +00:00
Nick Mathewson
6973ef9be4 Add a touch_file() function to compat so we can update cache mtimes.
svn:r5067
2005-09-14 23:27:52 +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
76e6cc0c2b bump to 0.1.1.7-alpha
svn:r5051
2005-09-14 03:59:33 +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
d9bf9e48c0 Add documentation to a few functions in container.c; reformat function definitions
svn:r5026
2005-09-13 15:30:22 +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