Nick Mathewson
9955b265ab
Make crypto structures private to crypto.c
...
svn:r437
2003-09-10 00:47:24 +00:00
Nick Mathewson
67697d5ab1
Add prototypes for functions to check whether the peer certificate is
...
valid (if it is present); and to get a public key from a peer
certificate (in order to identify the peer).
svn:r436
2003-09-10 00:10:37 +00:00
Roger Dingledine
c0f5ddcf33
fix confirmed win32 bug
...
svn:r435
2003-09-08 23:10:24 +00:00
Roger Dingledine
0bac4247ca
tls infrastructure now in place, give or take
...
svn:r434
2003-09-08 10:59:00 +00:00
Roger Dingledine
1a9b5f9de9
another wishlist function for the tls interface
...
svn:r433
2003-09-08 10:46:19 +00:00
Roger Dingledine
a6a5784bca
add CertFile, Nickname
...
write new certfile if you don't have one already
set up a tls context on startup
svn:r432
2003-09-08 06:26:38 +00:00
Roger Dingledine
ace475f01c
hide the global tls context inside tortls.c
...
svn:r431
2003-09-08 06:22:19 +00:00
Roger Dingledine
413c7a19ed
clean up config.c so it doesn't expose as much
...
svn:r430
2003-09-08 05:16:18 +00:00
Roger Dingledine
3fa170e11f
more futzing towards tls
...
not there yet
svn:r429
2003-09-07 10:24:40 +00:00
Roger Dingledine
99035f3520
clean read_to_buf more
...
svn:r428
2003-09-05 11:25:24 +00:00
Roger Dingledine
7a34cdf5ee
general cleanup and reabstraction, to prepare for tls
...
svn:r426
2003-09-05 06:04:03 +00:00
Roger Dingledine
99d1e4931b
move variable declarations to top of function
...
svn:r425
2003-09-05 05:58:21 +00:00
Nick Mathewson
fd20011c26
Add initial interfaces and code for TLS support. Interfaces are right; code needs work and testing.
...
svn:r424
2003-09-04 16:05:08 +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
7ae853b04c
router formats don't include op_port now either
...
svn:r419
2003-08-27 22:42:39 +00:00
Roger Dingledine
ce289f65f2
remove last vestiges of op_port
...
svn:r418
2003-08-27 22:42:10 +00:00
Roger Dingledine
4c7e936a3a
note an assert bug that's still around
...
svn:r417
2003-08-25 22:02:42 +00:00
Roger Dingledine
90f22933e7
make the conn->package_window bug go away.
...
not resolved, but at least the servers will stop crashing.
svn:r416
2003-08-25 21:43:51 +00:00
Nick Mathewson
14c8bc598b
Attempt to track down bug in conn->package_window
...
svn:r415
2003-08-25 20:57:23 +00:00
Roger Dingledine
0878ceb779
remove bandwidth negotation from the code
...
we still use bandwidth on a per-connection basis for rate
limiting. but it's unclear if we need this infrastructure in
addition to the total-bandwidth rate limiting that we also do.
i'll leave both infrastructures in, and we'll remove the
per-connection one if it starts rotting too much.
svn:r413
2003-08-25 08:28:34 +00:00
Roger Dingledine
58c5d5e918
fix formatting in crypto.c for my sanity
...
svn:r411
2003-08-25 07:06:12 +00:00
Roger Dingledine
215ca90c05
fix a mild memory leak (10 bytes each time an OR connected to an OR)
...
svn:r410
2003-08-25 06:24:17 +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
33b0569fba
remove duplicate packagewindow-checking code,
...
see if we can induce that segfault i just saw more often
svn:r407
2003-08-23 10:06:46 +00:00
Roger Dingledine
2dda97e8fd
implemented cpuworkers
...
please poke at it and report bugs
still needs polishing, and only handles onions now (should handle
OR handshakes too)
svn:r402
2003-08-20 23:05:22 +00:00
Roger Dingledine
d43f145ddf
include torint.h in 'make dist'
...
svn:r401
2003-08-14 21:46:24 +00:00
Nick Mathewson
1777487f4e
Tor now builds on win32.
...
svn:r400
2003-08-14 17:51:36 +00:00
Nick Mathewson
adbc057772
Add empty statement to suppress gcc warning about label at end of compount statement
...
svn:r399
2003-08-14 17:16:05 +00:00
Nick Mathewson
cd3467bb01
Attempt to make sockets code work right on windows.
...
svn:r398
2003-08-14 17:13:52 +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
Roger Dingledine
e1f2693d05
bugfix: if a dnsworker dies, remember that.
...
svn:r396
2003-08-13 22:38:46 +00:00
Nick Mathewson
9cf01020cc
Misc patches to make windows build work. Now everything is done except the sockets stuff
...
svn:r393
2003-08-12 15:08:51 +00:00
Nick Mathewson
bbd4032fc1
Make windows happier still
...
svn:r392
2003-08-12 08:18:13 +00:00
Roger Dingledine
25c9c837eb
don't mess with signals on windows until we know how
...
svn:r391
2003-08-12 08:04:31 +00:00
Nick Mathewson
9b12a48428
Stop trying to #include the world in util.c
...
svn:r390
2003-08-12 07:49:29 +00:00
Nick Mathewson
2cb4f7a473
Adopt socketpair implementation from perl. For now, always use it.
...
svn:r389
2003-08-12 07:43:15 +00:00
Roger Dingledine
5d9cfb7164
use the spawn_func / spawn_exit abstraction for dnsworkers
...
svn:r388
2003-08-12 07:35:17 +00:00
Nick Mathewson
e4a6ea5c46
Add abstraction for fork vs thread.
...
svn:r387
2003-08-12 07:01:20 +00:00
Nick Mathewson
5c4255595d
Dont use explicit paths for orconfig.h -- it messes up the windows build
...
svn:r386
2003-08-12 06:45:03 +00:00
Roger Dingledine
c82e13f1f5
reap exited dns/cpuworkers
...
svn:r385
2003-08-12 06:41:53 +00:00
Nick Mathewson
2aff21f857
Reorder includes so that fakepoll.c gets built when it should
...
svn:r384
2003-08-12 06:41:40 +00:00
Roger Dingledine
33d484bf10
we must have openssl, so HAVE_OPENSSL is redundant
...
svn:r383
2003-08-12 05:48:26 +00:00
Nick Mathewson
b927c56144
unbork windows line endings
...
svn:r381
2003-08-12 03:16:15 +00:00
Nick Mathewson
c336c99e60
Start of port to win32. Missing are:
...
- signal support
- forking for DNS farm
- changes for async IO
- daemonizing
In other words, some files still don't build, and the ones that do build,
do nonblocking IO incorrectly.
I'm also not checking in the project files till I have a good place
for them.
svn:r380
2003-08-12 03:08:41 +00:00
Nick Mathewson
5126f203f2
Work on systems with broken AC_CHECK_TYPE
...
svn:r379
2003-08-11 23:21:51 +00:00
Nick Mathewson
58e2edfb24
Who would have thought that some systems define intfoo_t, but not uintfoo_t? Cygwin is such a system.
...
svn:r378
2003-08-11 21:16:13 +00:00
Nick Mathewson
7284c25b34
Cope better on platforms that define some of intFOO_t in sys/types.h or elsewhere
...
svn:r377
2003-08-11 20:50:30 +00:00
Nick Mathewson
5267518455
autoconf around missing stdint.h
...
svn:r376
2003-08-11 20:40:21 +00:00
Roger Dingledine
681c7539ef
better log output for debugging
...
svn:r375
2003-08-11 20:22:48 +00:00
Nick Mathewson
17a311d9a0
Fix typo: ports are 16 bits.
...
svn:r374
2003-08-11 19:48:22 +00:00
Roger Dingledine
60d52a7e08
patch to let poll() recognize eof on more architectures
...
svn:r372
2003-08-06 18:38:46 +00:00
Nick Mathewson
ac5893c626
src/or
...
svn:r371
2003-07-30 19:12:03 +00:00
Nick Mathewson
f12fdd62aa
Be smarter about getting key matter from DH.
...
Formerly, once we had g^xy, we took the last N bytes from g^xy.
Now, we take SHA(g^xy || [0]) || SHA1(g^xy || [1]) || ... , in order
to use all bits from g^xy equally, and generate as much key material
as we need.
svn:r370
2003-07-30 19:10:20 +00:00
Roger Dingledine
f8d7cff6ea
switch to aes
...
nick: is this all there is to it? :)
svn:r366
2003-07-08 08:38:24 +00:00
Roger Dingledine
c6f70e36e0
implemented total read rate limiting
...
svn:r365
2003-07-05 07:10:34 +00:00
Roger Dingledine
9f58a2ece4
clean up main.c a bit
...
svn:r364
2003-07-05 05:46:06 +00:00
Roger Dingledine
75440d08c2
fix many bugs in package_window handling
...
svn:r363
2003-07-03 03:40:47 +00:00
Nick Mathewson
300984c057
Add AES counter-mode support to the crypt library
...
svn:r362
2003-06-30 19:18:32 +00:00
Nick Mathewson
a0f1588318
Add a the public-domain AES implementation, with a minimal counter-mode wrapper.
...
svn:r361
2003-06-30 19:18:12 +00:00
Roger Dingledine
517b418b5c
bugfix: a connection-level sendme cell would cause a connection to start
...
packaging from its buffer, even if the circuit-level package-window was
still 0.
svn:r360
2003-06-28 06:17:01 +00:00
Roger Dingledine
f8203505e1
if stream ends before resolve finishes, inform resolver
...
svn:r359
2003-06-27 00:57:04 +00:00
Roger Dingledine
35a37ec3f5
fix memleak in dump_signed_directory_to_string
...
svn:r358
2003-06-26 23:38:21 +00:00
Roger Dingledine
5d13db862e
entries in the dns cache now expire
...
(expiry time set to 100 seconds so we can play with it)
exit connections are now informed when pending resolves fail
we kill off the oldest busy worker when we're under attack and need to
resolve something new
svn:r356
2003-06-25 07:19:30 +00:00
Roger Dingledine
6c9e3762b5
clean up sev_to_string hack in log.c
...
svn:r355
2003-06-25 04:47:54 +00:00
Roger Dingledine
dbf3435cde
simplify fetch_from_buf; cull idle dnsworkers.
...
svn:r354
2003-06-25 00:31:41 +00:00
Roger Dingledine
ad917e7788
non-buggy robustness, even
...
svn:r353
2003-06-24 23:14:39 +00:00
Roger Dingledine
dfdc93eccb
improve robustness: connection_get_by_* ignores conns marked for close
...
svn:r352
2003-06-24 23:09:21 +00:00
Roger Dingledine
23b1586c26
clean up a broken comment in crypto.c
...
svn:r351
2003-06-24 21:34:19 +00:00
Roger Dingledine
d8af672bb6
correct log()'s comment
...
svn:r350
2003-06-24 05:18:12 +00:00
Roger Dingledine
3dcc34491b
slightly happier on 64-bit archs
...
svn:r349
2003-06-24 05:17:48 +00:00
Roger Dingledine
a43c015838
clean out some old comments
...
svn:r348
2003-06-24 05:17:39 +00:00
Roger Dingledine
e061b70dbf
a pointer to async-dns alternatives.
...
apparently glibc 2.2.4 and windows both have async gethostbynames now.
we'll want to make use of them if they're available (via autoconf).
svn:r347
2003-06-24 05:17:09 +00:00
Nick Mathewson
e9254430e2
My copy of cpp is not DWIM-compliant; I guess, as a workaround, I should define constants before using them.
...
svn:r343
2003-06-21 21:46:17 +00:00
Nick Mathewson
04b871486c
Reorder connection_or and make unexported functions static. Partially convert to symbolic constants -- Roger, was this what you had in mind?
...
svn:r342
2003-06-21 19:29:32 +00:00
Nick Mathewson
03544caca7
Make cvsignores reflect build process
...
svn:r341
2003-06-21 19:09:09 +00:00
Nick Mathewson
efbcd71b9b
Remove false warnings from printf checks
...
svn:r340
2003-06-21 19:03:22 +00:00
Nick Mathewson
49f082fcee
Fix a bug where we'd sometimes run off the end of an array while
...
testing stream encryption.
svn:r339
2003-06-20 08:17:25 +00:00
Roger Dingledine
968d31162b
fix typos, streamline
...
svn:r337
2003-06-18 07:44:48 +00:00
Roger Dingledine
8d4cd5d604
remove obsolete ss.h
...
svn:r336
2003-06-18 07:42:13 +00:00
Roger Dingledine
a270a93da0
question for nick about daemonizing
...
svn:r334
2003-06-18 05:52:32 +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
6965a4696c
Have GCC catch errors in format strings
...
svn:r332
2003-06-17 22:14:44 +00:00
Nick Mathewson
5fd033a8e8
Come up with a less macro-happy, even more portable log_fn implementation
...
svn:r331
2003-06-17 21:36:44 +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
df2789c111
Make sure crypt_seed_rng succeeds
...
svn:r329
2003-06-17 20:19:54 +00:00
Nick Mathewson
769c78a395
Use fread instead of fgets for binary data
...
svn:r328
2003-06-17 20:19:41 +00:00
Roger Dingledine
05a8c264ff
overhaul the dns farm: cut its size in half
...
i've eliminated the master dns process, so now the workers just
act like regular connections and are handled by the normal pollarray.
everything seems to still work. ;)
svn:r327
2003-06-17 14:31:05 +00:00
Nick Mathewson
3b5dc72648
Dont test handshakes in an infinite loop
...
svn:r324
2003-06-14 01:39:23 +00:00
Nick Mathewson
debfe65faf
When debugging, dump key material
...
svn:r323
2003-06-14 01:34:39 +00:00
Nick Mathewson
9182537238
Fix the periodic bug that would make handshaking fail.
...
The culprit: sometimes DH_calculate_key returns less than DH_KEY_LEN bytes;
we needed to check the return value.
svn:r322
2003-06-14 01:30:53 +00:00
Nick Mathewson
9af577fee3
Do not use pseudorandom nonces
...
svn:r321
2003-06-14 01:29:16 +00:00
Nick Mathewson
71b158bf2f
Fix MacOS build
...
svn:r320
2003-06-14 01:28:25 +00:00
Nick Mathewson
6250b90ac2
Better test messages for onion skin bug
...
svn:r319
2003-06-13 21:23:14 +00:00
Nick Mathewson
d21c0feb5a
Add RNG seeding
...
svn:r318
2003-06-13 21:13:37 +00:00
Roger Dingledine
cbe7be1f78
remove on-the-fly compression feature
...
it wasn't working, and it was harder than we'd anticipated
not worth it.
svn:r316
2003-06-13 10:23:42 +00:00
Roger Dingledine
9a33b59ece
relay queues are obsolete (woo!)
...
they used to be used for
* queueing relay cells at the edge of the network, when windows are empty
* queueing relay cells that arrive after an onion but before the onion
has been processed.
both of these uses are gone. so out they go.
svn:r315
2003-06-13 09:59:33 +00:00
Roger Dingledine
1454f4aded
improve portability: inet_aton is missing on solaris
...
svn:r314
2003-06-13 09:25:55 +00:00
Roger Dingledine
030564e95d
send truncates AP-ward in a circuit, not destroys
...
svn:r313
2003-06-13 09:20:23 +00:00
Roger Dingledine
d3292e484a
implement truncate and truncated (untested)
...
clean up circuit_deliver_relay_cell convention
svn:r312
2003-06-12 10:16:33 +00:00
Roger Dingledine
e75dc941a7
don't complain as much when using openssl 0.9.7a
...
svn:r308
2003-06-10 20:50:56 +00:00
Nick Mathewson
d3592af042
Answer question about eliminating symmetric encryption from onion skins
...
svn:r304
2003-06-02 02:18:16 +00:00
Roger Dingledine
dfa64b61ed
bugfix: it was expiring circuits that still had active connections
...
svn:r303
2003-06-01 02:09:36 +00:00
Roger Dingledine
8e242d9b87
update config files to not use opport
...
svn:r300
2003-05-28 06:22:18 +00:00
Roger Dingledine
54c57def0b
fix (harmless) bug
...
svn:r299
2003-05-28 06:19:58 +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
2d296afc42
bugfix
...
svn:r297
2003-05-28 00:13:42 +00:00
Roger Dingledine
091e1c0167
fix design bug: circ->n_conn is shared among circs, so it can't
...
point to the streams for this circ.
svn:r296
2003-05-27 23:39:04 +00:00
Roger Dingledine
aca6196da9
correct the comments, plus a question for nick
...
svn:r295
2003-05-26 06:03:16 +00:00
Roger Dingledine
1c6def292b
remove dead code
...
circuits no longer queue more cells when the windows are empty --
they simply don't package it from the buffer if they're not going to want it.
we can restore this code later if we need to resume queueing.
svn:r294
2003-05-20 06:53:10 +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
Roger Dingledine
59029a3eed
replace malloc with tor_malloc; remove broken/unused crypto_pk_set_key
...
svn:r292
2003-05-20 06:37:34 +00:00
Nick Mathewson
c94d42fa41
Fail less spectacularly on macos
...
svn:r291
2003-05-09 11:46:39 +00:00
Nick Mathewson
fb435daa28
Fix build on linux; macos is still messed up
...
svn:r290
2003-05-09 03:37:18 +00:00
Nick Mathewson
48b0c839b5
One is the language; the other is the compiler
...
svn:r289
2003-05-09 02:41:27 +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
Roger Dingledine
6973ccb59b
still removing version.h
...
svn:r286
2003-05-09 02:14:01 +00:00
Roger Dingledine
649fbceaa1
removed obsolete version.h
...
svn:r285
2003-05-09 02:12:52 +00:00
Roger Dingledine
bf8ef8e597
obsolete, removed
...
svn:r284
2003-05-09 02:12:33 +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
52604afd62
more debugging on build_directory
...
svn:r281
2003-05-09 01:11:56 +00:00
Nick Mathewson
54a58c897c
more debugging on build_directory
...
svn:r280
2003-05-09 01:10:57 +00:00
Nick Mathewson
39314a13b0
Thats the letter I and the number 2. (Apologies to Negativland)
...
svn:r279
2003-05-09 01:04:58 +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
c3998e94f9
Call the right signed-directory functions; try to describe the difference between everything; remove some unused interfaces
...
svn:r276
2003-05-08 03:36:53 +00:00
Roger Dingledine
bcfbccb056
cheap hack so the dirservers have a signing key
...
svn:r275
2003-05-07 22:41:12 +00:00
Roger Dingledine
2c7e660c62
sign directories with the signing key
...
svn:r274
2003-05-07 22:40:03 +00:00
Roger Dingledine
0f17d09066
hints for nick on where to integrate
...
svn:r273
2003-05-07 21:42:17 +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
Roger Dingledine
bbddd50082
fix double-semicolon parse error
...
svn:r270
2003-05-07 03:32:18 +00:00
Nick Mathewson
445cd8f0f1
Decrease DH group length to 1024. (Roger, you may want to read section 1 of the IETF draft: a 1024-bit DH key probably reduces our cipher strength to ~80 bits.)
...
svn:r269
2003-05-07 02:28:42 +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
03ed54e920
put some symbolic constants to the onion skin lengths
...
svn:r265
2003-05-06 05:54:42 +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
Nick Mathewson
44b4efe34d
Tests, headers, and debugging for onion skin backend
...
svn:r263
2003-05-05 04:27:00 +00:00
Roger Dingledine
96759a609e
streams are now 8 bytes, and are recognized by intermediate hops
...
the OP only crypts the appropriate number of times depending on which
layer (hop on the path) it's for/from.
svn:r262
2003-05-02 21:29:25 +00:00
Roger Dingledine
bb75b14218
remove obsolete test code
...
svn:r261
2003-05-01 23:22:35 +00:00
Roger Dingledine
8a94dd60af
cpath is now a doubly linked list, not an array
...
svn:r260
2003-05-01 22:55:51 +00:00
Nick Mathewson
1eeb3f65fc
Implement core of onion-skin-based handshake
...
svn:r259
2003-05-01 19:42:51 +00:00
Roger Dingledine
0560008497
terminology shift: data->relay, topic->relay, topic->stream
...
svn:r258
2003-05-01 06:42:29 +00:00
Nick Mathewson
6af79f3a03
Basic diffie-helman wrappers with fixed modulus and tests
...
svn:r257
2003-05-01 00:53:46 +00:00
Roger Dingledine
59e70bcae6
bugfix: a circ can't be youngest if it's still connecting to the first hop
...
svn:r255
2003-04-20 21:56:44 +00:00
Roger Dingledine
f54186aa91
bugfix: refactor to always use circuit_remove
...
this way we can always check if a new circ needs to be launched
svn:r254
2003-04-20 19:47:33 +00:00
Roger Dingledine
ffae44aafd
bugfix: don't segfault if there's no valid circuit open
...
svn:r253
2003-04-19 00:24:17 +00:00
Roger Dingledine
10902028e0
bugfix: only close old circuits if they have no connections!
...
svn:r251
2003-04-18 18:47:49 +00:00
Nick Mathewson
5c514620fc
Adjust straggling users of payload field
...
svn:r250
2003-04-17 17:25:32 +00:00
Nick Mathewson
32a3e704b4
Choose correct abstraction for topic_foo. Abstract random-integer code
...
svn:r249
2003-04-17 17:10:41 +00:00
Nick Mathewson
fdf4d4aa85
Use cell.topic* fields in ap_handshake_send_begin
...
svn:r248
2003-04-17 16:46:44 +00:00
Nick Mathewson
6fd4f2a17f
Rebuild or and test binaries when a libor.a changes but or/*.c does not.
...
svn:r247
2003-04-17 02:24:55 +00:00
Nick Mathewson
598c3069e1
Apply algebra; remove a condition
...
svn:r246
2003-04-17 02:03:55 +00:00
Nick Mathewson
2da6482f63
tv_udiff: do not modify arguments, and compute results correctly.
...
svn:r245
2003-04-17 01:59:41 +00:00
Nick Mathewson
0a9e83369a
17 does not divide 1024, but it can stomp some interesting pointers and segfault the test suite
...
svn:r244
2003-04-17 01:56:06 +00:00
Nick Mathewson
d3c0e5ab34
Fix test.h to have once-only evalutation of arguments
...
svn:r243
2003-04-17 01:55:13 +00:00
Roger Dingledine
fe1aba7f15
more cleanup
...
svn:r242
2003-04-16 23:22:05 +00:00
Roger Dingledine
f39ca8a3aa
further cleanup, test.c still has some bugs
...
svn:r241
2003-04-16 23:21:44 +00:00
Nick Mathewson
97d847b9e3
Factor out cell packing and unpacking
...
svn:r240
2003-04-16 17:44:33 +00:00
Nick Mathewson
1bbea670bc
Remove the last vestige of code that claims to know the inner structure of an onion on the network
...
svn:r239
2003-04-16 17:11:56 +00:00
Roger Dingledine
05b52ad868
bugfix: make onions work again
...
svn:r238
2003-04-16 17:07:46 +00:00
Nick Mathewson
33176c70a5
Factor out timeval-related functions.
...
svn:r237
2003-04-16 17:04:58 +00:00
Nick Mathewson
0c61bc3756
Remove the notion of "onion ciphers"; make packing and unpacking separate fns
...
svn:r236
2003-04-16 16:19:27 +00:00
Roger Dingledine
54af75b1b4
add missing prototype
...
svn:r235
2003-04-16 16:17:27 +00:00
Nick Mathewson
acc33c18e2
Tests for crypto; more tests for buffers
...
svn:r234
2003-04-16 15:24:09 +00:00
Roger Dingledine
e1d37ed6ab
divorce circuit building from user connections
...
now we rebuild the circuit periodically (but only if it's been used),
and we can further abstract it to do incremental circuit building, etc.
svn:r233
2003-04-16 06:18:31 +00:00
Nick Mathewson
1fa0fc1487
Introduce a few unit tests (from older code), refactor compression setup/teardown
...
svn:r232
2003-04-15 19:10:18 +00:00
Roger Dingledine
7df5caad0d
make it work (heh)
...
svn:r231
2003-04-11 22:28:51 +00:00
Roger Dingledine
1d53d8ad0e
refactored some duplicate code into connection_edge.c
...
svn:r230
2003-04-11 22:11:11 +00:00
Roger Dingledine
833f165d68
bugfix: make onion proxies actually obey their requested bandwidth
...
svn:r229
2003-04-08 22:31:48 +00:00
Roger Dingledine
c2fa6f5c7d
let the 'test' binary build from the source distrib
...
svn:r228
2003-04-08 22:09:18 +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
Nick Mathewson
79b77b421d
First test added
...
svn:r226
2003-04-07 13:25:44 +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
afa95ca47c
make servers tolerate the dns bug.
...
svn:r223
2003-04-05 19:53:45 +00:00
Roger Dingledine
cb584627a4
begin cells are now address:port, not address,port
...
(breaks backward compatibility)
svn:r222
2003-04-05 19:04:47 +00:00
Roger Dingledine
03f4ed309f
remove obsolete httpap
...
svn:r220
2003-04-04 22:10:25 +00:00
Roger Dingledine
76e1a66196
remove obsolete smtpap
...
svn:r219
2003-04-04 22:09:43 +00:00
Roger Dingledine
96e5f776d6
move cell size to 256. seems to work (?)
...
svn:r218
2003-03-24 04:02:24 +00:00
Roger Dingledine
b8da74d30a
get rid of those nasty tabs
...
svn:r216
2003-03-24 03:00:20 +00:00
Roger Dingledine
9ac9db782a
fix rare race condition
...
if the directory is remade while an OR is handshaking, the directory
needs to become dirty again when the handshake succeeds
svn:r215
2003-03-24 02:50:07 +00:00
Nick Mathewson
9d03ae627d
Fix message when decompressing
...
svn:r214
2003-03-19 22:51:38 +00:00
Nick Mathewson
29da03cbdc
Be loud when decompressing
...
svn:r213
2003-03-19 22:47:34 +00:00
Roger Dingledine
e03af74d55
obsolete notion of 'role' from config files
...
svn:r210
2003-03-19 22:40:58 +00:00
Nick Mathewson
9c263b322b
Make decompression loud.
...
svn:r209
2003-03-19 22:28:52 +00:00
Roger Dingledine
5d0904bc41
kludge because openssl and zlib both typedef free_func :(
...
svn:r208
2003-03-19 22:27:37 +00:00
Roger Dingledine
ff14dcdef7
fix arg bug; reduce confusion in package_raw_inbuf
...
svn:r207
2003-03-19 22:27:01 +00:00
Nick Mathewson
3a0cf37641
Add other side of half-open-connection logic (still disabled
...
svn:r206
2003-03-19 22:05:35 +00:00
Roger Dingledine
d07146b778
cleaner errors
...
svn:r205
2003-03-19 22:02:35 +00:00
Nick Mathewson
a528ee2d8f
Be clear about whether we are using half-open connections
...
svn:r204
2003-03-19 21:59:07 +00:00
Nick Mathewson
7f7417cd29
Fix bug in client_send_auth
...
svn:r203
2003-03-19 21:47:18 +00:00
Nick Mathewson
4631f3dcdf
Fix client_process_auth
...
svn:r202
2003-03-19 21:34:38 +00:00
Nick Mathewson
3a89d27e66
Correct defeatest attitude in crypto_new_cipher_env
...
svn:r201
2003-03-19 21:27:21 +00:00
Nick Mathewson
51ed97504b
Fix op handshake for longer keys
...
svn:r200
2003-03-19 21:17:57 +00:00
Nick Mathewson
2b2eff33c5
Add a missing long cast to log.c for portability
...
svn:r199
2003-03-19 20:54:39 +00:00
Nick Mathewson
0fed84785e
Finish zlib and half-open; switch to 3des (ede/ofb)
...
svn:r198
2003-03-19 20:48:56 +00:00
Nick Mathewson
2ff7f274d3
Make Makefile.am nonbroken
...
svn:r197
2003-03-19 20:42:40 +00:00
Nick Mathewson
8ff1c3e21f
Refactor block ciphers; add 3des
...
svn:r196
2003-03-19 20:41:15 +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
Nick Mathewson
4ad74c2141
Do not uncompress from z_outbuf to outbuf unless outbuf is less than maximally full
...
svn:r188
2003-03-17 21:21:35 +00:00
Nick Mathewson
6deed60bb5
Add code for end-to-end zlib compression. Still needs flow-control
...
svn:r187
2003-03-17 02:42:45 +00:00
Nick Mathewson
9a6b01ba44
Remove extraneous (and non-ansi) semis
...
svn:r186
2003-03-17 02:42:14 +00:00
Nick Mathewson
743e61e8c6
Add daemon logic
...
svn:r185
2003-03-17 02:41:36 +00:00
Nick Mathewson
5dc443a8c5
Add daemon option and bool config type
...
svn:r184
2003-03-17 02:27:19 +00:00
Nick Mathewson
9f0e93e716
Add zlib to link step
...
svn:r183
2003-03-17 02:26:37 +00:00
Roger Dingledine
d9770fbd96
clean up and slightly document the config files
...
svn:r179
2003-03-16 04:40:16 +00:00
Roger Dingledine
c5ed007ac8
respond to nick's question about link padding
...
(nick: note that link padding is currently disabled)
svn:r178
2003-03-12 12:06:54 +00:00
Nick Mathewson
e3368a65a9
Make ACI anti-collision logic work; make sure that cells are filled with 0s.
...
svn:r176
2003-03-11 21:38:38 +00:00
Roger Dingledine
70b35ce8c2
lazy (just in time) directory rebuilding
...
svn:r174
2003-03-11 01:51:41 +00:00
Roger Dingledine
fb2f4a0418
pack into data cells more intelligently
...
svn:r173
2003-03-10 22:40:02 +00:00
Roger Dingledine
90f8a7a757
be less noisy at -l info, now that flow control bug is solved
...
svn:r172
2003-03-10 22:30:05 +00:00
Roger Dingledine
b50c406c08
clean out obsolete cell types
...
svn:r170
2003-03-07 08:24:55 +00:00
Roger Dingledine
25939f206b
remove the mystery int32 from the or-to-or handshake
...
thanks nick :)
(note: this change breaks backward compatibility)
svn:r169
2003-03-07 07:57:55 +00:00
Roger Dingledine
7354619bc1
clean up prepare_for_poll() so it's fast
...
svn:r167
2003-03-06 04:52:02 +00:00
Roger Dingledine
f97ddd44cd
minor code cleanup
...
svn:r166
2003-03-05 20:03:05 +00:00
Roger Dingledine
1768f29d7e
better comments and a few patches
...
svn:r164
2003-03-04 04:36:37 +00:00
Roger Dingledine
c5e7d4ca7a
when we had multiple conns on a circuit, we'd tell the wrong
...
one to stop reading
svn:r163
2003-02-28 23:49:52 +00:00
Roger Dingledine
7461959371
let up on the bandwidth constraints
...
svn:r162
2003-02-18 01:55:51 +00:00
Roger Dingledine
1714ea2ab8
Bugfixes and enhancements in sendmes and dns farm
...
svn:r161
2003-02-18 01:35:55 +00:00
Roger Dingledine
584a4fc4dd
Allow more connections open at once
...
svn:r160
2003-02-18 01:35:31 +00:00
Roger Dingledine
8c136b3a06
bugfix: actually remember the answer in the cache :)
...
svn:r159
2003-02-16 02:05:24 +00:00
Roger Dingledine
3cf02a88f4
rudimentary dns caching (of both resolves and resolve failures)
...
serious performance increase over non-caching
svn:r158
2003-02-14 07:53:55 +00:00
Roger Dingledine
5273e2b887
minor fix
...
svn:r157
2003-02-14 04:10:22 +00:00
Roger Dingledine
366908f8df
commit my current tor rc versions
...
svn:r156
2003-02-14 04:10:13 +00:00
Roger Dingledine
0bc8dc1314
fix endian issues for topics -- they might work on bsd now
...
(they wouldn't have before)
alternate code which bypasses the dns farm, so we can compare speed
svn:r154
2003-02-06 23:48:35 +00:00
Roger Dingledine
ceafe12ed6
make reusing circuits work (and be the default)
...
performance is better, but not by much. not sure why yet.
svn:r153
2003-02-06 08:00:49 +00:00
Roger Dingledine
c35373a2cf
major overhaul: dns slave subsystem, topics
...
on startup, it forks off a master dns handler, which forks off dns
slaves (like the apache model). slaves as spawned as load increases,
and then reused. excess slaves are not ever killed, currently.
implemented topics. each topic has a receive window in each direction
at each edge of the circuit, and sends sendme's at the data level, as
per before. each circuit also has receive windows in each direction at
each hop; an edge sends a circuit-level sendme as soon as enough data
cells have arrived (regardless of whether the data cells were flushed
to the exit conns). removed the 'connected' cell type, since it's now
a topic command within data cells.
at the edge of the circuit, there can be multiple connections associated
with a single circuit. you find them via the linked list conn->next_topic.
currently each new ap connection starts its own circuit, so we ought
to see comparable performance to what we had before. but that's only
because i haven't written the code to reattach to old circuits. please
try to break it as-is, and then i'll make it reuse the same circuit and
we'll try to break that.
svn:r152
2003-01-26 09:02:24 +00:00
Roger Dingledine
bf52b6d1f4
splay and rbtree implementations, by niels provos
...
taken from openbsd
svn:r151
2002-12-31 15:05:07 +00:00
Roger Dingledine
9d3e80a589
use a rbtree for replay detection, rather than linear search
...
when we had lots of new onions coming in, we were using 40% of
our time searching through the tracked_onions linked list.
svn:r150
2002-12-31 15:04:14 +00:00
Roger Dingledine
0b717a3e74
give us more aci-space
...
svn:r149
2002-12-30 08:51:41 +00:00
Roger Dingledine
fbf4ca3ff8
bugfix: couldn't send two creates, two datas, and the destroy all at once
...
(amazing the odd behavior you get to test when you have a flaky modem
connection)
svn:r148
2002-12-23 06:48:14 +00:00
Roger Dingledine
cbd2cdf04f
onions go on and off the network correctly now
...
we're closer to an OS X port
CVS: ----------------------------------------------------------------------
svn:r146
2002-12-03 22:18:23 +00:00
Roger Dingledine
bd97deb919
onions expire after a day, not an hour
...
this was a major faq, because it would fail with an error only on
the *server* side when the client-side time was wrong. the client would
simply not work.
svn:r145
2002-12-03 07:06:13 +00:00
Roger Dingledine
8f2beefca4
was leaking 28 bytes every 100 minutes
...
svn:r144
2002-12-03 05:12:30 +00:00
Roger Dingledine
ac10bb6319
two more rare race conditions
...
svn:r143
2002-11-28 07:32:30 +00:00
Roger Dingledine
8f18647a33
create cells are now queued and processed only when idle
...
we also queue data cells destined for a circuit that is
pending, and process them once the circuit opens
destroys reach into the queue and remove the pending onion,
along with its collected data cells
svn:r142
2002-11-27 04:08:20 +00:00
Roger Dingledine
147879ab17
removing more unused files
...
svn:r141
2002-11-25 01:22:34 +00:00
Roger Dingledine
b097aa3288
per-second cell statistics to help with profiling
...
svn:r140
2002-11-24 08:45:54 +00:00
Roger Dingledine
f50f35f2ec
added milliseconds to log lines
...
svn:r139
2002-11-24 08:45:13 +00:00
Roger Dingledine
5a82a491a8
fixed rare race condition
...
svn:r138
2002-11-24 08:33:15 +00:00
Roger Dingledine
ab0aee04d9
added OnionsPerSecond to prevent create flooding
...
first cut, probably needs more playing with
svn:r137
2002-11-23 08:49:03 +00:00
Roger Dingledine
00a9e3732e
remove popt dependency, consolidate config stuff
...
reformat parts of onion.c
svn:r136
2002-11-23 06:49:01 +00:00
Roger Dingledine
121d029584
fix subtle race condition
...
If you weren't connected to a given router, and you made a directory
request to it simultaneously with a new web query that caused you to
want to connect to that OR... it would think you're already connected.
svn:r135
2002-10-14 06:44:48 +00:00
Roger Dingledine
84a34edfa1
expire unfinished handshakes too
...
don't list non-open ORs in the directory
svn:r134
2002-10-13 13:17:27 +00:00
Roger Dingledine
74787aa2d4
cell.c is now obsolete
...
svn:r133
2002-10-03 02:17:41 +00:00
Roger Dingledine
bf53852a00
cleanup and a variety of bugfixes
...
svn:r132
2002-10-02 22:54:20 +00:00
Nick Mathewson
bef3424bec
Add convenience functions to wrap create and init for symmetric ciphers; clean up error handling in onion.c
...
svn:r131
2002-10-02 20:39:51 +00:00