Commit Graph

2318 Commits

Author SHA1 Message Date
Roger Dingledine
bd5524bfc7 fix comment
svn:r3110
2004-12-07 15:37:35 +00:00
Roger Dingledine
538c3b0c26 avoid a sigpipe from a race: if we get the end right after
the app has hung up on us, we shouldn't hold-open-until-flush.


svn:r3109
2004-12-07 15:31:54 +00:00
Roger Dingledine
802d374a99 I'm a bad person.
Stop treating the uint16_t's as null-terminated strings,
and stop looking at the byte after them to see if it's null,
because sometimes you're not allowed to look there.


svn:r3108
2004-12-07 15:29:54 +00:00
Roger Dingledine
a2d80ec767 were we on crack??
svn:r3107
2004-12-07 09:18:25 +00:00
Roger Dingledine
41b809d2aa salvage another 300 bytes per hup
svn:r3106
2004-12-07 09:11:38 +00:00
Roger Dingledine
d9f86e2782 and bust another memory leak
svn:r3105
2004-12-07 08:58:26 +00:00
Roger Dingledine
5d961c2c06 plug another memory leak
svn:r3104
2004-12-07 08:51:10 +00:00
Nick Mathewson
a6aa5eebd6 Fix some memory leaks and unlikely segfaults
svn:r3103
2004-12-07 07:48:16 +00:00
Roger Dingledine
3ff0077cbb bump us to 0.0.9rc7-cvs
svn:r3102
2004-12-07 07:37:01 +00:00
Roger Dingledine
2297c57ba5 note an improvement on our uname we might want to make one day
svn:r3101
2004-12-07 07:35:32 +00:00
Roger Dingledine
8f01b643c3 ORPort must be defined if ORBindAddress is defined.
svn:r3100
2004-12-07 06:51:46 +00:00
Nick Mathewson
0f49fd3bcd Fix leakable rsa key
svn:r3099
2004-12-07 06:48:02 +00:00
Roger Dingledine
e0e40e51ae clean up docs a bit for default log lines.
svn:r3098
2004-12-07 06:38:41 +00:00
Roger Dingledine
2ff38fdf83 when recommending new-format log lines, if the upper bound is LOG_ERR,
leave it implicit.


svn:r3097
2004-12-07 06:27:39 +00:00
Nick Mathewson
d19648b314 Renormalize whitespace
svn:r3095
2004-12-07 05:33:55 +00:00
Nick Mathewson
ac759adb43 Make unit tests work on win32
svn:r3094
2004-12-07 05:31:38 +00:00
Nick Mathewson
08e3090aff More win32 fixes: 1) tolerate extra "readable" events better. 2) when being multithreaded, leave parent fdarray open.
svn:r3092
2004-12-06 23:19:55 +00:00
Nick Mathewson
249a36586f Fix parse_iso_time on platforms without strptime.
svn:r3091
2004-12-06 22:39:10 +00:00
Roger Dingledine
4006246b9e bump us to 0.0.9rc6
svn:r3089
2004-12-06 06:27:39 +00:00
Roger Dingledine
f00631e6b9 answer resolved ip in network order
svn:r3087
2004-12-06 06:14:45 +00:00
Roger Dingledine
f10f24a61c avoid using uninitialized variable
svn:r3086
2004-12-06 06:07:57 +00:00
Roger Dingledine
0859d09352 don't use cache for resolving .foo.exit names, but do reply immediately
if we're asked to resolve an IP.foo.exit.


svn:r3085
2004-12-06 06:06:13 +00:00
Roger Dingledine
577665f608 fix indenting
svn:r3084
2004-12-06 05:26:19 +00:00
Roger Dingledine
f21564eb29 send an end to the streams we close when we hibernate, rather
than just chopping them off


svn:r3083
2004-12-05 13:02:18 +00:00
Roger Dingledine
1c9c813866 check if we have a cached resolve for a tor-resolve address *after*
we remove the .foo.exit part of the address.


svn:r3082
2004-12-05 12:47:46 +00:00
Roger Dingledine
5ba3328172 fix a minor leak in my recent commit
svn:r3081
2004-12-05 12:35:00 +00:00
Roger Dingledine
469135e7e2 talk about quotas rather than bandwidths, in the logs
svn:r3080
2004-12-05 12:26:02 +00:00
Roger Dingledine
50a314c931 int is not necessarily the same size as size_t
svn:r3079
2004-12-05 11:58:30 +00:00
Roger Dingledine
ef6c9d18e7 New circuit building strategy: keep a list of ports that we've used in the past 6 hours, and always try to have 2 circuits open or on the way
that will handle each such port. (We can extend this to include addresses
if exit policies shift to require that.) Seed us with port 80 so web
browsers won't complain that Tor is "slow to start up".

This was necessary because our old circuit building strategy just involved
counting circuits, and as time went by we would build up a big pile of
circuits that had peculiar exit policies (e.g. only exit to 9001-9100)
which would take up space in the circuit pile but never get used.

Fix router_compare_addr_to_addr_policy: it was not treating a port of *
as always matching, so we were picking reject *:* nodes as exit nodes too.

If you haven't used a clean circuit in an hour, throw it away, just to
be on the safe side.

This means after 6 hours a totally unused Tor client will have no
circuits open.


