Commit Graph

221 Commits

Author SHA1 Message Date
Roger Dingledine
f34e6da3e7 now circuit_get_newest returns an appropriate circ for your purpose
connection_ap_handshake_attach_circuit attaches to a circ of the
right purpose

add a skeletal rendclient.c


svn:r1441
2004-04-02 22:23:15 +00:00
Roger Dingledine
64cb3a027f teach directory servers to handle renddesc responses
svn:r1434
2004-04-01 21:32:01 +00:00
Roger Dingledine
cc3c4245cb let the circuit-launcher choose the exit node (if he wants)
svn:r1428
2004-04-01 03:44:49 +00:00
Roger Dingledine
d01497cf3c outline what bob does to initialize his hidden services
let circuit_launch_new return the circ it just made


svn:r1424
2004-04-01 03:23:28 +00:00
Roger Dingledine
d13857a3f0 put in hooks for alice and bob logic when circuits finish/fail
let you specify the purpose of circuits you launch

bugfix: we used to be declaring the first successful circuit too                               early -- when the first hop finished. now we're more accurate.


svn:r1421
2004-04-01 01:57:22 +00:00
Roger Dingledine
ee45ae575d allow conns to demand to be attached to a clean circuit
(nobody uses this yet)


svn:r1417
2004-03-31 23:06:16 +00:00
Roger Dingledine
a0b0d16981 Add an ap_bridge function to do a socketpair and skip socks.
This allows us to do a directory connection *through* tor just
as if we're doing it as an application.

Make ap_conns tolerate it when the application sends stuff before
The socks handshake is done (it just buffers it).

Tell directory_initiate_command the length of the payload (because
it might include nuls).

Add a directory_has_arrived function to, for example, start building
the rendezvous service descriptor.


svn:r1412
2004-03-31 22:02:13 +00:00
Nick Mathewson
bf83b1e345 Add code to configure hidden services, parse configuration, generate keys and service IDs, and store/load them from disk
svn:r1410
2004-03-31 21:35:23 +00:00
Nick Mathewson
8fedefe6cb rename hidserv_xx
svn:r1406
2004-03-31 04:10:10 +00:00
Nick Mathewson
b32440a028 Implement hidserv_XX functions; there is still an XXX in directory_handle_command
svn:r1404
2004-03-31 03:42:56 +00:00
Roger Dingledine
2d3ac08633 Refactor directory servers
* read all the time (before we would ignore eof sometimes, oops)
* we can handle different urls now
* send back 404 for an un-handled url
* commands initiated by the client can handle payloads now
* introduce conn->purpose to avoid exponential state-space explosion


svn:r1400
2004-03-30 22:57:49 +00:00
Roger Dingledine
524312494b use 'notice' loglevel for things the operator should hear
but that aren't warnings


svn:r1384
2004-03-30 03:15:53 +00:00
Nick Mathewson
0e6084d751 Remove descriptors that are older than 24 hours from the directory. Use strlcat instead of strncat to generate directories.
svn:r1361
2004-03-29 19:28:16 +00:00
Roger Dingledine
2ba9901cb4 oh, i forgot to enable the find-munged-conn function
svn:r1357
2004-03-28 21:14:05 +00:00
Roger Dingledine
47b40de0aa only build circuits after we've fetched the directory
this resolves a subtle bug where tor clients were preferentially using
the directory servers, since when they start building circuits they
know only about the directory servers

on the other hand, it now takes longer after startup before there's
a working circuit. so it goes.


svn:r1350
2004-03-27 00:15:09 +00:00
Nick Mathewson
b7c2b18bd6 Add a RunTesting option to try to learn link state by creating test circuits, even when SocksPort is off.
svn:r1327
2004-03-21 03:03:10 +00:00
Roger Dingledine
3d2c6c7cfa catch signals in a more portable way, so solaris can catch them too
svn:r1324
2004-03-20 23:27:22 +00:00
Nick Mathewson
2ba2f02181 Integrate the new "rephist" [rep(utation) hist(ory)] module to trace
successful/failed connections, successful/failed extends, and
connection uptimes.

It's still not done: more tests are needed, and not everything calls
connection/circuit_mark_for_close properly.  This skews the results.

Also, there needs to be a 'testing' mode for non-OP ORs, where they
periodically build circuits just to test whether extends work.


svn:r1313
2004-03-20 04:59:29 +00:00
Roger Dingledine
208625ae31 clean up some presentation and comments
svn:r1294
2004-03-18 19:22:56 +00:00
Roger Dingledine
74ef3a63ae bugfix: decrement OR connections from global_bucket too
bugfix: don't return immediately for has_pending_tls_data unless
        the conn is allowed to read


svn:r1270
2004-03-14 17:06:29 +00:00
Roger Dingledine
703b2d3cf8 refactor bandwidth-control token buckets
this is a checkpoint commit; there still remain some
bugs, er, somewhere.


svn:r1269
2004-03-14 16:00:52 +00:00
Roger Dingledine
87797bcde5 get rid of those pesky tabs
svn:r1264
2004-03-12 13:00:34 +00:00
Roger Dingledine
623cb0e311 more details when a conn is closed before it's done flushing
svn:r1262
2004-03-12 08:16:48 +00:00
Roger Dingledine
52e813951a start tracking the 'broken pipe' error
svn:r1261
2004-03-11 20:15:53 +00:00
Nick Mathewson
9b4203266e Make OP work on windows! (Also misc logging tweaks)
svn:r1258
2004-03-11 06:19:08 +00:00
Nick Mathewson
d877aac5ad Make windows version correct; initialize windows foolishness so that gethostbyname works.
svn:r1250
2004-03-10 06:26:38 +00:00
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
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
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
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
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
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
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
Roger Dingledine
2c341cd032 put switch_id and start_daemon earlier
svn:r1188
2004-02-29 22:34:38 +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
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
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
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
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
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
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