Roger Dingledine
aaf35cccf7
karsten's second refactoring patch
...
svn:r12607
2007-11-29 15:25:04 +00:00
Nick Mathewson
6fcda5299f
r14727@31-33-67: nickm | 2007-11-05 18:34:35 -0500
...
Make VERSIONS variable-length.
svn:r12391
2007-11-05 23:34:39 +00:00
Nick Mathewson
9a20a64b62
r16438@catbus: nickm | 2007-11-05 16:45:45 -0500
...
Initial code for variable-length cells. CERT and VERSIONS need to use them.
svn:r12390
2007-11-05 21:46:35 +00:00
Roger Dingledine
e5885deab5
Separate "SOCKS_COMMAND_CONNECT_DIR" into two flags in
...
edge_connection_t: want_onehop if it must attach to a circuit with
only one hop (e.g. for the current tunnelled connections that use
begin_dir), and use_begindir if we mean to use a BEGIN_DIR relay
command to establish the stream rather than the normal BEGIN. Now
we can make anonymized begin_dir connections for (e.g.) more secure
hidden service posting and fetching.
svn:r12244
2007-10-28 08:16:19 +00:00
Peter Palfrader
1a94e84661
Say "using socksX _to_ port y" instead of "socksX _on_ port y". it confuses weasel less
...
svn:r11834
2007-10-10 15:44:34 +00:00
Nick Mathewson
91f83cfc2d
r14830@catbus: nickm | 2007-08-29 13:50:10 -0400
...
Make controllers accept LF as well as CRLF. Update spec to reflect this. Remove now-dead code. Make controller warning about v0 protocol more accurate.
svn:r11299
2007-08-29 19:02:33 +00:00
Nick Mathewson
480db0f00a
r14034@catbus: nickm | 2007-07-31 05:22:56 -0400
...
possible fix for bug 473: always set buf->cur on buf_remove_from_front.
svn:r11004
2007-07-31 09:31:15 +00:00
Nick Mathewson
9fb77a6479
Disable SENTINELS in buffers: it may be responsible for making platform mallocs() be inefficient, and we havent needed it in a long long time.
...
svn:r10994
2007-07-30 17:51:14 +00:00
Nick Mathewson
9260a824ef
Yet another buffer RAM patch: tNever ever ever keep a buffer memory chunk around for an empty buffer that could go on the freelist. This wants profiling to make sure that performance doesnt suffer.
...
svn:r10993
2007-07-30 17:47:43 +00:00
Nick Mathewson
0d274e1db1
r13952@catbus: nickm | 2007-07-27 19:18:46 -0400
...
Weasel noticed that many buffers spend their time with empty 4k, 8k, and 16k memory chunks. Thus, be more aggressive about putting empty chunks on the freelist, regardless of their high water marks. (Also, run buffer_shrink_freelist on the 8k-chunk freelist.)
svn:r10953
2007-07-27 23:19:02 +00:00
Nick Mathewson
a5477c7bb9
r13944@catbus: nickm | 2007-07-27 15:52:35 -0400
...
Fix warnings on platforms where rlim values can be signed.
Add an 8k buffer freelist.
svn:r10948
2007-07-27 19:53:29 +00:00
Nick Mathewson
bc9a7be943
r13939@catbus: nickm | 2007-07-27 14:33:22 -0400
...
When dumping memory usage, list bytes used in buffer memory free-lists.
svn:r10947
2007-07-27 18:33:37 +00:00
Roger Dingledine
a1ab2c8087
free bridge list on exit; try harder to free buffer freelists on exit.
...
svn:r10854
2007-07-17 11:33:38 +00:00
Roger Dingledine
fcbb817db5
free another string, and the buffer freelists, on exit.
...
svn:r10851
2007-07-17 09:26:45 +00:00
Nick Mathewson
5adfa09fce
r13477@catbus: nickm | 2007-06-17 14:22:03 -0400
...
Sun CC likes to give warnings for the do { } while(0) construction for making statement-like macros. Define STMT_BEGIN/STMT_END macros that do the right thing, and use them everywhere.
svn:r10645
2007-06-17 18:22:39 +00:00
Nick Mathewson
1866ad3506
r13274@catbus: nickm | 2007-06-05 19:06:30 -0400
...
Remove some deadcode that seems unlikely to return
svn:r10509
2007-06-06 04:51:25 +00:00
Nick Mathewson
9aaf3d182f
r12934@catbus: nickm | 2007-05-24 14:11:18 -0400
...
When freeing slack buffers, free the buffers at the end of the freelist first.
svn:r10313
2007-05-24 18:12:41 +00:00
Nick Mathewson
e043b86f47
r12764@catbus: nickm | 2007-05-15 17:17:39 -0400
...
Enable (and cope with) more GCC 4.2 warnings.
svn:r10196
2007-05-15 21:17:48 +00:00
Nick Mathewson
e3b2a7b53b
r12935@Kushana: nickm | 2007-05-10 11:25:09 -0400
...
Make buffer unit tests pass again
svn:r10158
2007-05-10 15:25:40 +00:00
Roger Dingledine
8e8144cd58
fix a printf size_t/int mismatch from r10150
...
svn:r10152
2007-05-10 04:04:44 +00:00
Nick Mathewson
34a09c24b5
r12706@catbus: nickm | 2007-05-09 18:39:46 -0400
...
Keep two freelists for buffer ram chunks: one of 4k chunks, and one of 16k chunks. Also, document the whole business.
svn:r10150
2007-05-09 22:39:49 +00:00
Nick Mathewson
b248ed620f
r12704@catbus: nickm | 2007-05-09 17:43:34 -0400
...
Periodically clean the freelist of buffer memory chunks.
svn:r10149
2007-05-09 21:43:41 +00:00
Roger Dingledine
3d00738ec7
simplify connection_watch_events()
...
hope this doesn't break it
svn:r10025
2007-04-25 07:20:04 +00:00
Nick Mathewson
94eef608ae
r12784@Kushana: nickm | 2007-04-23 19:24:09 -0400
...
Avoid another assert failure in the new buffer memory code. (This time, it hit when freeing a 4k buffer with some data on it.)
svn:r10011
2007-04-23 23:24:53 +00:00
Nick Mathewson
3831d77dba
r12782@Kushana: nickm | 2007-04-23 18:20:19 -0400
...
Avoid a segfault when freeing a buffer with size 0.
svn:r10010
2007-04-23 22:20:45 +00:00
Nick Mathewson
2f4784cbd8
r12499@catbus: nickm | 2007-04-23 10:42:23 -0400
...
Keep a freelist of unused 4k buffer chunks, rather than wasting 8k for every inactive connection_t.
svn:r10006
2007-04-23 14:42:27 +00:00
Nick Mathewson
473c266fc2
r12496@catbus: nickm | 2007-04-22 23:04:05 -0400
...
When logging memory usage, break down memory used in buffers by buffer type.
svn:r10004
2007-04-23 03:04:46 +00:00
Nick Mathewson
648065fcb4
r12763@Kushana: nickm | 2007-04-20 18:42:58 -0400
...
Initial version of code to stop using socket pairs for linked connections. Superficially, it seems to work, but it probably needs a lot more testing and attention.
svn:r9995
2007-04-21 17:26:12 +00:00
Nick Mathewson
92f62b3684
r12077@catbus: nickm | 2007-03-04 16:08:23 -0500
...
Remove support for v0 control protocol from 0.2.0.x trunk; send back error when we receive a v0 control message. (Leave "if(v1){...}"blocks indented for now so this patch is easier to read.) ((Finally, the linecount goes _down_ a little.))
svn:r9735
2007-03-04 21:08:28 +00:00
Roger Dingledine
50f22e858a
doc pedant
...
svn:r9634
2007-02-24 07:50:38 +00:00
Nick Mathewson
11e5656ab7
r11826@catbus: nickm | 2007-02-16 14:58:38 -0500
...
Resolve 56 DOCDOC comments.
svn:r9594
2007-02-16 20:01:02 +00:00
Nick Mathewson
759c58151e
r11775@catbus: nickm | 2007-02-12 16:39:09 -0500
...
Update copyright dates.
svn:r9570
2007-02-12 21:39:53 +00:00
Nick Mathewson
fefba95363
r11629@catbus: nickm | 2007-02-02 15:06:17 -0500
...
Removing the last DOCDOC comment hurt so much that I had to use Doxygen to identify undocumented macros and comments, and add 150 more DOCDOCs to point out where they were. Oops. Hey, kids! Fixing some of these could be your first Tor patch!
svn:r9477
2007-02-02 20:06:43 +00:00
Nick Mathewson
ead35ef944
r11957@Kushana: nickm | 2007-01-15 15:25:57 -0500
...
Patch from Mike Perry: Track reasons for OR connection failure; display them in control events. Needs review and revision.
svn:r9354
2007-01-15 21:13:37 +00:00
Nick Mathewson
c8466c5919
r11824@Kushana: nickm | 2007-01-03 17:15:28 -0500
...
control-spec: upcase arguments in status events; note unimplemented events individually
r11825@Kushana: nickm | 2007-01-03 17:41:43 -0500
Implement EXTERNAL IP server status event.
r11826@Kushana: nickm | 2007-01-03 17:47:10 -0500
Implement BAD_SERVER_DESCRIPTOR server status event.
r11827@Kushana: nickm | 2007-01-03 18:01:56 -0500
Implement SOCKS_UNKNOWN_PROTOCOL and DANGEROUS_SOCKS client events.
r11828@Kushana: nickm | 2007-01-03 18:23:22 -0500
Implement BUG controller events. Also, flush ERR-level status events just like ERR-level log messages.
r11829@Kushana: nickm | 2007-01-03 23:37:27 -0500
Yet more status events: CLOCK_SKEW, GOOD/ACCEPTED_SERVER_DESCRIPTOR, {CHECKING_}REACHABILITY_{SUCCEEDED|FAILED}
r11833@Kushana: nickm | 2007-01-05 16:56:37 -0500
Note some unimplementedness in control-spec.txt
svn:r9279
2007-01-06 05:42:31 +00:00
Roger Dingledine
30e4f4f6ce
when we're doing a write split over the end of a circular
...
buffer, make sure our tls_get_forced_write_size doesn't
make it write whatever's after the buffer.
this hasn't triggered yet, but it would be rare, so let's
leave it in.
svn:r9107
2006-12-14 03:26:42 +00:00
Nick Mathewson
c9c8072bd3
r11569@Kushana: nickm | 2006-12-13 17:59:58 -0500
...
fix last fix
svn:r9106
2006-12-13 23:00:05 +00:00
Nick Mathewson
43e06eba8b
r11566@Kushana: nickm | 2006-12-13 17:46:24 -0500
...
Try to fix an assert failure in new write limiting code: make buffers.c aware of previous "forced" write sizes from tortls.
svn:r9105
2006-12-13 22:46:42 +00:00
Roger Dingledine
0dbf725927
Infrastructure to test BEGIN_DIR cells.
...
New socks command CONNECT_DIR. New config option TunnelDirConns that
builds a circ ending at the directory server and delivers a BEGIN_DIR
cell if it's running 0.1.2.2-alpha or later. We still need to make
one-hop circs when appropriate, while making other conns avoid them.
svn:r9098
2006-12-13 00:28:56 +00:00
Nick Mathewson
ad1f019110
r9317@totoro: nickm | 2006-11-13 22:45:33 -0500
...
Fix some more mipspro warnings. Nothing should remain excecpt "conversion from pointer to same-sized integral type."
svn:r8950
2006-11-14 03:45:48 +00:00
Nick Mathewson
1913cb915e
r9308@totoro: nickm | 2006-11-13 18:41:23 -0500
...
Add support for (Free?)BSD's natd, which was an old way to let you
have your firewall automatically redirect traffic. (Original patch
from Zajcev Evgeny, updated for 0.1.2.x by tup.)
svn:r8946
2006-11-14 00:06:31 +00:00
Roger Dingledine
8f7940348f
Avoid an infinite loop on evil controlport input. Fixes bug 350,
...
unless it doesn't. (Nick, please confirm.)
Backport candidate.
svn:r8844
2006-10-28 08:17:02 +00:00
Roger Dingledine
7d33c4b904
clean up and downgrade some log messages
...
svn:r8727
2006-10-15 07:42:51 +00:00
Nick Mathewson
213658f117
r8894@Kushana: nickm | 2006-09-21 18:30:42 -0400
...
Specify and implement SOCKS5 interface for reverse hostname lookup.
svn:r8451
2006-09-22 00:43:55 +00:00
Nick Mathewson
93beeac01d
Merge in some bsockets calls, all wrapped inside #if defined(USE_BSOCKETS)
...
svn:r8427
2006-09-19 20:41:31 +00:00
Nick Mathewson
dbe0c6f6ef
r8609@Kushana: nickm | 2006-08-27 17:24:27 -0400
...
Add some doxygen, concentrated in dns.c
svn:r8256
2006-08-28 03:16:02 +00:00
Nick Mathewson
fd36eb0788
r8576@Kushana: nickm | 2006-08-25 17:16:01 -0400
...
Fix bug 314: Instead of checking address_in_virtualrange, check addressmap_have_mapping(). This should be more accurate. [Rename to addressmap_have_mapping() from addressmap_already_mapped().]
svn:r8226
2006-08-25 21:16:22 +00:00
Roger Dingledine
0649fa14c1
make our socks5 handling more robust to broken socks clients:
...
throw out everything waiting on the buffer in between socks
handshake phases, since they can't possibly (so the theory
goes) have predicted what we plan to respond to them.
svn:r8223
2006-08-24 04:51:55 +00:00
Roger Dingledine
3d79eb52ab
stick to nick's nul/null convention
...
svn:r6763
2006-07-15 19:21:30 +00:00
Nick Mathewson
b4b8da5d23
Turn a while into a do/while; save a redundant test
...
svn:r6683
2006-06-24 02:10:21 +00:00
Nick Mathewson
5c0d7fb016
Resolve control flow warning.
...
svn:r6658
2006-06-18 20:39:46 +00:00
Nick Mathewson
0932f463ff
Ah. That seems to work.
...
svn:r6657
2006-06-18 16:39:26 +00:00
Nick Mathewson
5ba72d0ae5
another write_to_buf_zlib fix.
...
svn:r6656
2006-06-18 16:20:38 +00:00
Nick Mathewson
a9cffd2ff0
Re-enable buffer RAM guard values.
...
svn:r6653
2006-06-18 15:53:54 +00:00
Nick Mathewson
11c2e97d51
Another _zlib fix.
...
svn:r6652
2006-06-18 09:03:48 +00:00
Nick Mathewson
10b7b57616
Temporarily disable sentinels on buffers
...
svn:r6649
2006-06-18 08:44:34 +00:00
Nick Mathewson
9376d901ed
make zlib buffer function set buf_highwater properly
...
svn:r6648
2006-06-18 08:21:27 +00:00
Nick Mathewson
cd38511a1e
Part of incremental encryption logic for buffers: there is a subtle yucky point documented in a comment.
...
svn:r6637
2006-06-18 07:27:47 +00:00
Roger Dingledine
fab1feee26
complain when we hit wsaenobufs on recv or write too.
...
perhaps this will help us hunt the bug.
svn:r6321
2006-04-08 07:54:11 +00:00
Roger Dingledine
d8195e4128
Implement Jason Holt's SafeSocks config option.
...
Also put a URL in the warning message for unsafe socks4 use --
previously we'd only had the URL for unsafe socks5 use. Oops.
svn:r6190
2006-03-19 01:44:53 +00:00
Roger Dingledine
9a5df4cef5
resume being printist: if the hostname contains non-printable
...
characters, then fail. this time don't even bother telling the
server operator about these cases, because what's he going to do?
if it turns out that some significant population somewhere in the
world uses non-printable hostnames and wants to use tor, then i
hereby assume that they will contact us.
svn:r6171
2006-03-15 23:36:57 +00:00
Roger Dingledine
e8fd871d8b
Stop being printist: just because our local platform doesn't
...
consider an alleged destination to be printable doesn't mean
nobody in the world will want to use it.
svn:r6167
2006-03-15 19:17:34 +00:00
Nick Mathewson
bd8ffccae7
More cleanups noticed by weasel; also, remove macros that nobody uses.
...
svn:r6143
2006-03-12 23:31:16 +00:00
Nick Mathewson
5777ee0e1a
Add some functions to escape values from the network before sending them to the log. Use them everywhere except for routerinfo->plaftorm, routerinfo->contact_info, and rend*.c. (need sleep now)
...
svn:r6087
2006-03-05 09:50:26 +00:00
Roger Dingledine
36484f873a
convert some more source files to the new log convention
...
svn:r6002
2006-02-13 08:28:42 +00:00
Roger Dingledine
5f051574d5
Happy new year!
...
svn:r5949
2006-02-09 05:46:49 +00:00
Nick Mathewson
1af630d32c
Bite the bullet and limit all our source lines to 80 characters, the way IBM intended.
...
svn:r5582
2005-12-14 20:40:40 +00:00
Roger Dingledine
58366ffd24
when we changed from log_fn to debug/info/notice/warn/err,
...
we screwed up the formatting in wild and unpredictable ways.
fix it before it becomes convention to format logs in wild and
unpredictable ways.
still need to do src/common/ someday.
svn:r5551
2005-12-10 09:36:26 +00:00
Nick Mathewson
39265dd72e
In my private little universe, terminals are still 80 columns. Impose a 160-character-per-line limit; this will creep down.
...
svn:r5548
2005-12-09 05:37:26 +00:00
Nick Mathewson
fea19528a1
assert_buf_ok was showing up in the profile; remove it from critical-path functions, since it hasnt triggered for ages.
...
svn:r5479
2005-11-30 22:48:58 +00:00
Roger Dingledine
c4aa9e7941
Add a new config option TestSocks so people can see if their
...
applications are using socks4, socks4a, socks5-with-ip, or
socks5-with-hostname. This way they don't have to keep mucking
with tcpdump and wondering if something got cached somewhere.
svn:r5399
2005-11-16 23:37:35 +00:00
Roger Dingledine
bf2be9abd7
Do round-robin writes of at most 16 kB per write. This might
...
be more fair on loaded Tor servers, and it might resolve our
Windows crash bug. It might also slow things down.
svn:r5332
2005-10-29 18:19:37 +00:00
Nick Mathewson
5d85560d9e
Remove last vestiges of old logging interface.
...
svn:r5317
2005-10-25 18:01:01 +00:00
Nick Mathewson
f9b0be526e
Use LD_BUG as appropriate; convert rend* and router* to new logging interface; use new circ_log_path interface
...
svn:r5302
2005-10-24 19:39:45 +00:00
Nick Mathewson
55f2ab9cc3
Migrate a few more files to domained logging
...
svn:r5285
2005-10-18 22:21:29 +00:00
Nick Mathewson
998cf8d622
Try to extract as many descriptors as possible from truncated http responses. (when DIR_PURPOSE_FETCH_ROUTERDESC)
...
svn:r5249
2005-10-14 02:26:13 +00:00
Nick Mathewson
ba24193ab5
Make doxygen marginally happier
...
svn:r5208
2005-10-06 04:33:40 +00:00
Nick Mathewson
de198d800b
Never call free() on tor_malloc()d memory. This is unlikely to be our current leak, but it may help dmalloc work.
...
svn:r5168
2005-09-30 20:47:58 +00:00
Nick Mathewson
92451f74a8
Reformat inconsistent function declarations.
...
svn:r5160
2005-09-30 01:09:52 +00:00
Roger Dingledine
fba01c3cc0
bugfix: we were whining about using socks4 or socks5-with-local-lookup
...
even when they used an IP in the "virtual" range we designed exactly
for this case.
svn:r5142
2005-09-24 21:56:04 +00:00
Roger Dingledine
6a52aa52fe
fix a pair of hard-coded urls
...
svn:r4887
2005-08-30 07:01:30 +00:00
Nick Mathewson
4870877231
Add SOCKSAndDNS link to appropriate log message, since we wind up pointing everybody to it anyway
...
svn:r4695
2005-08-04 20:12:44 +00:00
Nick Mathewson
0828feaf7c
Add belt-and-suspenders fix to coredump from yesterday; document more functions in buffers.c
...
svn:r4532
2005-07-12 18:19:30 +00:00
Roger Dingledine
8f9790a023
fix a seg fault with autodetecting which controller version is being used
...
svn:r4531
2005-07-12 05:48:15 +00:00
Roger Dingledine
9c67ae34f1
overall cleanup and streamlining and doccing
...
also fix a DoS avenue on dirservers
svn:r4468
2005-06-20 23:04:13 +00:00
Nick Mathewson
9b4aa8d2ab
Implement all the easy bits of the new control protocol
...
svn:r4449
2005-06-17 20:37:21 +00:00
Nick Mathewson
f9f09f1c5e
Start implementing framework for revised control spec.
...
svn:r4447
2005-06-17 18:49:55 +00:00
Roger Dingledine
91b1fb7ff7
some more cleaning and docing
...
svn:r4415
2005-06-11 21:17:38 +00:00
Nick Mathewson
232861ba42
Docment or add DOCDOC comments to undocumented functions in src/or. Make function definition format uniform.
...
svn:r4411
2005-06-11 18:52:12 +00:00
Roger Dingledine
2587fa09f9
move more docs into our code
...
svn:r4406
2005-06-11 06:07:22 +00:00
Roger Dingledine
fcd0fc3364
flesh out the source file descriptions for doxygen
...
svn:r4404
2005-06-11 05:31:17 +00:00
Nick Mathewson
0831823763
Change end-of-file NLNL convention. It turns out arma I and I agree.
...
svn:r4382
2005-06-09 19:03:31 +00:00
Roger Dingledine
d922fa7b10
fix another underflow in keeping stats
...
these size_ts are subtle buggers
svn:r4364
2005-06-09 03:57:54 +00:00
Nick Mathewson
87caad5445
Fix an underflow in buffer use conting.
...
svn:r4360
2005-06-08 21:55:02 +00:00
Nick Mathewson
b0538591c7
Reset buf->highwater every time buf_shrink is called, not just on suffessful shrink.
...
svn:r4353
2005-06-08 20:17:32 +00:00
Roger Dingledine
4c43789435
Some play code to throw away old buffers sometimes rather
...
than constantly reallocing them; just in case this is our memory
problem. It looks for now like it isn't, so disabled.
svn:r4349
2005-06-08 17:27:11 +00:00
Nick Mathewson
baa10cbbfa
Instrument buffers.c and rephist.c memory usage
...
svn:r4317
2005-06-06 17:03:21 +00:00
Roger Dingledine
5265bbd2b8
first iteration of scrubbing sensitive strings from logs.
...
also generally clean up log messages.
svn:r4174
2005-05-03 10:04:08 +00:00
Nick Mathewson
8b9ae25224
Change some >=s to >s in buf_resize, so that we do not denormalize buffers on resize.
...
svn:r4172
2005-05-03 03:25:04 +00:00
Nick Mathewson
14bac4dad4
Elaborate on buf_shrink comment.
...
svn:r4169
2005-05-02 23:41:39 +00:00
Roger Dingledine
aa6bcd50ca
comment buf_shrink
...
svn:r4168
2005-05-02 23:39:09 +00:00
Nick Mathewson
ad547cbb8c
Correct and simplify buf_shrink logic
...
svn:r4167
2005-05-02 23:36:13 +00:00
Nick Mathewson
d6a6c8785b
When removing all bytes from a buffer, reset buf->cur=buf->mem
...
svn:r4166
2005-05-02 23:32:23 +00:00
Nick Mathewson
a312ce1d3b
Change buffer shrinking strategy: only try to shrink once every 3 minutes. Do not try to read over buffer size unless buffer is nearly empty.
...
svn:r4165
2005-05-02 23:17:08 +00:00
Nick Mathewson
9c683c7613
Make buffer shrinking algorithm a little smarter.
...
svn:r4164
2005-05-02 22:49:24 +00:00
Nick Mathewson
fe65e57ca1
Re-do fragmented control message handling to work with new buf_t system.
...
svn:r4144
2005-04-27 22:01:34 +00:00
Nick Mathewson
d0a9a8bdd3
Appease VC7. It has a strangely puritanical attitude about what programmers are allowed to do a consenting void*.
...
svn:r4140
2005-04-27 20:02:52 +00:00
Nick Mathewson
53607d3bb3
Turn SENTINELS back on; give NOINLINE a name and turn it off.
...
svn:r4139
2005-04-27 19:40:31 +00:00
Roger Dingledine
4c4a14e3cb
turn off the mongo debugging stuff, for performance tests
...
svn:r4137
2005-04-27 17:21:42 +00:00
Nick Mathewson
52376dc9e8
Rename buf->start to buf->cur; fix bug in read_to_buf; still debug with paranoia.
...
svn:r4130
2005-04-27 02:55:21 +00:00
Nick Mathewson
746768df5d
Add even more debugging code; temporarily disable inlines in buffers.c
...
svn:r4129
2005-04-27 00:53:44 +00:00
Roger Dingledine
2a7aec0ffd
fix function prototype, fix typo
...
svn:r4126
2005-04-26 21:29:20 +00:00
Nick Mathewson
ecc76d8245
Avoid overflow on wrapping a TLS read.
...
svn:r4125
2005-04-26 21:20:22 +00:00
Nick Mathewson
9ba2dd7ea1
Clean/renormalize whitespace
...
svn:r4122
2005-04-26 20:55:32 +00:00
Nick Mathewson
ef2409e4ed
Change the implementation of buf_t a lot: make it a ring buffer to minimize memmove on flush. This may break the universe, but it is probably Necessary For Perfomance.
...
svn:r4121
2005-04-26 20:53:22 +00:00
Roger Dingledine
12ea3a26b2
bugfix: make a debug log stop lying
...
svn:r4110
2005-04-25 15:43:05 +00:00
Nick Mathewson
5827e2e216
Fix "JAP-client" hideous ASN1 bug, twice. (Fix1: check more thoroughly for TLS errors when handling certs. Fix2: stop assert(0)ing on uncaught TLS errors.)
...
svn:r4085
2005-04-23 14:26:02 +00:00
Roger Dingledine
97637549bb
tie MAX_DIR_SIZE to MAX_BUF_SIZE
...
resolve bug 80
svn:r4052
2005-04-07 22:13:17 +00:00
Nick Mathewson
0e81265359
update copyright notices.
...
svn:r3982
2005-04-01 20:15:56 +00:00
Nick Mathewson
97dad670ea
Renormalize whitespace
...
svn:r3757
2005-03-14 03:18:35 +00:00
Nick Mathewson
aaf70df3bd
Fix signed/unsigned warning
...
svn:r3736
2005-03-10 18:45:42 +00:00
Nick Mathewson
b494c2223d
Specify and implement fragmented control messages to allow for (among other things) long GETINFO replies. Otherwise we could hit the 64K barrier on questions like "please dump your client-side DNS cache."
...
svn:r3726
2005-03-02 20:22:10 +00:00
Nick Mathewson
4ddf768a4f
Forward-port new reasons; clean up code more; add code to convert new reasons to SOCKS5 reply codes; add code to convert errnos to reasons. New code still needs to get invoked.
...
svn:r3719
2005-03-01 22:16:15 +00:00
Nick Mathewson
6e6d95b3db
Change from inet_ntoa to a threadproof tor_inet_ntoa.
...
svn:r3656
2005-02-22 08:18:36 +00:00
Roger Dingledine
a005509c9d
update url for when users try to use socksport as an http proxy
...
svn:r3265
2005-01-03 23:19:15 +00:00
Roger Dingledine
f50b785c3b
and forward port the cleanup
...
svn:r3211
2004-12-22 10:04:50 +00:00
Roger Dingledine
18320557a1
fix a crash: if you do socks4 with an IP of 0.0.0.x then we get tricked
...
into thinking you're doing socks4a, and we look for the next byte.
thanks to aphex for finding this.
svn:r3207
2004-12-22 09:52:29 +00:00
Roger Dingledine
ad4f440e10
rearrange debug logs to make more sense
...
svn:r3116
2004-12-07 21:57:10 +00:00
Nick Mathewson
b457cfb5eb
Spell-check strings and comments
...
svn:r3052
2004-12-01 03:48:14 +00:00
Nick Mathewson
7fbd297532
Suggestion from weasel: Make tor --version --version dump the cvs Id of every file.
...
svn:r3019
2004-11-29 22:25:31 +00:00
Roger Dingledine
22727b4edc
wrong is ok, and right is fine, but in between is apparently
...
totally unacceptable to me.
svn:r3005
2004-11-28 11:39:53 +00:00
Nick Mathewson
6f5dbefa7e
Normalize space: add one between every control keyword and control clause.
...
svn:r3003
2004-11-28 09:05:49 +00:00
Nick Mathewson
f77ff938b7
remember; tor_socket_errno has side effects!
...
svn:r2997
2004-11-28 05:48:02 +00:00
Roger Dingledine
7c9a707900
remove emacs droppings, since nick says he doesn't need them anymore
...
svn:r2989
2004-11-26 04:00:55 +00:00
Roger Dingledine
27b8797245
clean up some more.
...
i think i'm getting closer.
svn:r2931
2004-11-21 11:20:28 +00:00
Nick Mathewson
aa1c0c4d67
Resolve FIXME items: fix assert failure on malformed socks4a qreuests. (bug reported by Anna Shubina wrt old Netscapes)
...
svn:r2790
2004-11-10 14:26:34 +00:00
Nick Mathewson
66779137bf
Add missing dereference; stop throwing zeroes around.
...
svn:r2702
2004-11-07 22:18:00 +00:00
Roger Dingledine
394554cfbf
Clean up copyrights.
...
Break connection_consider_empty_buckets() out of
connection_read_bucket_decrement().
svn:r2698
2004-11-07 01:33:06 +00:00
Nick Mathewson
d9e0f3f9bc
Make sure control command bodies are always followed by a NUL
...
svn:r2678
2004-11-04 22:30:49 +00:00
Nick Mathewson
347d3f9d62
Start implementing control interface.
...
svn:r2652
2004-11-03 01:32:26 +00:00
Nick Mathewson
6980929e64
Use strlcpy, not strcpy.
...
svn:r2610
2004-10-27 06:48:16 +00:00
Roger Dingledine
de65052312
don't assert multiple things in the same tor_assert()
...
svn:r2544
2004-10-16 22:14:52 +00:00
Nick Mathewson
1c9426d6e0
Build without warnings on mac gcc 3.3
...
svn:r2487
2004-10-14 03:18:14 +00:00
Roger Dingledine
aebc3a03ba
more int to size_t conversions, fixing one or more amd64 bugs
...
plus a whitespace patch on config.c from vicman
svn:r2482
2004-10-14 02:47:09 +00:00
Roger Dingledine
0b4d3c4df7
parse HttpProxy address in config
...
fix a potential confusion in fetch_from_buf_http()
make all our int config options non-negative
better bounds checking on options that are ports
svn:r2456
2004-10-12 20:22:09 +00:00
Nick Mathewson
f6fc2b9dd2
Add fix for remote-crash bug.
...
svn:r2447
2004-10-12 18:38:36 +00:00
Roger Dingledine
44ff309c26
touch-ups
...
svn:r2192
2004-08-07 09:01:04 +00:00
Roger Dingledine
dbf150bd4e
list the port and socks version when complaining about unsafe socks
...
svn:r2188
2004-08-07 04:03:01 +00:00
Roger Dingledine
6e9bdc862c
when they use tor as an http proxy, point them at a better url
...
svn:r2161
2004-08-06 19:44:17 +00:00
Roger Dingledine
8b55f73bbe
put the have_warned_about_unsafe_socks static var inside the function
...
svn:r2128
2004-08-04 01:08:10 +00:00
Roger Dingledine
8cb4124121
warn if we use an unsafe socks variant
...
for now, warn every time. we should decide how often we want to warn;
one problem here is that there are several scenarios where we use an
unsafe socks variant safely, so the warning may be inaccurate. hm.
svn:r2126
2004-08-03 23:42:33 +00:00
Roger Dingledine
379768290e
fix a bug related to reading usernames for socks4
...
this hasn't bitten us yet, but hey.
svn:r2026
2004-07-12 16:51:05 +00:00
Roger Dingledine
207fcb35d1
tweaks and bugfix on resolve/resolved code
...
svn:r1980
2004-06-17 21:11:09 +00:00
Nick Mathewson
3708886939
Implement RESOLVE/RESOLVED cells and socks resolve code
...
svn:r1978
2004-06-17 18:13:09 +00:00
Roger Dingledine
4181d18b3d
declare the epipe bug a non-bug.
...
now we catch and ignore epipe signals, and when write returns epipe,
we simply return -1 and close the socket/connection.
svn:r1928
2004-06-01 17:31:13 +00:00
Nick Mathewson
ba14428d66
Fix segfault
...
svn:r1895
2004-05-19 19:28:24 +00:00
Nick Mathewson
7511fbf993
Resolve some XXXs
...
svn:r1889
2004-05-18 15:35:21 +00:00
Nick Mathewson
720281b32e
Close rogue <b>s
...
svn:r1838
2004-05-10 07:27:29 +00:00
Roger Dingledine
c6d4a00c5f
more doxygen markup
...
plenty more remains
svn:r1824
2004-05-09 16:47:25 +00:00
Nick Mathewson
93576d5289
Add doxygen markup for util and buffers
...
svn:r1820
2004-05-07 17:04:12 +00:00
Nick Mathewson
682a805092
Comments for nearly all non-tricky files
...
svn:r1796
2004-05-05 21:32:43 +00:00
Roger Dingledine
25909c2c29
patches on patches
...
svn:r1763
2004-05-02 03:15:55 +00:00
Nick Mathewson
f6fe336ad4
Documenmt buffers.c; remove function that nobody ever calls.
...
svn:r1760
2004-05-01 22:08:43 +00:00
Nick Mathewson
6fa2ded74c
Fix windows compile
...
svn:r1757
2004-05-01 20:55:31 +00:00
Nick Mathewson
908ccb9dcd
Handle windows socket errors correctly; comment most of common.
...
svn:r1756
2004-05-01 20:46:28 +00:00
Nick Mathewson
7055f837ab
Make Tor build on win32 with VC6 without warnings.
...
svn:r1739
2004-04-28 20:13:21 +00:00
Nick Mathewson
06624df622
Log number of bytes pending after read.
...
svn:r1726
2004-04-26 23:05:58 +00:00
Nick Mathewson
ad07c62938
Add a macro to catch unhandled openssl errors.
...
svn:r1723
2004-04-26 23:00:07 +00:00
Roger Dingledine
e34c201bb3
and other debugs
...
svn:r1722
2004-04-26 22:22:18 +00:00
Roger Dingledine
80d0b634a4
add a debugging entry, to find the wants-to-read-but-can't bug
...
svn:r1719
2004-04-26 21:15:06 +00:00
Roger Dingledine
25d54257fb
use tor_assert
...
remove obsolete BUF_OK macro
svn:r1697
2004-04-25 20:37:37 +00:00
Roger Dingledine
36d7cc8529
make the max buf size 10 megabytes, not 1 megabyte
...
need to implement flexible buffer sizes soon
svn:r1553
2004-04-08 02:19:35 +00:00
Nick Mathewson
789df20e7d
There is no need to cast void* to other pointer types.
...
svn:r1524
2004-04-07 20:11:28 +00:00
Nick Mathewson
ba196a9d17
Use (set|get)_uint(16|32) in lieu of memcpy where reasonable.
...
svn:r1462
2004-04-03 03:07:25 +00:00
Roger Dingledine
b4a61d1ab1
better way: always nul-terminate. then sometimes use it, sometimes not.
...
svn:r1408
2004-03-31 05:10:34 +00:00
Roger Dingledine
87dbd36a3c
let fetch_from_buf_http tolerate nuls in the http body
...
teach directory.c about which places it needs to nul-terminate
body before it uses it, and which places it must not
svn:r1407
2004-03-31 05:01:30 +00:00
Roger Dingledine
66f878513f
deal with hardware word alignment
...
this was causing the seg faults on sparc processors
i wonder if i got them all.
svn:r1314
2004-03-20 09:30:30 +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
2da54de968
Make tor build on windows again. More work still needed
...
svn:r1247
2004-03-09 22:01:17 +00:00
Roger Dingledine
0ab367ed91
re-try streams at most 4 times
...
svn:r1242
2004-03-07 23:50:15 +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
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
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
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
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
b42b16357f
note an assert trigger, if you use an old broken netscape socks4
...
svn:r1022
2004-01-30 15:15:11 +00:00
Roger Dingledine
45a66c6955
make a relay_header_t struct and pack/unpack funcs
...
split 7-byte stream_id string into 2-byte recognized and 2-byte stream_id
fix two seg faults in fetch_from_buf_http
fix several lurking seg faults in handling unexpected relay cells
still need to
* clean up relay_crypt
* use relay dummies if there's going to be a conflict with rh.recognized
* check for a conflict when generating stream_ids
svn:r953
2003-12-19 05:09:51 +00:00
Roger Dingledine
6a19e64066
remove trailing whitespace
...
svn:r951
2003-12-17 21:09:31 +00:00
Roger Dingledine
5ecd6b6bad
make fetch_from_buf_http malloc its strings rather
...
than use fixed-size strings
reorganize directory_handle_command so it'll be easier to do more with
our directory servers
svn:r950
2003-12-17 09:42:28 +00:00
Nick Mathewson
7c439c30d0
Resolve format warnings on MacOS X 10.3
...
svn:r938
2003-12-16 05:33:11 +00:00
Roger Dingledine
0ea88d508d
oops, i broke buffers. fixed.
...
svn:r931
2003-12-14 08:15:41 +00:00
Roger Dingledine
9e3608ce7b
more friendly warning when a connection buffer overflows
...
svn:r918
2003-12-14 04:18:43 +00:00
Roger Dingledine
fe856406be
initial patches on patches
...
svn:r814
2003-11-16 17:00:02 +00:00
Nick Mathewson
dafb0e6a6e
Make AP connections wait for a circuit if none exists.
...
Also:
- Refactor socks request into a separate struct
- Add a separate 'waiting for circuit' state to AP connections
between 'waiting for socks' and 'open'.
Arma: can you check out the XXX's I've added to connection_edge? I may
be mishandling some async and close logic.
svn:r783
2003-11-11 02:41:31 +00:00
Roger Dingledine
efce1b8b3e
put small buffers back in place
...
svn:r629
2003-10-19 01:10:38 +00:00
Roger Dingledine
f96f964a19
try to make cvs more stable for now. need to test this more in a bit.
...
svn:r612
2003-10-17 10:00:01 +00:00
Roger Dingledine
afd8fa5a97
change buf->buf to buf->mem
...
maybe this will mean fewer dumb errors
svn:r599
2003-10-15 19:17:21 +00:00
Nick Mathewson
75170f052b
fix bug with overzealous shrinking; add more comments.
...
svn:r597
2003-10-15 19:07:07 +00:00
Roger Dingledine
58ec05877a
make the buffer resize stuff work
...
and make listener connections not have bufs
svn:r584
2003-10-14 03:06:48 +00:00
Nick Mathewson
ee9e54b434
Make buffers grow and shrink as needed.
...
svn:r583
2003-10-14 01:34:31 +00:00
Roger Dingledine
4d0b8f00b1
clarify the warning for unrecognized socks version
...
(generally happens when people use tor as an httpd proxy)
svn:r576
2003-10-11 23:38:20 +00:00
Roger Dingledine
b9628f266f
change WARNING to WARN
...
and fix a few typos
svn:r571
2003-10-10 01:48:32 +00:00
Nick Mathewson
36939303c9
Update LICENSE and copyright dates.
...
svn:r560
2003-10-08 02:04:08 +00:00
Roger Dingledine
a6bab569ab
socks5 now works
...
(or at least, we can talk to mozilla.)
svn:r536
2003-10-04 01:37:01 +00:00
Roger Dingledine
0f25887048
clean up connection_assert_ok compiler warnings
...
svn:r498
2003-09-27 07:33:07 +00:00
Roger Dingledine
deac704399
connection_new() can't ever fail
...
svn:r497
2003-09-27 07:28:44 +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
40d0fca63a
cleanups, bugfixes, more verbose logs
...
Fixed up the assert_*_ok funcs some (more work remains)
Changed config so it reads either /etc/torrc or the -f arg, never both
Finally tracked down a nasty bug with our use of tls:
It turns out that if you ask SSL_read() for no more than n bytes, it
will read the entire record from the network (and maybe part of the next
record, I'm not sure), give you n bytes of it, and keep the remaining
bytes internally. This is fine, except our poll-for-read looks at the
network, and there are no bytes pending on the network, so we never know
to ask SSL_read() for more bytes. Currently I've hacked it so if we ask
for n bytes and it returns n bytes, then it reads again right then. This
will interact poorly with our rate limiting; we need a cleaner solution.
svn:r481
2003-09-24 21:24:52 +00:00
Roger Dingledine
9fe1ed26ff
get network/host order working right again for socks4
...
svn:r476
2003-09-21 06:44:53 +00:00
Roger Dingledine
ed51df7453
bugfixes and note missing features
...
deal with content-length headers better when reading http
don't assume struct socks4_info is a packed struct
fail the socks handshake if destip is zero
flesh out conn_state_to_string() for dir conn
fix typo (bug) in connection_handle_read()
directory get is now called fetch, post is now upload
reopen logs on sighup
svn:r475
2003-09-21 06:15:43 +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
c0f5ddcf33
fix confirmed win32 bug
...
svn:r435
2003-09-08 23:10:24 +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
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
Nick Mathewson
cd3467bb01
Attempt to make sockets code work right on windows.
...
svn:r398
2003-08-14 17:13:52 +00:00
Roger Dingledine
c6f70e36e0
implemented total read rate limiting
...
svn:r365
2003-07-05 07:10:34 +00:00
Roger Dingledine
dbf3435cde
simplify fetch_from_buf; cull idle dnsworkers.
...
svn:r354
2003-06-25 00:31:41 +00:00
Nick Mathewson
95e5384af3
Change many files to new log_fn format
...
svn:r333
2003-06-17 22:18:26 +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
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
0560008497
terminology shift: data->relay, topic->relay, topic->stream
...
svn:r258
2003-05-01 06:42:29 +00:00
Nick Mathewson
acc33c18e2
Tests for crypto; more tests for buffers
...
svn:r234
2003-04-16 15:24:09 +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
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
b8da74d30a
get rid of those nasty tabs
...
svn:r216
2003-03-24 03:00:20 +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
Nick Mathewson
9c263b322b
Make decompression loud.
...
svn:r209
2003-03-19 22:28:52 +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
Roger Dingledine
fb2f4a0418
pack into data cells more intelligently
...
svn:r173
2003-03-10 22:40:02 +00:00
Roger Dingledine
1768f29d7e
better comments and a few patches
...
svn:r164
2003-03-04 04:36:37 +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
827c7444f8
more robust http(ish) handling
...
svn:r123
2002-09-28 05:53:00 +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
Roger Dingledine
d8c0d21b49
linkpadding is now off by default.
...
svn:r79
2002-08-23 06:49:43 +00:00
Roger Dingledine
267434bdea
Implemented congestion control
...
Servers are allowed to send 100 cells initially, and can't send more until
they receive a 'sendme' cell from that direction, indicating that they
can send 10 more cells. As it currently stands, the exit node quickly
runs out of window, and sends bursts of 10 whenever a sendme cell gets
to him. This is much much much faster (and more flexible) than the old
"give each circuit 1 kB/s and hope nothing overflows" approach.
Also divided out the connection_watch_events into stop_reading,
start_writing, etc. That way we can control them separately.
svn:r54
2002-07-18 06:37:58 +00:00
Roger Dingledine
c951c6f186
new config files, some bugfixes
...
svn:r51
2002-07-16 02:12:58 +00:00
Roger Dingledine
117cbeeaaf
Implemented link padding and receiver token buckets
...
Each socket reads at most 'bandwidth' bytes per second sustained, but
can handle bursts of up to 10*bandwidth bytes.
Cells are now sent out at evenly-spaced intervals, with padding sent
out otherwise. Set Linkpadding=0 in the rc file to send cells as soon
as they're available (and to never send padding cells).
Added license/copyrights statements at the top of most files.
router->min and router->max have been merged into a single 'bandwidth'
value. We should make the routerinfo_t reflect this (want to do that,
Mat?)
As the bandwidth increases, and we want to stop sleeping more and more
frequently to send a single cell, cpu usage goes up. At 128kB/s we're
pretty much calling poll with a timeout of 1ms or even 0ms. The current
code takes a timeout of 0-9ms and makes it 10ms. prepare_for_poll()
handles everything that should have happened in the past, so as long as
our buffers don't get too full in that 10ms, we're ok.
Speaking of too full, if you run three servers at 100kB/s with -l debug,
it spends too much time printing debugging messages to be able to keep
up with the cells. The outbuf ultimately fills up and it kills that
connection. If you run with -l err, it works fine up through 500kB/s and
probably beyond. Down the road we'll want to teach it to recognize when
an outbuf is getting full, and back off.
svn:r50
2002-07-16 01:12:15 +00:00
Roger Dingledine
c603e403df
fixed a critical bug in yesterday's changes to buffers.c
...
(starting to debug my OP integration)
svn:r18
2002-07-02 06:02:15 +00:00
Roger Dingledine
b503d4c6d6
made 'app' connection be 'exit' connection
...
general cleanup, particularly in buffers.c
svn:r17
2002-06-30 07:37:49 +00:00
Roger Dingledine
9a928eeb12
Initial revision
...
svn:r2
2002-06-26 22:45:49 +00:00