Commit Graph

56 Commits

Author SHA1 Message Date
Roger Dingledine
c4c66e2c7f expand the scheduler to address SSL_read()'s pending bytes
svn:r505
2003-09-28 06:48:20 +00:00
Nick Mathewson
0e0169d6fa Write necessary backends for online directory generation. I think.
svn:r503
2003-09-27 21:30:10 +00:00
Nick Mathewson
febb2251ca Add code to parse fingerprint files and compare routers against fingerprint files.
svn:r490
2003-09-26 20:41:23 +00:00
Nick Mathewson
92acbe12bc Refactor common file code into util.c; add published to descriptors
svn:r487
2003-09-26 18:27:35 +00:00
Roger Dingledine
9e5cafc395 first pass: obey log convention
ERR is if something fatal just happened

WARNING is something bad happened, but we're still running. The bad thing
is either a bug in the code, an attack or buggy protocol/implementation
of the remote peer, etc. The operator should examine the bad thing and
try to correct it.
(No error or warning messages should be expected. I expect most people
to run on -l warning eventually.)

NOTICE is never ever used.

INFO means something happened (maybe bad, maybe ok), but there's nothing
you need to (or can) do about it.

DEBUG is for everything louder than INFO.


svn:r486
2003-09-26 10:03:50 +00:00
Roger Dingledine
3b5191d36d various bugfixes and updates
redo all the config files for the new format (we'll redo them again soon)

fix (another! yuck) segfault in log_fn when input is too large
tor_tls_context_new() returns -1 for error, not NULL
fix segfault in check_conn_marked() on conn's that die during tls handshake

make ORs also initialize conn from router when we're the receiving node

make non-dirserver ORs upload descriptor to every dirserver on startup
add our local address to the descriptor
add Content-Length field to POST command
revert the Content-Length search in fetch_from_buf_http() to previous code
fix segfault in memmove in fetch_from_buf_http()
raise maximum allowed headers/body size in directory.c


svn:r484
2003-09-25 10:42:07 +00:00
Nick Mathewson
3d4ccb781a Refactor buffers; implement descriptors.
'buf_t' is now an opaque type defined in buffers.c .

Router descriptors now include all keys; routers generate keys as
needed on startup (in a newly defined "data directory"), and generate
their own descriptors.  Descriptors are now self-signed.

Implementation is not complete: descriptors are never published; and
upon receiving a descriptor, the directory doesn't do anything with
it.

At least "routers.or" and orkeygen are now obsolete, BTW.


svn:r483
2003-09-25 05:17:11 +00:00
Roger Dingledine
078c5ab617 leave the socks handshake on the inbuf until it's complete
this paves the way for supporting socks5 and other handshakes
it also removes those pesky AP-only variables from connection_t

also hacked a fix for a bug where some streams weren't ending properly --
maybe because marked connections weren't flushing properly?


svn:r472
2003-09-18 08:11:31 +00:00
Roger Dingledine
b97945e411 add in directory 'post' support
svn:r471
2003-09-17 20:09:06 +00:00
Roger Dingledine
8b71b7338f clean up exported api's
svn:r461
2003-09-16 05:41:49 +00:00
Roger Dingledine
05612786e4 fix two more bugs
svn:r452
2003-09-13 21:53:38 +00:00
Nick Mathewson
36a3086434 Add router_get_by_pk function; use in connection_tls_finish_handshake.
svn:r441
2003-09-11 20:32:15 +00:00
Roger Dingledine
e13d947986 point out why router_forget_router probably doesn't work
svn:r422
2003-08-29 21:50:53 +00:00
Nick Mathewson
e14aedaad0 Fix memory leaks in directory parsing
svn:r421
2003-08-28 04:21:57 +00:00
Roger Dingledine
ce289f65f2 remove last vestiges of op_port
svn:r418
2003-08-27 22:42:10 +00:00
Roger Dingledine
36f055e7ee start honoring the recommended_versions string
your client exits if you're running a version not in the
directory's list of acceptable versions (unless you have a
config variable set to override).


svn:r408
2003-08-23 10:09:25 +00:00
Roger Dingledine
88edae9407 start refactoring dnsworker so testing won't be so darn hard
add NumCpus config variable in preparation for cpuworkers
hardcode /etc/torrc path for config (simplifies win32 port)
improve exit policy debugging during router entry parsing


svn:r397
2003-08-14 03:52:51 +00:00
Nick Mathewson
bbd4032fc1 Make windows happier still
svn:r392
2003-08-12 08:18:13 +00:00
Nick Mathewson
ac5893c626 src/or
svn:r371
2003-07-30 19:12:03 +00:00
Nick Mathewson
95e5384af3 Change many files to new log_fn format
svn:r333
2003-06-17 22:18:26 +00:00
Nick Mathewson
b9480620c6 Make log_fn work on apples with no workarounds needed in main code
svn:r330
2003-06-17 21:15:25 +00:00
Nick Mathewson
71b158bf2f Fix MacOS build
svn:r320
2003-06-14 01:28:25 +00:00
Roger Dingledine
fa1d446440 OPport is gone. So is conn type OP.
svn:r298
2003-05-28 02:03:25 +00:00
Roger Dingledine
39e9d79038 add circuit-level sendme relay cells
remove sendme cells
replace malloc with tor_malloc
patch (but not track down) bug in onion pending list
streamline connection_ap handshake