svn:r3078
2004-12-05 07:10:08 +00:00
Roger Dingledine
32e74d3525 fix comment
svn:r3077
2004-12-04 13:58:34 +00:00
Roger Dingledine
02b3229a04 plus add a comment re: the previous bug
svn:r3076
2004-12-04 10:18:41 +00:00
Roger Dingledine
52676364b9 bugfix: router_exit_policy_rejects_all() was broken, so we were
sometimes picking middleman nodes as our last hop, which wasn't
very useful.


svn:r3075
2004-12-04 08:56:59 +00:00
Roger Dingledine
2532e9405e Now we allow writing to the buffer even when the stream if marked for
close, if we're planning to wait to flush it.

This is important because we were sending a socks reject back if we're
closing and hadn't already sent one, but it wasn't actually getting
written since the conn was already marked-for-close.


svn:r3074
2004-12-04 07:13:37 +00:00
Roger Dingledine
5a6e117caf React to eof immediately on non-open edge connections.
Stop keeping track of num_retries for apconns, since they expire
after 60 seconds anyway.

When warning about retrying or giving up, print the address, so
the user knows which one it's talking about.


svn:r3073
2004-12-04 03:26:35 +00:00
Roger Dingledine
c644886c38 bugfix: When we were checking to see if an ap_conn should time out
waiting for its connected cell, we were calculating time from when the
ap_conn was created. So if it waited say 20 seconds before being attached,
then we would immediately decide that the circuit had timed out.

Also, make circuit_dump_by_conn() display actual circuit progress,
including circuits that haven't been attached to the conn yet but
hope to when it finishes connecting.


svn:r3072
2004-12-04 02:51:11 +00:00
Roger Dingledine
675f60aa13 whoops
just because it says snprintf doesn't mean it's a noop


svn:r3071
2004-12-04 01:23:04 +00:00
Nick Mathewson
fc87758ff3 Add function to check that addr_policy_t is okay; change struct addr_policy_t to addr_policy_t.
svn:r3070
2004-12-04 01:14:36 +00:00
Roger Dingledine
e694268644 bump us to 0.0.9rc6-cvs
darn these bugs


svn:r3069
2004-12-04 00:36:34 +00:00
Roger Dingledine
8d69dc472b make circuit building and router parsing less noisy
svn:r3068
2004-12-04 00:25:54 +00:00
Roger Dingledine
f79a7d8d62 while hibernating, hup should not regrow our listeners.
svn:r3067
2004-12-03 23:53:35 +00:00
Nick Mathewson
a980446d0c Be more proactive about noticing underflows: size_t values greater than 0x800...00 are likely to be trouble.
svn:r3064
2004-12-02 04:33:01 +00:00
Roger Dingledine
db5e100cde clean up 3 more underflow possibilities
svn:r3063
2004-12-02 04:31:52 +00:00
Roger Dingledine
0799804c60 fix redundant (and dangerous) NUL termination
svn:r3062
2004-12-02 04:16:18 +00:00
Nick Mathewson
e3f6f92cf7 check for duplicate circuit ID _after_ updating circ_id_type.
svn:r3058
2004-12-01 04:55:03 +00:00
Roger Dingledine
a3395e893f bump to 0.0.9rc5
svn:r3056
2004-12-01 04:32:51 +00:00
Roger Dingledine
82f3ebf195 move StatusFetchPeriod to 15 minutes so it's within bounds by default
svn:r3055
2004-12-01 04:27:11 +00:00
Roger Dingledine
ef04cfcbad one more typo
svn:r3054
2004-12-01 04:13:15 +00:00
Nick Mathewson
41ba4575b3 Fix windows build.
svn:r3053
2004-12-01 03:51:59 +00:00
Nick Mathewson
b457cfb5eb Spell-check strings and comments
svn:r3052
2004-12-01 03:48:14 +00:00
Nick Mathewson
6e88abf418 If we are using select, make sure we stay within FD_SETSIZE.
svn:r3051
2004-12-01 03:15:59 +00:00
Roger Dingledine
bde1d5bfb2 do even less inside our signal handler,
just to be extra paranoidly safe


svn:r3050
2004-12-01 02:54:13 +00:00
Nick Mathewson
a889926e1c Clarify chosen tag progression
svn:r3047
2004-11-30 16:07:20 +00:00
Roger Dingledine
3929f58018 clean obsolete circuit_log_path code
svn:r3046
2004-11-30 10:47:48 +00:00
Roger Dingledine
eb558d0a84 clean up the other "Tell Roger" log that dfc keeps getting
svn:r3042
2004-11-30 09:02:25 +00:00
Roger Dingledine
7a8c1ca1e4 a few minor tweaks
svn:r3041
2004-11-30 08:54:08 +00:00
Roger Dingledine
19ada3f7fa write down our "how to have two defaults for dirfetchperiod"
issue, so we don't forget about it.


svn:r3040
2004-11-30 08:44:19 +00:00
Roger Dingledine
1d4af1930c Let resolve conns retry/expire also, rather than sticking around forever.
Put the check-if-requested-exitrouter-will-reject-us code in the
circuit_attach loop, so it gets checked periodically and not just
once at the beginning. This is useful in case the routerlist changes,
but also in case the address gets resolved into something that we learn
we'll reject.


