Commit Graph

707 Commits

Author SHA1 Message Date
Roger Dingledine
416993afc1 bugfix: only set conn->hold_open_until_flushed after marking
svn:r1245
2004-03-08 01:19:57 +00:00
Roger Dingledine
6e22801e0f when you get a desc from an unknown router, log its fingerprint
svn:r1244
2004-03-08 00:15:40 +00:00
Roger Dingledine
0ab367ed91 re-try streams at most 4 times
svn:r1242
2004-03-07 23:50:15 +00:00
Roger Dingledine
10cee8b7f7 fix a rare race condition: when we send a cell and then
mark an OR connection expired, we might close it before
finishing a flush if the other side isn't reading.


svn:r1240
2004-03-06 06:05:00 +00:00
Roger Dingledine
516ef41ac1 if a stream times out after 15s without a connected cell,
don't try that circuit again.


svn:r1239
2004-03-06 05:10:07 +00:00
Roger Dingledine
c362ed877d if the directory client hangs up before getting the directory,
then give up on him


svn:r1238
2004-03-06 05:09:33 +00:00
Roger Dingledine
6c9d78b319 stop asserting that computers always go forward in time
it's simply not true


svn:r1236
2004-03-06 01:43:37 +00:00
Nick Mathewson
1e5b7bc6f1 New, more flexible directory parsing backend. Uses a bit more RAM, but implements the new spec. Uses more RAM, but not so you would notice.
svn:r1235
2004-03-05 05:48:28 +00:00
Roger Dingledine
01e06148a1 make workers explain their death better when tor dies
and make them say it at log level info rather than err


svn:r1232
2004-03-04 21:26:23 +00:00
Roger Dingledine
8fe504fee6 bugfix: don't pass complex things to the connection_mark_for_close macro
svn:r1231
2004-03-04 20:49:38 +00:00
Nick Mathewson
c03e9206ae Clean up dns->connection_mark_for_close->dns_remove path
svn:r1230
2004-03-04 18:43:44 +00:00
Roger Dingledine
89d9d80e76 Store options->Address as IP, not hostname
And figure it out while reading config, not every time you
rebuild the descriptor


svn:r1226
2004-03-04 01:53:56 +00:00
Nick Mathewson
b7633e2e67 Try to find out early if buffers get trashed or double-freed.
svn:r1225
2004-03-03 22:49:15 +00:00
Roger Dingledine
5e2e6555a2 and a minor patch
svn:r1215
2004-03-03 08:48:32 +00:00
Roger Dingledine
419a672222 holding until flush was borked
we were never writing anything when hold_open_until_flushed was set,
since conn_write returns early if marked_for_conn is set.

seems a bit better now.


svn:r1214
2004-03-03 08:46:18 +00:00
Roger Dingledine
6022bfea11 better debugging for lonely flushes
svn:r1213
2004-03-03 07:26:58 +00:00
Roger Dingledine
d8e5f3a3a2 close immediately when write() fails too, else things will turn bad
svn:r1212
2004-03-03 07:26:34 +00:00
Roger Dingledine
dbdd2eaa2a don't mark_for_close again when the destroy arrives after the end cell
svn:r1211
2004-03-03 07:24:53 +00:00
Roger Dingledine
3c71d09402 use conn->hold_open_until_flushed for streams
and also note/fix a variety of other stream-based bugs


svn:r1210
2004-03-03 06:26:34 +00:00
Nick Mathewson
f4e4dac801 Implement hold_open_until_flushed. I may have missed something important.
svn:r1209
2004-03-03 05:08:01 +00:00
Roger Dingledine
8275e2302c make socks5 not give a spurious warning
also rename AP_CONN_STATE_CONNECTING to _CONNECT_WAIT