svn:r293
2003-05-20 06:41:23 +00:00
Nick Mathewson
0957ffeb83 work on versioning; new log_fn function
svn:r288
2003-05-09 02:25:37 +00:00
Roger Dingledine
9f38ba196c make router_dump_token only for debugging; clean backslashes
svn:r287
2003-05-09 02:20:16 +00:00
Nick Mathewson
9ef930f21a Routerinfos are no longer linked
svn:r283
2003-05-09 02:00:33 +00:00
Nick Mathewson
c2e7b5ec3f We cant recognize ourself until we resolve all the routers.
svn:r282
2003-05-09 01:24:44 +00:00
Nick Mathewson
22df330f14 Get directories working.
Or at least, directories get generated, signed, download, and checked, with
nobody seeming to crash.

In config/*, added 'signing-key' blocks to dirservers and routers.or, so
that everyone will know about the directories' signing keys.

In or/directory.c, refrained from using a dirserver's signing key when
no such key is known; added more debugging output.

In or/main.c, added debugging output and fixed a few logic errors.

In or/routers.c, added debugging output and prevented a segfault on
routers_resolve_directory.  The interleaving of arrays and lists on
routerinfo_t is still messy, but at least it seems to work again.


svn:r278
2003-05-08 21:35:11 +00:00
Nick Mathewson
1d1f46e40d (possibly incorrect) code to make routers get resolved when they're
inserted into the directory.

Roger: If you can answer the question with your name on it, you may
prevent a segfault before it happens. :)


svn:r277
2003-05-08 12:32:30 +00:00
Nick Mathewson
b58939745e Do not replace old directory if new one is invalid
svn:r272
2003-05-07 18:39:44 +00:00
Nick Mathewson
afc0eb2c71 Tested backends for directory signing and checking. Directory parser completely refactored. Need documentation and integration. Explanitory mail forthcoming.
svn:r271
2003-05-07 18:30:46 +00:00
Nick Mathewson
d0ff485e1b More work on directories. Signed directories not yet tested. No support for checking sigs yet
svn:r268
2003-05-07 02:13:23 +00:00
Nick Mathewson
fcf7bfe290 Refactor directories; add unit tests; add router keyword
svn:r266
2003-05-06 17:38:16 +00:00
Roger Dingledine
d7f50337c1 incremental path building in; uses ephemeral DH; onions are gone
still need to change circuit-level sendmes


svn:r264
2003-05-05 23:24:46 +00:00
Roger Dingledine
cdf6ea201f put most of the remaining exit policy stuff in
route selection still doesn't pay attention to exit policies though


svn:r227
2003-04-08 06:44:38 +00:00
Roger Dingledine
18bbac44ca parse exit policy lines
svn:r225
2003-04-07 04:38:19 +00:00
Nick Mathewson
c217b1ca71 Add magic to end of C files to make emacs happy; split test invocation into separate file.
svn:r224
2003-04-07 02:12:02 +00:00
Roger Dingledine
64e46988f6 greatly simplify this notion of 'roles':
if your ORPort is non-zero then you must connect to all nodes
if your DirPort is non-zero then you must act like a directory server


svn:r192
2003-03-18 01:49:55 +00:00
Roger Dingledine
8f2beefca4 was leaking 28 bytes every 100 minutes
svn:r144
2002-12-03 05:12:30 +00:00
Roger Dingledine
bf53852a00 cleanup and a variety of bugfixes
svn:r132
2002-10-02 22:54:20 +00:00
Roger Dingledine
22285e6ff1 cleanup
prkey is only fetched when it's needed
tor nodes who aren't dirservers now fetch directories and autoconnect
  to new nodes listed in the directory
default role is a non-dirserver node


svn:r120
2002-09-28 00:52:59 +00:00
Roger Dingledine
54af97ccdc stop duplicate free
svn:r114
2002-09-26 13:19:13 +00:00
Roger Dingledine
f033442be2 dirserver should include itself in the directory
if connecting to a dirserver fails, remove it from the router array


svn:r113
2002-09-26 13:17:14 +00:00
Roger Dingledine
01f6727306 directory servers in and functional
proxies now periodically pull down an hourly-updated directory,
and replace their router list with it if it parses correctly.


svn:r112
2002-09-26 12:09:10 +00:00
Roger Dingledine
253f0f160e laying the groundwork for dynamic router lists
revamped the router reading section

reference counting for crypto pk env's (so we can dup them)

we now read and write pem pk keys from string rather than from FILE*,
  in anticipation of fetching directories over a socket
  (so now on startup we slurp in the whole file, then parse it as a string)

fixed a bug in the proxy side, where you could get some circuits
  wedged if they showed up while the connection was being made


svn:r110
2002-09-24 10:43:57 +00:00
Roger Dingledine
ddc2b69a28 onion proxies now work (i think)
svn:r96
2002-09-04 06:29:28 +00:00
Roger Dingledine
db4c2140c3 more debugging info, to track down bruce's IP problems
svn:r85
2002-08-27 19:28:35 +00:00
Roger Dingledine
b8b8ab2fd6 port is now kept in host order except in sin_port
svn:r82
2002-08-24 07:55:49 +00:00
Roger Dingledine
3a7f3ba348 cleanup: don't use size_t when you mean int
size_t is what you get back from sizeof(). no more, no less.


svn:r80
2002-08-24 04:59:21 +00:00