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