svn:r1208
2004-03-03 04:54:16 +00:00
Roger Dingledine
77bb3e054e reenable part of assert_circuit_ok, leave some still disabled
svn:r1207
2004-03-03 04:11:18 +00:00
Roger Dingledine
de146de0c5 make circuit-building less noisy when a node in your exclude/exit/entrynodes is down
svn:r1206
2004-03-03 03:02:06 +00:00
Nick Mathewson
20ecb66c7d Fix (maybe) assert_circuit_ok. leave it disabled till arma confirms
svn:r1205
2004-03-03 02:24:17 +00:00
Nick Mathewson
5a053a6a81 remove redundant check
svn:r1204
2004-03-03 02:14:35 +00:00
Nick Mathewson
6379dbbe2a warn more when losing data on closed/marked connections.
svn:r1203
2004-03-03 02:07:57 +00:00
Roger Dingledine
49281424ae bugfix: close_immediate called buf_clear but listeners don't have bufs
svn:r1202
2004-03-03 01:58:45 +00:00
Nick Mathewson
5985aef18a Nth time is the charm on list manip.
svn:r1201
2004-03-03 01:37:54 +00:00
Roger Dingledine
4f6cf727b9 fix a pair of lurking segfaults
svn:r1198
2004-03-02 18:08:07 +00:00
Nick Mathewson
6f3c6d1289 Split out mark_for_close with circuits. Seems to work for me.
svn:r1197
2004-03-02 17:48:17 +00:00
Nick Mathewson
a1e4c6dc85 Fix assertion failure spotted by arma.
Apparently, when a DNS failure was already cached, then when we tried
to mark the exit connection as closed, we'd try to remove it from the
pending queue anyway, and hit an assert.  Now, we put failed-resolve
connections in a separate state so that mark_for_close does the right
thing.


svn:r1196
2004-03-02 07:24:11 +00:00
Roger Dingledine
b961732246 add --version, note that --help is probably obsolete
svn:r1195
2004-03-02 05:19:01 +00:00
Roger Dingledine
1147289dc0 make config_assign fail rather than warn for unrecognized config options
svn:r1194
2004-03-02 05:00:50 +00:00
Roger Dingledine
f81ad1550e note an assert trigger bug
nick, want to fix this? :)


svn:r1192
2004-03-01 12:37:45 +00:00
Nick Mathewson
5072488a95 make 'make test' exit(1) if a test fails.
svn:r1190
2004-03-01 06:45:32 +00:00
Roger Dingledine
2c341cd032 put switch_id and start_daemon earlier
svn:r1188
2004-02-29 22:34:38 +00:00
Roger Dingledine
e2881631cf fix duplicate call to connection_mark_for_close
svn:r1187
2004-02-29 22:07:44 +00:00
Roger Dingledine
2ac37c64f2 bugfix: we were checking the wrong thing to see if 'reason'
was out of range


svn:r1186
2004-02-29 22:04:52 +00:00
Roger Dingledine
8e5c1921fc when a stream is 15s late, print out the circuit at -l warn
svn:r1180
2004-02-29 09:15:29 +00:00
Roger Dingledine
ef5f917e9e print a statement when the first circ is finished,
so the user knows it's working


svn:r1179
2004-02-29 03:52:38 +00:00
Roger Dingledine
4716d4d871 bugfix: only warn about an unrouter router after we've fetched a directory
svn:r1178
2004-02-29 01:31:33 +00:00
Roger Dingledine
b4338ce704 disable buffer tests, until we rewrite them (one of them fails)
svn:r1177
2004-02-29 00:15:20 +00:00
Roger Dingledine
195ee8c845 create a separate connection_edge_destroy() function
svn:r1176
2004-02-29 00:11:37 +00:00
Roger Dingledine
62d3df8633 bugfix: when we time out on a stream and detach, send an end first
svn:r1175
2004-02-28 23:56:50 +00:00
Roger Dingledine
ae67c48805 bugfix: in some cases, connection_mark_for_close wasn't marking the conn
svn:r1174
2004-02-28 23:52:56 +00:00
Roger Dingledine
3fb9c869a8 clearer warning message
svn:r1173
2004-02-28 23:31:15 +00:00
Roger Dingledine
c058f87513 disallow changing from ORPort==0 to ORPort>0 on hup
svn:r1172
2004-02-28 23:30:41 +00:00
Roger Dingledine
928db6dadc cwd to datadir if it's defined, rather than /
this way people can get cores if they want to


svn:r1171
2004-02-28 23:23:06 +00:00
Roger Dingledine
5701cc2359 fix the function comment
svn:r1169
2004-02-28 22:34:47 +00:00
Nick Mathewson
0a673f4491 Split dns_cancel_pending_resolve into dns_cancel_pending_resolve (kill a
resolve in response to a DNS worker dying) and connection_dns_remove (remove
a pending connection from the resolve structure.)


svn:r1168
2004-02-28 22:23:44 +00:00
Roger Dingledine
9a55700747 add a log_warn to notify us of yet another potential dns.c bug
svn:r1167
2004-02-28 22:13:58 +00:00
Nick Mathewson
833d14246d Make dns_cancel_pending_resolve less agressive.
svn:r1166
2004-02-28 22:06:59 +00:00
Nick Mathewson
55174d1cb0 Fix bug on dns_found_answer from mark_to_close stuff.
svn:r1165
2004-02-28 21:52:58 +00:00
Roger Dingledine
fadfd26188 remove assert from dns.c that's no longer true:
typically the resolve will be pending, but it could be failed if it
just failed and we're working through the 'pending' list, or it could
be valid if some other dnsworker raced us to fill in the entry.