svn:r3039
2004-11-30 08:39:14 +00:00
Roger Dingledine
d383c23e73 refuse .exit addresses immediately if the requested node would
refuse the request (e.g. due to exit policy or wrong version)


svn:r3038
2004-11-30 08:15:09 +00:00
Nick Mathewson
5ec4e75cdb Make tor-resolve accept x.y.exit addresses again
svn:r3036
2004-11-30 07:06:05 +00:00
Nick Mathewson
bec7a1c6e8 use shorter minimum key lifetime until 008 is dead
svn:r3035
2004-11-30 06:44:07 +00:00
Nick Mathewson
f19e9b8577 doxygen uses backslashes, not forward-slashes
svn:r3033
2004-11-30 06:17:35 +00:00
Nick Mathewson
a3477223de clarify why strlcpy is safe in truncated log messages
svn:r3032
2004-11-30 06:15:06 +00:00
Nick Mathewson
a5d3325c5c Fix last patch
svn:r3031
2004-11-30 06:12:21 +00:00
Nick Mathewson
c8abe1907d Rename parse_address to parse_extended_hostname (since we have other kinds of addresses); make its output an enum; support HEXDIGEST.exit hostnames.
svn:r3029
2004-11-30 03:44:10 +00:00
Nick Mathewson
ebab451eed Make version parsing tests pass
svn:r3028
2004-11-30 03:41:06 +00:00
Nick Mathewson
fd68834b17 Give an early error if you pass a .onion or a .exit hostname to tor-resolve
svn:r3027
2004-11-30 03:12:37 +00:00
Nick Mathewson
ad7db5e43a Add casei versions of strcmpstart/strcmpend
svn:r3026
2004-11-30 03:10:56 +00:00
Nick Mathewson
ee7bef1458 Enforce coding style.
svn:r3025
2004-11-30 02:26:41 +00:00
Nick Mathewson
e764d00e15 If anybody set DirFetchPostPeriod, give them StatuFetchPeriod instead. Impose minima and maxima for all *Period options; impose even tighter maxima for fetching if we are a caching dirserver. Clip rather than rejecting. arma: are these good?
svn:r3024
2004-11-30 02:23:51 +00:00
Nick Mathewson
ce505f5033 note possible alternative for how to do CVS versions; ask arma which he likes.
svn:r3023
2004-11-29 23:06:51 +00:00
Nick Mathewson
6507be4290 Implement new version format for post 0.1.
svn:r3022
2004-11-29 23:04:26 +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
Nick Mathewson
aff5122685 Fetch cached running-routers from servers that serve it (that is, authdirservers, and servers running 0.0.9rc5-cvs or later.)
svn:r3018
2004-11-29 21:01:34 +00:00
Nick Mathewson
b6b07d1d98 Remove needless -2 in log code. This was not an underflow risk, sinze we only call format_msg from one place, where buf_len==10024
svn:r3017
2004-11-29 20:39:55 +00:00
Roger Dingledine
671a2de762 clean up the previous underflow check, and also point out
yet another one that may be a problem. nick?


svn:r3016
2004-11-29 08:40:24 +00:00
Roger Dingledine
c1dc17e6e2 put in initial support for ".nickname.exit" addresses, to let alice
decide what exit node to use; based on a patch by geoff goodell.

needs more work: e.g. it goes bananas building new circuits when the
chosen exit node's exit policy rejects the connection.


svn:r3015
2004-11-29 08:34:54 +00:00
Nick Mathewson
9ba7311c1c After implementing a feature, remember to disable the error message you used to get when requesting it.
svn:r3013
2004-11-29 07:59:00 +00:00
Nick Mathewson
eccfe23a21 Disallow NDEBUG. It is very stupid.
svn:r3012
2004-11-29 07:22:57 +00:00
Roger Dingledine
531c060b36 fix integer underflow in tor_vsnprintf()
(probably exploitable)


svn:r3011
2004-11-29 06:49:04 +00:00
Roger Dingledine
185f047450 prevent integer underflow
(not currently exploitable, ilja and i think)


svn:r3010
2004-11-29 06:43:21 +00:00
Roger Dingledine
9811f68310 bump to 0.0.9rc5-cvs
svn:r3009
2004-11-29 01:00:54 +00:00
Roger Dingledine
7fc30fc1e6 accept *:706 (silc) by default
svn:r3006
2004-11-28 15:49:12 +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
f7c6ad065e correct multiple internal spaces
svn:r3004
2004-11-28 09:14:07 +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
67dc7baa59 bump to 0.0.9rc4
svn:r3001
2004-11-28 06:44:08 +00:00
Roger Dingledine
dad760ddd1 one of the debugging aids was misleading
svn:r3000
2004-11-28 06:33:14 +00:00
Nick Mathewson
32651dd108 connect() on win32 can do more things than we thought?
svn:r2999
2004-11-28 05:58:55 +00:00
Nick Mathewson
0702179d28 Very oops. make windows nonblocking sockets nonblocking
svn:r2998
2004-11-28 05:57:18 +00:00
Nick Mathewson
f77ff938b7 remember; tor_socket_errno has side effects!
svn:r2997
2004-11-28 05:48:02 +00:00
Roger Dingledine
40c97ac504 move the rendezous section of the torrc to the middle, since
it isn't server-only, and indeed it may be unwise to run a
hidden service on a server.


