Commit Graph

3398 Commits

Author SHA1 Message Date
Nick Mathewson
150e5ac098 disable RAND_poll() for the alpha of the day; at least 24 hours of testing is in order for something like that.
svn:r5216
2005-10-07 19:17:20 +00:00
Nick Mathewson
a53ecc94f9 Add half our entropy from RAND_poll in OpenSSL. These know how to use egd (if present) openbsd weirdness (if present), vms/os2 weirdness (if we ever port there), and more in the future.
svn:r5215
2005-10-07 19:03:09 +00:00
Roger Dingledine
46af2d26d0 you can't declare variables in the middle of a block
svn:r5214
2005-10-07 18:56:21 +00:00
Peter Palfrader
14934dece2 Print address too when we say we cannot bind/listen
svn:r5213
2005-10-07 18:48:31 +00:00
Nick Mathewson
4c7113d26a Strip extra trailing newlines when parsing router descriptors.
svn:r5212
2005-10-07 18:33:30 +00:00
Nick Mathewson
a89daaeca9 Once an hour (not just on startup) give OpenSSL some more entropy.
Add entropy in 512-bit chunks, not 160-bit chunks.  (This latter
change is voodoo.)


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


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


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

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

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

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

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


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


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


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


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


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


svn:r5148
2005-09-29 06:45:03 +00:00
Roger Dingledine
3559f821a1 clean up some doxygen stuff
svn:r5147
2005-09-29 02:54:09 +00:00
Nick Mathewson
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
Nick Mathewson
d4fb1fcd6c Two new functions like write_bytes_to_file: one takes a list of byte-and-len structs; one appends.
svn:r5024
2005-09-13 06:19:31 +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
Nick Mathewson
c1a6940e73 make compile slightly happier on const-zealous compilers
svn:r5015
2005-09-12 08:29:53 +00:00
Nick Mathewson
2689cb081b We have so many special cases for smartlists of strings, why not add a sort function?
svn:r5014
2005-09-12 08:27:01 +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
8d70ae01b8 Fix a memory leak in smartlist_string_remove.
svn:r5002
2005-09-12 05:20:29 +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
Nick Mathewson
24bfac635d Document SMARTLIST_FOREACH macro, along with previously-naughty foo_sl_idx variable.
svn:r5000
2005-09-11 23:14:14 +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
e782ee344a bump to 0.1.1.6-alpha-cvs
svn:r4987
2005-09-10 03:41:39 +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
a4f32e77ef Fix segfault in win32 unittests.
svn:r4983
2005-09-10 02:34:32 +00:00
Roger Dingledine
e58ca648c6 bump to 0.1.1.6-alpha
this time for sure


svn:r4982
2005-09-10 01:47:27 +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
6b479b3cfa Only do openssl accel stuff if version is at least 0.9.7
svn:r4973
2005-09-09 22:07:15 +00:00
Nick Mathewson
09d83c564b Add missing arg to windows tor_listdir()
svn:r4972
2005-09-09 21:34:59 +00:00
Nick Mathewson
2f6eb10fb4 Implement tor_listdir on windows. Untested.
svn:r4971
2005-09-09 21:29:23 +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
c4b3bf06c6 add strupper function
svn:r4934
2005-09-08 18:33:51 +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
Roger Dingledine
780261aa2e don't crash now that LongLivedPorts can be null
svn:r4923
2005-09-08 06:47:27 +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
Nick Mathewson
b6a13b6cdf Add directory listing functions to util.[ch]. Watch the features creep!
svn:r4906
2005-09-03 04:40:05 +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