svn:r1164
2004-02-28 21:49:10 +00:00
Nick Mathewson
f039eca658 Stop trying to flush on broken sockets marked for close.
svn:r1163
2004-02-28 19:14:11 +00:00
Roger Dingledine
80410fa8dc some comments to point nick at the latest bugs
svn:r1162
2004-02-28 11:48:22 +00:00
Roger Dingledine
cec2eee533 enable assert_connection_ok()
we weren't actually asserting much. oops.


svn:r1160
2004-02-28 07:51:30 +00:00
Roger Dingledine
70c43e152a note bug in assert_connection_ok
svn:r1159
2004-02-28 07:48:28 +00:00
Roger Dingledine
dd632e697e clean up some log messages and severities
still plenty more left to clean


svn:r1158
2004-02-28 07:01:22 +00:00
Roger Dingledine
a24b6e6d4f make flush_buf have a sane return convention
svn:r1157
2004-02-28 05:22:07 +00:00
Roger Dingledine
b354ecfecd rename ExcludedNodes config option to ExcludeNodes
svn:r1155
2004-02-28 05:09:37 +00:00
Roger Dingledine
3a1a6bb09e if a relay cell is unrecognized at the end of the circuit,
send back a destroy


svn:r1153
2004-02-28 04:48:46 +00:00
Roger Dingledine
e59f19ca03 some more small fixes
svn:r1152
2004-02-28 04:44:48 +00:00
Nick Mathewson
b4a7883c90 make code more readable; arrbitrarily change a -1 to a 0.
svn:r1151
2004-02-28 04:34:27 +00:00
Nick Mathewson
ee68371f41 Stop answering "end" with "end"
svn:r1150
2004-02-28 04:25:54 +00:00
Nick Mathewson
4e89c6661a Push responsibility for connection marking down as far as possible; have only a close path; add some missing end cells; change return conventions a little.
svn:r1149
2004-02-28 04:11:53 +00:00
Nick Mathewson
88e222ff76 Make has_sent_end irrelevant: only try to send end if reason is nonzero
svn:r1148
2004-02-28 03:06:31 +00:00
Roger Dingledine
d0ad9b147a and another one
svn:r1147
2004-02-27 23:30:27 +00:00
Roger Dingledine
611f117ce1 patches/answers to nick's commit
svn:r1146
2004-02-27 23:23:33 +00:00
Nick Mathewson
c5bbb571d2 Refactor mark_for_close, connection_edge_end and friends. Now, everybody
who wants to shut down a connection calls connection_mark_for_close instead
of setting marked_for_close to 1.  This automatically removes the connection
from the DNS cache if needed, sends a RELAY END cell if appropriate, and can
be changed to do whatever else is needed.

Still to do:
  - The same for circuits, maybe.
  - Add some kind of hold_connection_open_until_flushed flag, maybe.
  - Change stuff that closes connections with return -1 to use mark_for_close,
    maybe.


svn:r1145
2004-02-27 22:00:26 +00:00
Roger Dingledine
737b2a0bf1 make 'connected' cells include the resolved IP
svn:r1143
2004-02-27 04:52:02 +00:00
Roger Dingledine
195dfd35a8 Fix a bug where you might flush some data on a tls connection, and then
add some more data to be flushed but never turn POLLOUT on. not sure
how commonly this bug was hit, but it would be a doozy.

Also add some asserts to see if it happens elsewhere.


svn:r1142
2004-02-27 04:42:14 +00:00
Roger Dingledine
1b3c197fad clean up an ia64 warning
svn:r1140
2004-02-27 01:59:36 +00:00
Peter Palfrader
1bc2384c5a Give the nice message about not being an HTTP proxy an <h1> headline
svn:r1139
2004-02-27 01:33:02 +00:00
Roger Dingledine
d3e9afda27 When it can't resolve any dirservers, it was useless from then on.
Now it reloads the RouterFile (or default dirservers) if it has no
dirservers.


svn:r1130
2004-02-26 22:56:36 +00:00
Roger Dingledine
4c48359ece break out the operations done on sighup into their own function
svn:r1129
2004-02-26 22:30:44 +00:00
Roger Dingledine
43156904ce dump a new router.desc on hup
svn:r1128
2004-02-26 22:20:00 +00:00
Roger Dingledine
2c74f19d7e writing html in C strings sucks
svn:r1127
2004-02-26 22:10:55 +00:00
Roger Dingledine
8f2b429a3b when they use tor as an http proxy, give them an http 501 failure
svn:r1126
2004-02-26 22:02:22 +00:00
Roger Dingledine
0b27ae0c2d if the default torrc isn't there, just use some default defaults
plus provide an internal dirservers file if they don't have one