svn:r2995
2004-11-27 08:18:22 +00:00
Roger Dingledine
e5e45fe980 inform him more sanely
svn:r2993
2004-11-26 04:19:03 +00:00
Roger Dingledine
a7f92d7ffe inform the user that you noticed when he sent a USR2
svn:r2992
2004-11-26 04:17:57 +00:00
Roger Dingledine
81dad3e08b that's enough changes to bump to rc4-cvs
svn:r2991
2004-11-26 04:08:07 +00:00
Roger Dingledine
f9a0ab62b7 if you want to handle -USR2, you should catch it too.
svn:r2990
2004-11-26 04:03:19 +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
Roger Dingledine
02a30a348a give up trying to track down the reason we're calling package_inbuf
with a package window of 0. it's safe to just catch the error cases
there and do the right thing.


svn:r2988
2004-11-26 03:43:54 +00:00
Roger Dingledine
179ad27b34 call set_max_file_descriptors() after we configure logs, so
it doesn't always do loglevel info logs on windows.


svn:r2987
2004-11-26 03:05:55 +00:00
Roger Dingledine
e24057b2bf when warning that a version is too new, don't use the confusing
text "is_obsolete_version():".


svn:r2986
2004-11-25 05:49:13 +00:00
Roger Dingledine
d254aeb09e bump to 0.0.9rc3
svn:r2984
2004-11-25 05:40:06 +00:00
Nick Mathewson
f91152ce6a Clarify a bunch of log messages
svn:r2983
2004-11-25 04:20:10 +00:00
Peter Palfrader
f2a96ce1fe Flush the logfd after we print "Tor opening log file", so we don't see those messages days later
svn:r2980
2004-11-24 08:42:06 +00:00
Roger Dingledine
914d346095 update conn_state_to_string
svn:r2979
2004-11-24 07:58:15 +00:00
Roger Dingledine
a2042a8b1d a little help for dfc to debug his "resolve 800 things at once" test
svn:r2978
2004-11-24 07:51:30 +00:00
Roger Dingledine
c89afb7917 avoid infinite loop in tor-resolve if tor hangs up on it
svn:r2977
2004-11-24 07:45:42 +00:00
Roger Dingledine
83e7043eb8 don't process marked-for-close conns further.
(fix assert trigger -- if we're lucky.)


svn:r2975
2004-11-24 06:41:58 +00:00
Roger Dingledine
7d55f3685e make tor-resolve work, uh, more. this time for sure!
svn:r2974
2004-11-24 06:16:36 +00:00
Roger Dingledine
cca469ec58 make tor-resolve work again
svn:r2973
2004-11-24 06:01:52 +00:00
Roger Dingledine
0eebfe3558 bugfix: let socks do multiple rounds of negotiation again
(which is needed for socks5)


svn:r2970
2004-11-24 04:35:28 +00:00
Roger Dingledine
090c84627c patch to nick's patch
svn:r2969
2004-11-24 03:58:45 +00:00
Nick Mathewson
74f74a06c6 make nt service version match actual version
svn:r2968
2004-11-24 00:55:39 +00:00
Nick Mathewson
e84f964aad bump windows version stuff to 009rc2
svn:r2967
2004-11-24 00:33:30 +00:00
Nick Mathewson
1bec1b3d37 Better notice for hibernate interval spans; when estimate is 0, start out awake.
svn:r2963
2004-11-23 22:34:23 +00:00
Nick Mathewson
5fa55c8317 Bugfix: when no units are given, default to seconds or bytes.
svn:r2960
2004-11-23 10:52:27 +00:00
Roger Dingledine
a284b0db8f another slightly less confusing message
nick: we need to figure out if we should say anything different
here when the wake-up time and the expected back-to-sleep time
have both passed.


svn:r2956
2004-11-23 10:05:56 +00:00
Roger Dingledine
b6cb547667 less confusing message upon hibernation
svn:r2955
2004-11-23 09:21:03 +00:00
Roger Dingledine
921c40abe7 fail more gracefully next time
svn:r2954
2004-11-23 09:01:37 +00:00
Roger Dingledine
57a392d8d8 initialize rephist before we init_from_config, since init_from_config
can make us init_keys if we're going to hibernate, which makes us build
a router_desc.


svn:r2953
2004-11-23 09:00:55 +00:00
Roger Dingledine
d7fb38cfe3 update unit tests to reflect changed interface
svn:r2952
2004-11-23 08:36:26 +00:00
Roger Dingledine
7ed738b34c fix some typos; move to 0.0.9rc1
svn:r2951
2004-11-23 07:37:25 +00:00
Nick Mathewson
f5319a010d Dr. Seuss on iterating circular lists: "It's fun to have fun, but you
have to know how."


svn:r2948
2004-11-23 06:08:08 +00:00
Nick Mathewson
0a58bbe0dd Fix critical bug in circuit_list_path: cpath is a circular list! (Also reimplement circuit_log_cpath using circuit_list_cpath).
svn:r2946
2004-11-23 00:11:36 +00:00
Nick Mathewson
cd70264377 Clean up some logging and interfaces
svn:r2945
2004-11-23 00:08:26 +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
fe32c2d141 Fix sign-related warnings
svn:r2942
2004-11-22 22:50:17 +00:00
Nick Mathewson
d4754b334c Compile cleanly on windows; prevent some insane bandwidth cases (e.g., "BandwidthBurst 1000 TB" from occuring.
svn:r2941
2004-11-22 22:24:10 +00:00
Nick Mathewson
983a335f3b Normalize space
svn:r2939
2004-11-22 22:13:34 +00:00
Nick Mathewson
f17c08beed Apply NT service patch from Osamu Fujino. This still has some problems (indicated in a comment adapted from the patch submission email), but it is better than before and better than nothing.
svn:r2938
2004-11-22 22:10:37 +00:00
Nick Mathewson
956b463dfe Implement weekly/monthly/daily accounting
svn:r2936
2004-11-22 21:56:51 +00:00
Nick Mathewson
55df2620c6 Add function to format local time in ISO format
svn:r2935
2004-11-22 21:38:44 +00:00
Nick Mathewson
805c9e3673 Absolutely never call close_temp_logs while validating log options.
svn:r2934
2004-11-22 20:08:07 +00:00
Roger Dingledine
4f2c2c9948 The crowning bugfix.
The problem was that with high load, circuit package window was
reaching 0. Whenever we got a circuit-level sendme, we were
reading a lot on each socket, but only writing out a bit. So we
would eventually reach eof. This would be noticed and acted on
even when there are still bytes sitting in the inbuf.


svn:r2932
2004-11-21 11:30:33 +00:00
Roger Dingledine
27b8797245 clean up some more.
i think i'm getting closer.


svn:r2931
2004-11-21 11:20:28 +00:00
Roger Dingledine
310a8da0d2 break reached_eof() out of process_inbuf()
svn:r2930
2004-11-21 10:14:57 +00:00
Roger Dingledine
671d84dc2f some more debugging aids
svn:r2929
2004-11-21 09:39:01 +00:00
Roger Dingledine
6a516dfdd3 be more greedy about filling up all relay cells.
this may have some bugs in it still.
and it may end up not being what we want to do.


svn:r2928
2004-11-21 07:43:12 +00:00
Nick Mathewson
bb18d4238f Dont keep rephist info for routers that havent had activity for 24 hours.
svn:r2926
2004-11-21 05:14:46 +00:00
Nick Mathewson
bdb61f2a04 fix typo
svn:r2925
2004-11-21 05:06:22 +00:00
Nick Mathewson
36f4e15e81 Call init_keys() where needed; fix hibernate bug.
svn:r2924
2004-11-21 04:19:04 +00:00
Nick Mathewson
bfc2e95230 Bump windows version
svn:r2923
2004-11-21 04:18:36 +00:00
Roger Dingledine
a4b1eb5630 allow StrictEntryNode and StrictExitNode to be singular
svn:r2922
2004-11-20 23:16:03 +00:00
Roger Dingledine
73da4bad46 stop some more seg faults
svn:r2921
2004-11-20 12:55:41 +00:00
Roger Dingledine
63353462f8 if your requested exit node has bandwidth 0, pick it anyway
svn:r2920
2004-11-20 12:41:05 +00:00
Roger Dingledine
d4ac7300d6 and a comment so i don't try to 'fix' it again later
svn:r2919
2004-11-20 12:17:19 +00:00
Roger Dingledine
246b14d8e9 yes, in fact, i broke it. putting back.
svn:r2918
2004-11-20 12:16:47 +00:00
Roger Dingledine
6322287dc1 printfs want carriage returns
svn:r2917
2004-11-20 08:00:57 +00:00
Roger Dingledine
dd19cf6ba3 kill -USR2 now moves all logs to loglevel debug
plus fix some typos


svn:r2914
2004-11-20 07:33:55 +00:00
Roger Dingledine
a30a5bce0f simplify close_temp_logs()
(nick, did i break this?)


svn:r2913
2004-11-20 07:08:00 +00:00
Roger Dingledine
a8840db4ac remove another possible sigpipe cause
svn:r2912
2004-11-20 06:52:13 +00:00
Nick Mathewson
8acaf8e187 Add "MEMUNIT" and "INTERVAL" types to configuration. Also tweak Accounting setup. More docs needed
svn:r2911
2004-11-20 00:37:00 +00:00
Roger Dingledine
2e4763655d bugfix: when our poll is interrupted, we believed the revents values.
svn:r2907
2004-11-17 20:26:39 +00:00
Nick Mathewson
647c076c8f add a TODO item and some comment changes.
svn:r2904
2004-11-16 03:32:01 +00:00
Roger Dingledine
3e4f30fbb9 bump us to 0.0.9pre6
svn:r2902
2004-11-16 03:29:09 +00:00
Roger Dingledine
abdf073f14 minor fixes
svn:r2901
2004-11-16 03:12:53 +00:00
Nick Mathewson
89a456a1d4 Fix a fun bug in read_all that was corrupting config files on windows, and probably doing other bad stuff too.
svn:r2898
2004-11-16 00:08:56 +00:00
Nick Mathewson
6143c515cd Make log_fn not fail so miserably on VC6
svn:r2896
2004-11-15 23:30:26 +00:00
Nick Mathewson
d63d5cb139 Whitespace normalization
svn:r2895
2004-11-15 23:29:24 +00:00
Nick Mathewson
5b668d8557 ugly macros to make log_fn play nice on non-GCC compilers.
svn:r2894
2004-11-15 21:18:07 +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
Roger Dingledine
50c15943a2 move second stat to a cleaner place
svn:r2890
2004-11-15 09:22:01 +00:00
Roger Dingledine
4b76fe8036 Break DirFetchPostPeriod into:
- DirFetchPeriod for fetching full directory,
  - StatusFetchPeriod for fetching running-routers,
  - DirPostPeriod for posting server descriptor,
  - RendPostPeriod for posting hidden service descriptors.

Also make sure the hidden service descriptors are at a random
offset from each other, to hinder linkability.


svn:r2889
2004-11-15 09:05:54 +00:00
Roger Dingledine
67aa3b66c5 clean up socks handling, refuse connections to port 0
svn:r2888
2004-11-15 07:50:15 +00:00
Roger Dingledine
72dd656b88 a first cut at a print_usage()
svn:r2887
2004-11-15 07:29:27 +00:00
Nick Mathewson
c909a8a64b Only record bandwidth usage when accounting is enabled
svn:r2886
2004-11-15 04:48:53 +00:00
Nick Mathewson
930464c889 Change "warn if unverified routers are very skewed" to "never warn about unverified router skew"
svn:r2885
2004-11-15 04:28:24 +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
076f120951 Patch to patch: do not send both error and done for one command.
svn:r2882
2004-11-15 04:02:59 +00:00
Roger Dingledine
ee591be3f2 fix a bug in configuring accounting in options_act()
svn:r2881
2004-11-15 04:01:31 +00:00
Roger Dingledine
47993ae6fb some fixes so far
svn:r2880
2004-11-15 03:53:03 +00:00
Nick Mathewson
5109159ff9 Fix compilation. Duh.
svn:r2876
2004-11-14 22:53:51 +00:00
Nick Mathewson
3e6edf20cc Resolve some hibernating-related XXXX009s.
svn:r2875
2004-11-14 22:21:23 +00:00
Nick Mathewson
402c75fb06 Allow more clock skew from unrecognized hosts than from recognized ones.
svn:r2874
2004-11-14 22:08:25 +00:00
Nick Mathewson
ffe9b01ad7 Split X509 certificate liveness checks into a separate function
svn:r2873
2004-11-14 22:07:48 +00:00
Nick Mathewson
57536f138a Fetch running-routers.
Split logic to initiate dirfetch, running-routers fetch, and
descriptor post.  arma: There are some XXXs here that raise design
questions which we should solve before the next release.

The biggest problem is this: Right now, the directory is about 50X as
large as running-routers uncompressed, and about 36X as large
compressed.  Assuming:

    - everybody gets the compressed version of everything,

    - everybody gets cached directories from random dirservers and
      uncached r-r from authdirservers

    - everybody downloads r-r at the same rate they now download dirs,

then using r-r from will *increase* authdirserver directory bandwidth usage
if there are significantly more caches than authdirservers.

I think it's safe to leave this in for now, since there aren't 3x36 caching
dirservers, but we should make everybody with a dirport cache running-routers
soon.  But I could be wrong.


svn:r2872
2004-11-14 21:46:40 +00:00
Nick Mathewson
2078b136f6 Make running-routers fetch (apparently) work
svn:r2871
2004-11-14 21:35:30 +00:00
Nick Mathewson
bb80d60fe7 Hibernate if we start tor during the "wait for wakeup-time" phase of an accounting interval. Log our hibernation plans better.
svn:r2869
2004-11-14 21:11:06 +00:00
Nick Mathewson
a732727a2b Add simpler option_is_same, as suggested by arma. Finish implementing SAVECONF
svn:r2868
2004-11-14 20:51:28 +00:00
Nick Mathewson
270b942edf Note where torrc goes.
svn:r2865
2004-11-14 19:08:08 +00:00
Nick Mathewson
26973578bf Fix windows whitespace
svn:r2860
2004-11-14 18:21:17 +00:00
Nick Mathewson
aba71028be Add an unreachable return 0.
svn:r2859
2004-11-14 18:20:12 +00:00
Nick Mathewson
05d5996410 Fix cast warning in tor-resolve.c
svn:r2857
2004-11-14 18:14:15 +00:00
Nick Mathewson
4f835673be Remove redundant declaration
svn:r2855
2004-11-14 17:22:10 +00:00
Nick Mathewson
783bbcf471 Fix "implicit declaration of ftello" warning: add AC_FUNC_FSEEKO in configure.in and always include orconfig.h before anything else
svn:r2854
2004-11-14 17:21:32 +00:00
Roger Dingledine
846f71dcca make kill -USR1 work again
svn:r2853
2004-11-14 13:35:47 +00:00
Roger Dingledine
5dcc6fd8b2 ok ok the stat wasn't redundant
but the warn was


svn:r2852
2004-11-14 13:35:39 +00:00
Roger Dingledine
14c7ad409f remove redundant stdio.h
i guess that wasn't the fix


svn:r2849
2004-11-14 09:49:27 +00:00
Roger Dingledine
bd4d99b3fe clean up the ftello call a little bit.
but i'm still getting:
log.c:94: warning: implicit declaration of function `ftello'


svn:r2848
2004-11-14 09:48:54 +00:00
Roger Dingledine
4564367b2a Remove redundant stat() for reading cached directory, and remove
confusing warn when the cached directory isn't there yet.


svn:r2847
2004-11-14 09:40:07 +00:00
Roger Dingledine
3f5c113815 clean a comment
svn:r2844
2004-11-14 04:55:02 +00:00
Nick Mathewson
ed4fa18699 normalize whitespace
svn:r2839
2004-11-13 23:34:01 +00:00
Nick Mathewson
ae7821bd88 Bump windows version
svn:r2838
2004-11-13 23:28:16 +00:00
Nick Mathewson
aab929abe0 Use the data, *then* free it. It works so much better.
svn:r2837
2004-11-13 23:27:50 +00:00
Nick Mathewson
dc48e7aeed Document remaining configuration options; add a ccheck for redundant authentication mechanisms in options_validate; add TODO items for post-009 hibernation features
svn:r2833
2004-11-13 17:17:04 +00:00
Nick Mathewson
08627d5d87 Track whether descriptor is dirty/uploaded. When any options are set, mark it dirty. Once a minute, regenerate and upload the server descriptor if it is dirty.
svn:r2832
2004-11-13 16:53:48 +00:00
Nick Mathewson
0b42e31fe0 Comment a confusing conditional
svn:r2828
2004-11-13 02:54:30 +00:00
Roger Dingledine
5864f4ac01 fix a seg fault when fetching rendezvous descs
svn:r2825
2004-11-12 21:59:27 +00:00
Nick Mathewson
a3788d5c9d Fix argument to strncpy.
svn:r2824
2004-11-12 21:14:51 +00:00
Nick Mathewson
a8f9ba91db Nobody was using the return values from smartlist_(set|del|del_keeporder), so remove them.
svn:r2823
2004-11-12 21:14:06 +00:00
Nick Mathewson
238a895e69 Add a FAST_SMARTLIST define to optionally inline smartlist_get and smartlist_len, which are two major profiling offenders.
svn:r2822
2004-11-12 20:41:52 +00:00
Nick Mathewson
c466b7e72f Speed up tor_strndup a lot: profiling suggests that our use of strlcpy here was a bad idea.
svn:r2821
2004-11-12 20:41:03 +00:00
Nick Mathewson
eabcf6618e Write most of the implementation for SAVECONF.
svn:r2820
2004-11-12 20:09:54 +00:00
Nick Mathewson
5109de5626 Rename exit_policy to addr_policy, since it gets used for SOCKS and directory connections too. Make all policies get validated in options_validate, and make SOCKS/directory policies get set in options_act.
svn:r2819
2004-11-12 19:39:13 +00:00
Peter Palfrader
a1e7ad4855 Fix two comments in torrc.sample.in directly in the upstream source
svn:r2812
2004-11-12 17:04:42 +00:00
Nick Mathewson
60880cda84 Resolve a bunch of FIXME items; mark a lot more for attention; ask for clarification on some. Turn all XXXX008 ("showstopper for 0.0.8 release") items into XXXX009 or XXXX, since plainly they were not showstoppers for 0.0.8. Add/clean some docs.
svn:r2808
2004-11-12 16:39:03 +00:00
Nick Mathewson
2a5bcb29e6 Resolve FIXME: Possible solution to note_disconnect problem; needs thought and review.
svn:r2807
2004-11-12 05:52:19 +00:00
Nick Mathewson
5d92fbe30e Use autoconf to enable largefile support where necessary. Use ftello where available, since ftell can fail at 2GB.
svn:r2806
2004-11-12 05:05:41 +00:00
Nick Mathewson
0faab62cd9 Resolve FIXMES: sometimes an error code is just an error code
svn:r2805
2004-11-12 05:03:50 +00:00
Roger Dingledine
90e0ad517e dfc caught a SIGXFSZ error when his debugfile reached 2GB.
so if they exist, catch them and ignore them.
write() will fail normally and we'll look at errno like
normal human beings.


svn:r2804
2004-11-12 04:59:37 +00:00
Roger Dingledine
c106ab8315 clean torrc sample
change log files to end in .log for logrotate to notice
mention that address doesn't need to be defined


svn:r2803
2004-11-12 04:00:07 +00:00
Roger Dingledine
fde595feb7 when clients do --list-fingerprint, it's misleading to
give them one, because it will never be the same again


svn:r2800
2004-11-11 13:24:10 +00:00
Nick Mathewson
6252cba522 apply patch from Andre Eisenbach: include event code with events, as required by control-spec.txt
svn:r2799
2004-11-11 00:54:53 +00:00
Nick Mathewson
e69d9647ed Remove XXXX009 comment telling us to do the last (circID-related) fix
svn:r2798
2004-11-10 20:19:45 +00:00
Nick Mathewson
954570486f Resolve a FIXME: use identity comparison, not nickname comparison, to
choose circuit ID types.  This is important because our view of "the
nickname of the router on the other side of this connection" is
skewed, and depends on whether we think the other rotuer is
verified--and there's no way to know whether another router thinks you
are verified.

For backward compatibility, we notice when the other router chooses
the same circuit ID type as us (because it's running an old version),
and switch our type to be polite.


svn:r2797
2004-11-10 20:14:37 +00:00
Nick Mathewson
ec49905fb8 When we think we have no bandwidth, guess that we will run for 1 day.
svn:r2795
2004-11-10 19:32:44 +00:00
Nick Mathewson
9c22b428bf Clarify a warning about /.tor
svn:r2794
2004-11-10 14:29:18 +00:00
Nick Mathewson
a43db78e8d Resolve FIXME items: make the kill-unattached-AP timeout symbolic
svn:r2793
2004-11-10 14:28:47 +00:00
Nick Mathewson
c9af37d1ba Resolve FIXME items: make circuit_free_cpath_node static
svn:r2792
2004-11-10 14:28:04 +00:00
Nick Mathewson
fde4129ac3 Resolve FIXME items: clarify two XXXX comments for 009
svn:r2791
2004-11-10 14:27:26 +00:00
Nick Mathewson
aa1c0c4d67 Resolve FIXME items: fix assert failure on malformed socks4a qreuests. (bug reported by Anna Shubina wrt old Netscapes)
svn:r2790
2004-11-10 14:26:34 +00:00
Nick Mathewson
8de9cfe184 Resolve FIXME items: make expand_filename handle ~ and ~username
svn:r2789
2004-11-10 14:23:31 +00:00
Roger Dingledine
987cb2b93a when you cast MAX_UINT to an int it confuses the users
svn:r2788
2004-11-10 09:09:15 +00:00
Nick Mathewson
c1bf171ed8 Fix a few bugs in accounting: parse bw_accounting correctly; set end time of continued interval; record used bandwidth on state change.
svn:r2785
2004-11-10 04:19:53 +00:00
Roger Dingledine
646903542a make nick's config patch build
svn:r2783
2004-11-10 03:48:38 +00:00
Nick Mathewson
1013abd27f Validate log options during options_validate(). Reject unrecognized log types like "Log notice magic-twanger". Also, make sure User and Group stay the same, and do not crash when somebody tries to change PidFile to NULL.
svn:r2778
2004-11-10 03:40:30 +00:00
Roger Dingledine
af9683501c make abbreviations case-insensitive (thanks weasel)
svn:r2773
2004-11-10 03:22:49 +00:00
Roger Dingledine
d9a74cd0af make it more obvious that we have just told them their new torrc log line.
svn:r2772
2004-11-10 03:08:03 +00:00
Roger Dingledine
c03a3eaed0 weaken our anonymity warning a little bit more
svn:r2771
2004-11-10 02:58:27 +00:00
Nick Mathewson
4cdddcc13d Remvove an XXX
svn:r2769
2004-11-10 02:02:06 +00:00
Roger Dingledine
ab951fc828 remove extraneous variable
svn:r2765
2004-11-10 00:19:18 +00:00
Roger Dingledine
c41c469166 don't ship with the default dirservers listed explicitly. leave them
unlisted so we can change the default later.


svn:r2762
2004-11-10 00:14:02 +00:00
Roger Dingledine
7528e8b86a don't check permissions on our datadirectory until we switch uid/gid
svn:r2759
2004-11-10 00:11:37 +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
d9d053d70b Clean windows a little
svn:r2757
2004-11-09 19:30:50 +00:00
Nick Mathewson
7daab4034d Fix windows build for VC6; centralize newline-fiasco-damage-control logic
svn:r2756
2004-11-09 19:13:08 +00:00
Nick Mathewson
cd753df7bf Resolve many XXXs and all DOCDOCs
svn:r2755
2004-11-09 18:22:17 +00:00
Nick Mathewson
b960574556 Change interface to config_trial_assign even more; have it use get_options() instead
svn:r2754
2004-11-09 17:15:17 +00:00
Nick Mathewson
a2079c074f Add some documentation to routerlist
svn:r2753
2004-11-09 17:14:15 +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
3ce3d6eead resolve a 64-bit warning
svn:r2750
2004-11-09 11:36:38 +00:00
Roger Dingledine
ca070e7de6 bugfix: ^c ought to work even while hibernating
svn:r2748
2004-11-09 11:14:34 +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
3235c72f6c control event logs include loglevel notice
svn:r2746
2004-11-09 10:32:02 +00:00
Roger Dingledine
a972589bdb allow BandwidthRate and Burst to be abbrevs in the torrc too
svn:r2744
2004-11-09 10:30:06 +00:00
Roger Dingledine
8d8d6b5661 raise your hand if you can spell
svn:r2743
2004-11-09 10:21:19 +00:00
Roger Dingledine
233f516d61 if you're going to ask it to use a body of length 0,
don't give it a body.


svn:r2742
2004-11-09 10:18:41 +00:00
Roger Dingledine
dd3a12c929 fix a memory-squashing bug that was causing an infinite loop
svn:r2741
2004-11-09 10:08:42 +00:00
Roger Dingledine
6a504efdd3 mark_logs_temp() before init'ing new ones.
we were seeing double, triple, etc each time we setconf'ed.


svn:r2738
2004-11-09 08:01:39 +00:00
Roger Dingledine
3901473bf3 change the interface to config_trial_assign()
svn:r2737
2004-11-09 07:55:48 +00:00
Roger Dingledine
2d18d9eefb when you try a new set of options, and you like them, make sure they stick
svn:r2736
2004-11-09 07:45:24 +00:00