having no config files will make it easier to run on windows


svn:r1124
2004-02-26 21:25:51 +00:00
Nick Mathewson
496e414e52 Basic RAM poisoning and magic-checking to notice connection and circuit
corruption faster; also, check for corruption in dns.c so we can fail fast
for the bug that's nailing Lucky and moria3.


svn:r1123
2004-02-25 07:31:46 +00:00
Roger Dingledine
1b25794a56 bugfix: if the exit stream is pending on the resolve, and a destroy
arrives, then the stream wasn't getting removed from the pending list.

this may have been the lucky-bug.
this commit may also not actually fix the bug. it's darn hard to
reproduce.


svn:r1122
2004-02-25 06:57:57 +00:00
Roger Dingledine
8da2e00a83 remove dead code
svn:r1121
2004-02-25 06:56:11 +00:00
Roger Dingledine
01e7b8638d move the tor program back to usr/bin/
svn:r1119
2004-02-25 06:41:21 +00:00
Roger Dingledine
7985f525ec fix some bugs in assert_connection_ok
svn:r1118
2004-02-24 22:33:30 +00:00
Roger Dingledine
598f8b5661 start hunting the lucky-bug
svn:r1116
2004-02-22 20:50:20 +00:00
Nick Mathewson
67a273962a On OSX, decline to use the built-in select-baed poll wrapper, since it seems to sometimes not work.
svn:r1114
2004-02-20 23:41:45 +00:00
Roger Dingledine
67c0c64aa4 go back to a single exitpolicy parameter
if your exitpolicy includes " *:*" then it is final,
else we append the default exit policy.
(thanks weasel)


svn:r1105
2004-02-18 07:23:38 +00:00
Roger Dingledine
4e178907ab allow imaps and pop3s in default exit policy
svn:r1104
2004-02-18 04:02:05 +00:00
Roger Dingledine
7562a62ef0 Get rid of the notion of a separate default default exit policy.
Create ExitPolicyPrepend config parameter, to customize the default
exit policy.


svn:r1103
2004-02-18 03:56:12 +00:00
Roger Dingledine
3456adec31 adding the reattach-after-timeout feature wasn't so easy after all.
maybe it works now.


svn:r1101
2004-02-18 01:21:20 +00:00
Roger Dingledine
39efb0ed52 retry streams where the connected cell hasn't arrived in 15 seconds
svn:r1100
2004-02-17 21:07:15 +00:00
Nick Mathewson
72568d2620 Another case of the same.
svn:r1099
2004-02-17 08:52:57 +00:00
Nick Mathewson
bab6c0a332 Fix the Big Bug in router_compare_addr_to_exit_policy: we used port 0
to mean "unknown port".  But no exit policy supports (nonexistant)
port 0, except accept *:*, and we had no special handling for 'unknown port'.

Now we do.


svn:r1098
2004-02-17 08:52:03 +00:00
Roger Dingledine
46ffc5984d best_support_idx is obsolete
(also doesn't fix the bug)


svn:r1097
2004-02-17 08:42:25 +00:00
Nick Mathewson
bd14023afd Propagate yes/no/maybe a little farther forward.
svn:r1096
2004-02-17 08:29:22 +00:00
Roger Dingledine
d081d1d061 make braces cleaner, bug still persists
svn:r1095
2004-02-17 08:10:07 +00:00
Nick Mathewson
61756b5893 Fix router_compare_addr_to_exit_policy, and name its return codes. The bug was: "maybe reject,accept" should be "maybe", not "accept".
svn:r1093
2004-02-17 07:56:33 +00:00
Roger Dingledine
d508a194f7 Let paranoid exit nodes (which default to reject) be exit nodes
Before we resolve the hostname, we don't know whether its IP will                        be accepted or rejected by the exit policy of each host. So we                           were only going with nodes that would certainly accept -- which
was just itys and poblano.

(This bug was hidden until now by the earlier port bug.)

(Actual bugfix pending on Nick's next commit, hopefully.)


svn:r1092
2004-02-17 07:45:44 +00:00
Roger Dingledine
1801bd7592 prevent picking middleman nodes as the last node in the circuit
svn:r1088
2004-02-17 06:39:20 +00:00