Nick Mathewson
c856193199
Merge remote-tracking branch 'andrea/bug11304'
2014-04-16 23:13:30 -04:00
Andrea Shepard
65a0f895c7
Check for orconns and use connection_or_close_for_error() when appropriate in connection_handle_write_impl()
2014-04-15 23:03:16 -07:00
Andrea Shepard
6ee9138576
Call connection_or_close_for_error() properly if write_to_buf() ever fails on an orconn
2014-04-15 21:25:49 -07:00
Andrea Shepard
a5544e589d
Close orconns correctly through channels when setting DisableNetwork to 1
2014-04-15 20:19:39 -07:00
Nick Mathewson
d290e36576
Fix make_socket_reusable() on windows. Bug not in any released Tor
2014-04-02 21:11:45 -04:00
Nick Mathewson
60abc4804f
Don't warn when setsockopt(SO_REUSEABLE) on accept()ed socket says EINVAL
...
This should fix bug10081. I believe this bug pertains to OSX
behavior, not any Tor behavior change.
2014-03-27 13:55:18 -04:00
Karsten Loesing
7450403410
Take out remaining V1 directory code.
2014-03-18 10:40:10 +01:00
Nick Mathewson
cce06b649e
Merge remote-tracking branch 'asn/bug11069_take2'
2014-03-11 11:04:47 -04:00
George Kadianakis
1c475eb018
Throw control port warning if we failed to connect to all our bridges.
2014-03-10 22:52:07 +00:00
Roger Dingledine
bd49653f8e
trivial whitespace fixes
2014-03-03 06:53:08 -05:00
Nick Mathewson
b3a6907493
Remove a bunch of functions that were never called.
2014-02-15 15:33:34 -05:00
Nick Mathewson
372adfa09a
Merge remote-tracking branch 'origin/maint-0.2.4'
2014-02-07 10:38:24 -05:00
Andrea Shepard
707c1e2e26
NULL out conns on tlschans when freeing in case channel_run_cleanup() is late; fixes bug 9602
2014-02-06 14:47:34 -08:00
Nick Mathewson
b4e8d8dc0e
Merge remote-tracking branch 'public/bug9716_024' into maint-0.2.4
2014-02-06 16:29:08 -05:00
Nick Mathewson
5991f9a156
TransProxyType replaces TransTPROXY option
...
I'm making this change now since ipfw will want its own option too,
and proliferating options here isn't sensible.
(See #10582 and #10267 )
2014-02-03 13:56:19 -05:00
Nick Mathewson
fd8947afc2
Move the friendly warning about TPROXY and root to EPERM time
...
I'm doing this because:
* User doesn't mean you're running as root, and running as root
doesn't mean you've set User.
* It's possible that the user has done some other
capability-based hack to retain the necessary privileges.
2014-02-02 15:45:00 -05:00
Nick Mathewson
09ccc4c4a3
Add support for TPROXY via new TransTPRoxy option
...
Based on patch from "thomo" at #10582 .
2014-01-31 12:59:35 -05:00
Nick Mathewson
8f793c38fb
Move other #9731 check to start of its functions
...
At arma's suggestion. Looks like I missed this one.
2013-10-31 14:29:18 -04:00
Nick Mathewson
96f92f2062
Move #9731 checks to start of their functions
...
At arma's suggestion.
2013-10-31 14:10:23 -04:00
Nick Mathewson
702c0502cf
Merge remote-tracking branch 'public/bug9731'
2013-10-31 14:09:18 -04:00
Karsten Loesing
2e0fad542c
Merge branch 'morestats4' into morestats5
...
Conflicts:
doc/tor.1.txt
src/or/config.c
src/or/connection.h
src/or/control.c
src/or/control.h
src/or/or.h
src/or/relay.c
src/or/relay.h
src/test/test.c
2013-10-28 12:09:42 +01:00
Nick Mathewson
4b8282e50c
Log the origin address of controller connections
...
Resolves 9698; patch from "sigpipe".
2013-10-25 11:52:45 -04:00
Nick Mathewson
67bb1a44bd
Merge remote-tracking branch 'public/bug9716_024'
2013-09-19 10:50:34 -04:00
Nick Mathewson
c5532889a8
Don't apply read/write buckets to cpuworker connections
...
Fixes bug 9731
2013-09-13 13:39:18 -04:00
Nick Mathewson
9205552daa
Don't apply read/write buckets to non-limited connections
...
Fixes bug 9731
2013-09-13 13:37:53 -04:00
Karsten Loesing
d5f0d792dd
Pass around const struct timeval * instead of struct timeval.
...
Suggested by nickm.
2013-09-12 10:10:38 +02:00
Nick Mathewson
a2754d418d
Try using INT_MAX, not SOMAXCONN, to set listen() backlog.
...
Fall back to SOMAXCONN if INT_MAX doesn't work.
We'd like to do this because the actual maximum is overrideable by the
kernel, and the value in the header file might not be right at all.
All implementations I can find out about claim that this is supported.
Fix for 9716; bugfix on every Tor.
2013-09-11 13:30:45 -04:00
Nick Mathewson
74262f1571
Merge branch 'bug5040_4773_rebase_3'
2013-08-15 12:04:56 -04:00
Nick Mathewson
03e3881043
Tests for connection_write_ext_or_command.
2013-08-15 12:03:36 -04:00
Nick Mathewson
c342ea9879
Unit tests for ext_or_id_map.
2013-08-15 12:03:36 -04:00
Peter Retzlaff
ebd4ab1506
Prepare patch for ticket 5129 for merging.
...
- Preserve old eventdns code.
- Add function to close sockets cross-platform, without accounting.
- Add changes/ file.
2013-08-02 09:35:24 -04:00
George Kadianakis
210210f219
Make the Extended ORPort understand the TRANSPORT command.
2013-07-18 14:59:56 -04:00
George Kadianakis
c46f1b810d
More Extended ORPort code improvements.
...
* Change name of init_ext_or_auth_cookie_authentication().
* Add a small comment.
2013-07-18 14:59:56 -04:00
George Kadianakis
d8f74cc439
Move Extended ORPort code to its own module.
...
Move the code from the connection_or module to ext_orport.
This commit only moves code: it shouldn't modify anything.
2013-07-18 14:59:56 -04:00
George Kadianakis
e2e0d09dab
Various Extended ORPort code improvements.
...
* Add documentation.
* Free ext_or_auth_correct_client_hash.
* Use VPORT(ExtORPort) instead of V(ExtORPOrt).
See dfe03d36c8
for details.
2013-07-18 14:59:56 -04:00
George Kadianakis
93b9f85d41
Prepare codebase for the implementation of Extended ORPort auth.
2013-07-18 14:59:56 -04:00
George Kadianakis
d303228eca
Create the Extended ORPort authentication cookie file.
2013-07-18 14:59:55 -04:00
Nick Mathewson
8bf0382b22
Skeleton ExtORPort implementation. Needs testing, documentation.
...
Does not implement TransportControlPort yet.
2013-07-18 14:59:55 -04:00
Peter Palfrader
2cb59be999
Fix two pre-coffee typos
2013-07-15 09:43:37 -04:00
Peter Palfrader
783c52b6df
Reject relative control socket paths and emit a warning.
...
Previously we would accept relative paths, but only if they contained a
slash somewhere (not at the end).
Otherwise we would silently not work. Closes : #9258 . Bugfix on
0.2.3.16-alpha.
2013-07-15 09:04:17 -04:00
Karsten Loesing
e39292f21d
Test functions used for TB_EMPTY and CELL_STATS events.
2013-05-31 16:12:28 +02:00
Karsten Loesing
b33b366a7f
Tweak CIRC_BW event based on comments by nickm.
...
- Rename n_read and n_written in origin_circuit_t to make it clear that
these are only used for CIRC_BW events.
- Extract new code in control_update_global_event_mask to new
clear_circ_bw_fields function.
2013-05-25 19:51:38 +02:00
Karsten Loesing
ef67077fba
Tweak TB_EMPTY event based on comments by nickm.
...
- Avoid control_event_refill_global function with 13 arguments and
increase code reuse factor by moving more code from control.c to
connection.c.
- Avoid an unsafe uint32_t -> int cast.
- Add TestingEnableTbEmptyEvent option.
- Prepare functions for testing.
- Rename a few functions and improve documentation.
2013-05-25 19:51:38 +02:00
Karsten Loesing
2f893624ab
Tweak CONN_BW event based on comments by nickm.
...
- Rename read/write counters in connection_t to make it clear that these
are only used for CONN_BW events.
- Add TestingEnableConnBwEvent option.
2013-05-25 19:51:38 +02:00
Nick Mathewson
b4b0063e48
Tweak fix for #8789 a bit; avoid double-close and add changes file
2013-05-24 12:23:21 -04:00
Arlo Breault
d25e77f2c3
Close socket at err target.
...
In connection_listener_new().
See #8789 .
2013-05-24 12:05:57 -04:00
Karsten Loesing
2925e2fe78
Add new CIRC_BW event.
2013-05-16 14:18:13 +02:00
Karsten Loesing
dd5ce2157d
Add new TB_EMPTY event.
...
Jointly authored with Rob Jansen <jansen@cs.umn.edu>.
2013-05-16 14:18:08 +02:00
Karsten Loesing
8d1f78c556
Add new CONN_BW event.
...
Jointly authored with Rob Jansen <jansen@cs.umn.edu>.
2013-05-16 13:48:35 +02:00
Nick Mathewson
ef83db4fe8
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-04-24 22:16:07 -04:00
Nick Mathewson
f8bb0064d6
Merge remote-tracking branch 'public/bug6026' into maint-0.2.4
2013-04-24 22:15:47 -04:00
Nick Mathewson
63ab5f4849
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-04-12 01:14:32 -04:00
Nick Mathewson
97246a5b6d
Merge remote-tracking branch 'public/bug5650_squashed' into maint-0.2.4
2013-04-12 01:13:22 -04:00
Nick Mathewson
39ac1db60e
Avoid busy-looping on WANTREAD within connection_handle_write
...
Fix for bug 5650. Also, if we get a WANTREAD while reading while
writing, make sure we're reading.
2013-04-12 01:11:31 -04:00
Nick Mathewson
3dfd1ebf12
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-04-11 01:40:31 -04:00
Nick Mathewson
7f50af116f
Merge remote-tracking branch 'public/bug8117_023' into maint-0.2.4
...
Conflicts:
doc/tor.1.txt
src/or/config.c
src/or/connection.c
2013-04-11 01:39:55 -04:00
Roger Dingledine
8e7226cf7f
fix text in function comment
...
(now that we moved to libevent)
2013-04-11 01:11:25 -04:00
Nick Mathewson
7ccaf3f1a4
Merge remote-tracking branch 'origin/maint-0.2.4'
2013-04-02 10:37:00 -04:00
Nick Mathewson
2c155064aa
Merge remote-tracking branch 'public/bug8427' into maint-0.2.4
2013-04-02 10:36:15 -04:00
Nick Mathewson
fa3c237739
Per-SOCKSPort configuration for bug 8117 fix.
...
This might be necessary if the bug8117 fix confuses any applications.
Also add a changes file.
2013-03-20 16:17:06 -04:00
Nick Mathewson
c101ecc8dc
Merge remote-tracking branch 'asn/bug3594_rebased_and_fixed'
...
Conflicts:
src/common/util.c
src/or/entrynodes.h
2013-03-19 13:25:45 -04:00
Nick Mathewson
63b67577d6
Check return values from fcntl and setsockopt
...
(Based on a patch from flupzor; bug #8206 )
2013-03-18 14:28:38 -04:00
Nick Mathewson
16f2e4aa8c
Don't warn about not sending a socks reply if we get a write error
...
If we get a write error on a SOCKS connection, we can't send a
SOCKS reply, now can we?
This bug has been here since 36baf7219
, where we added the "hey, I'm
closing an AP connection but I haven't finished the socks
handshake!" message. It's bug 8427.
2013-03-12 17:36:09 -04:00
Nick Mathewson
07e26005a6
Treat a changed IPv6 ORPort like an IPv4 one in retry_all_listeners()
...
Fix for bug 6026
2013-03-11 17:20:43 -04:00
Nick Mathewson
d6634001c9
Merge remote-tracking branch 'public/wide_circ_ids'
...
Conflicts:
src/or/channel.h
src/or/connection_or.c
src/or/cpuworker.c
2013-02-15 16:23:43 -05:00
Nick Mathewson
99457ee776
Fix two more coverity-spotted leaks in master.
...
One is a probably-impossible leak if we fail to sign a consensus;
another occurs when we can't look up the user we're trying to chown
our sockets to.
2013-02-11 17:01:02 -05:00
George Kadianakis
b5dceab175
Fix various issues pointed out by Nick and Andrea.
...
- Document the key=value format.
- Constify equal_sign_pos.
- Pass some strings that are about to be logged to escape().
- Update documentation and fix some bugs in tor_escape_str_for_socks_arg().
- Use string_is_key_value() in parse_bridge_line().
- Parenthesize a forgotten #define
- Add some more comments.
- Add some more unit test cases.
2013-02-09 18:46:10 +00:00
George Kadianakis
8f2e980159
Send SOCKS arguments when doing SOCKS5.
2013-02-09 16:30:16 +00:00
George Kadianakis
14b84858c0
Send SOCKS arguments when doing SOCKS4.
2013-02-09 16:30:16 +00:00
Nick Mathewson
076654ce84
Replace magic constants for wide_circ_ids with inline function calls
2013-02-09 00:56:53 -05:00
Nick Mathewson
3433216268
Merge remote-tracking branch 'public/easy_ratelim'
...
Conflicts:
src/or/connection.c
2013-02-07 17:13:51 -05:00
Nick Mathewson
ba7d93db16
Merge remote-tracking branch 'public/bug7816_023'
...
Conflicts:
src/common/util.c
2013-02-07 15:20:50 -05:00
Nick Mathewson
c93f66b103
Merge remote-tracking branch 'public/bug7708_023_v3_squashed'
2013-02-01 17:11:46 -05:00
Nick Mathewson
690ea9e8cf
Clarify documentation of connection_finished_flushing
2013-02-01 17:10:15 -05:00
Nick Mathewson
b442930789
Fix serious breakage in connection_handle_write_impl
...
When we first implemented TLS, we assumed in conneciton_handle_write
that a TOR_TLS_WANT_WRITE from flush_buf_tls meant that nothing had
been written. But when we moved our buffers to a ring buffer
implementation back in 0.1.0.5-rc (!), we broke that invariant: it's
possible that some bytes have been written but nothing.
That's bad. It means that if we do a sequence of TLS writes that ends
with a WANTWRITE, we don't notice that we flushed any bytes, and we
don't (I think) decrement buckets.
Fixes bug 7708; bugfix on 0.1.0.5-rc
2013-02-01 17:10:15 -05:00
Nick Mathewson
a141430ec3
Rename log() to tor_log() for logging
...
This is meant to avoid conflict with the built-in log() function in
math.h. It resolves ticket 7599. First reported by dhill.
This was generated with the following perl script:
#!/usr/bin/perl -w -i -p
s/\blog\(LOG_(ERR|WARN|NOTICE|INFO|DEBUG)\s*,\s*/log_\L$1\(/g;
s/\blog\(/tor_log\(/g;
2013-02-01 15:43:37 -05:00
Nick Mathewson
9bd811b337
Refactor: Use SOCK_ERRNO to avoid some #ifdef _WIN32s
...
Fixes ticket 6302
2013-01-16 15:30:20 -05:00
Nick Mathewson
4da083db3b
Update the copyright date to 201.
2013-01-16 01:54:56 -05:00
Nick Mathewson
47122d1d25
Revert junk accidentally included with "start folding in the changes entries"
...
Looks like Roger's debugging code wanted to take a tour of the world
outside his sandbox.
This reverts part of commit 19d3720236
.
2013-01-14 14:41:59 -05:00
Roger Dingledine
19d3720236
start folding in the changes entries
2013-01-14 13:34:59 -05:00
Nick Mathewson
d3aabf4db1
Fix various small leaks on error cases
...
Spotted by coverity, bug 7816, bugfix on various versions.
2012-12-28 22:49:32 -05:00
Nick Mathewson
b509ead20d
Avoid leaking headers received from SSL proxy
...
Fixes part of 7816. Spotted by coverity. Fix on 0.2.2.1-alpha.
2012-12-28 22:45:53 -05:00
Nick Mathewson
a7334f5122
Use log_fn_ratelim in a few places.
2012-12-26 11:07:15 -05:00
Nick Mathewson
8d080d0b01
Per-listener option to prefer IPv6 automaps when possible.
2012-12-17 14:51:30 -05:00
Nick Mathewson
d3e9e03cac
Add options to turn DNS cache use on or off per client port.
...
(This is part 1 of making DNS cache use enabled/disabled on a
per-client port basis. These options are shuffled around correctly,
but don't do anything yet.)
2012-12-17 14:48:08 -05:00
Nick Mathewson
3fa9151f26
Merge branch 'win64-7260'
...
Conflicts:
src/or/dns.c
2012-12-07 14:12:17 -05:00
Nick Mathewson
bfe8d829c2
Initialize ipv{4,6}_traffic_ok in entry_connection_new
...
This one is necessary for sending BEGIN cells with sane flags when
self-testing a directory port. All real entry connections were
getting their ipv{4,6}_traffic_ok flags set from their listeners, and
for begindir entry connections we didn't care, but for directory
self-testing, we had a problem.
Fixes at least one more case of 7493; if there are more lingering
cases of 7493, this might fix them too.
Bug not in any released version of Tor.
2012-11-18 17:15:41 -05:00
Nick Mathewson
1e46952f36
Set IPv4/IPv6 flags correctly when being a SOCKS client
2012-11-15 13:00:19 -05:00
Nick Mathewson
363cf02455
Implement a PreferIPv6 flag for SocksPorts
2012-11-14 23:16:40 -05:00
Nick Mathewson
4bec25c3cd
Add {No,}IPv{4,6}Traffic options to SOCKSPort
...
These options are for telling the SOCKSPort that it should allow or
not allow connections to IPv4/IPv6 addresses.
These aren't implemented yet; this is just the code to read the
options and get them into the entrey_connection_t.
2012-11-14 23:16:23 -05:00
Andrea Shepard
0523c8de7d
Merge branch 'check_for_orconn_on_close_squashed' of ssh://git-rw.torproject.org/user/andrea/tor
2012-11-10 03:24:41 -08:00
Andrea Shepard
99e82cab30
Make everything in connection.c that uses connection_or_notify_error() also use connection_mark_and_close_internal() to avoid spurious warnings
2012-11-10 02:35:47 -08:00
Andrea Shepard
8124398835
Check for orconns in connection_mark_for_close and connection_mark_and_flush, and pass the call through channel_close_for_error with a warning to avoid asserts
2012-11-10 02:35:47 -08:00
Nick Mathewson
81deddb08c
Merge remote-tracking branch 'origin/maint-0.2.3'
...
Conflicts:
src/common/crypto.c
src/or/rendservice.c
2012-11-08 16:48:04 -05:00
Nick Mathewson
49dd5ef3a3
Add and use and unlikely-to-be-eliminated memwipe()
...
Apparently some compilers like to eliminate memset() operations on
data that's about to go out-of-scope. I've gone with the safest
possible replacement, which might be a bit slow. I don't think this
is critical path in any way that will affect performance, but if it
is, we can work on that in 0.2.4.
Fixes bug 7352.
2012-11-08 16:44:50 -05:00
Nick Mathewson
bfffc1f0fc
Allow a v4 link protocol for 4-byte circuit IDs.
...
Implements proposal 214.
Needs testing.
2012-11-06 21:23:46 -05:00
Nick Mathewson
1bfda600c3
Add a TOR_SOCKET_T_FORMAT construction for logging sockets.
...
We need this since win64 has a 64-bit SOCKET type.
Based on a patch from yayooo for 7260, forward-ported to 0.2.4.
2012-11-02 14:22:21 -04:00
Nick Mathewson
907db008ab
Move the circuit build timeout code into its own file.
2012-10-15 14:50:55 -04:00
Nick Mathewson
9f83142591
Merge remote-tracking branch 'public/bug1031'
2012-10-15 11:20:48 -04:00
Nick Mathewson
0d946e1773
Merge remote-tracking branch 'arma/bug7029'
2012-10-14 23:06:43 -04:00
Nick Mathewson
56c0baa523
Rename all reserved C identifiers we defined
...
For everything we declare that starts with _, make it end with _ instead.
This is a machine-generated patch. To make it, start by getting the
list of reserved identifiers using:
git ls-tree -r --name-only HEAD | grep '\.[ch]$' | \
xargs ctags --c-kinds=defglmpstuvx -o - | grep '^_' | \
cut -f 1 | sort| uniq
You might need gnu ctags.
Then pipe the output through this script:
==============================
use strict;
BEGIN { print "#!/usr/bin/perl -w -i -p\n\n"; }
chomp;
next if (
/^__attribute__/ or
/^__func__/ or
/^_FILE_OFFSET_BITS/ or
/^_FORTIFY_SOURCE/ or
/^_GNU_SOURCE/ or
/^_WIN32/ or
/^_DARWIN_UNLIMITED/ or
/^_FILE_OFFSET_BITS/ or
/^_LARGEFILE64_SOURCE/ or
/^_LFS64_LARGEFILE/ or
/^__cdecl/ or
/^__attribute__/ or
/^__func__/ or
/^_WIN32_WINNT/);
my $ident = $_;
my $better = $ident;
$better =~ s/^_//;
$better = "${better}_";
print "s/(?<![A-Za-z0-9_])$ident(?![A-Za-z0-9_])/$better/g;\n";
==============================
Then run the resulting script on all the files you want to change.
(That is, all the C except that in src/ext.) The resulting script was:
==============================
s/(?<![A-Za-z0-9_])_address(?![A-Za-z0-9_])/address_/g;
s/(?<![A-Za-z0-9_])_aes_fill_buf(?![A-Za-z0-9_])/aes_fill_buf_/g;
s/(?<![A-Za-z0-9_])_AllowInvalid(?![A-Za-z0-9_])/AllowInvalid_/g;
s/(?<![A-Za-z0-9_])_AP_CONN_STATE_MAX(?![A-Za-z0-9_])/AP_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_AP_CONN_STATE_MIN(?![A-Za-z0-9_])/AP_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_assert_cache_ok(?![A-Za-z0-9_])/assert_cache_ok_/g;
s/(?<![A-Za-z0-9_])_A_UNKNOWN(?![A-Za-z0-9_])/A_UNKNOWN_/g;
s/(?<![A-Za-z0-9_])_base(?![A-Za-z0-9_])/base_/g;
s/(?<![A-Za-z0-9_])_BridgePassword_AuthDigest(?![A-Za-z0-9_])/BridgePassword_AuthDigest_/g;
s/(?<![A-Za-z0-9_])_buffer_stats_compare_entries(?![A-Za-z0-9_])/buffer_stats_compare_entries_/g;
s/(?<![A-Za-z0-9_])_chan_circid_entries_eq(?![A-Za-z0-9_])/chan_circid_entries_eq_/g;
s/(?<![A-Za-z0-9_])_chan_circid_entry_hash(?![A-Za-z0-9_])/chan_circid_entry_hash_/g;
s/(?<![A-Za-z0-9_])_check_no_tls_errors(?![A-Za-z0-9_])/check_no_tls_errors_/g;
s/(?<![A-Za-z0-9_])_c_hist_compare(?![A-Za-z0-9_])/c_hist_compare_/g;
s/(?<![A-Za-z0-9_])_circ(?![A-Za-z0-9_])/circ_/g;
s/(?<![A-Za-z0-9_])_circuit_get_global_list(?![A-Za-z0-9_])/circuit_get_global_list_/g;
s/(?<![A-Za-z0-9_])_circuit_mark_for_close(?![A-Za-z0-9_])/circuit_mark_for_close_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_C_MAX(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_C_MAX_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_MAX(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_MAX_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_MIN(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_MIN_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_OR_MAX(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_OR_MAX_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_OR_MIN(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_OR_MIN_/g;
s/(?<![A-Za-z0-9_])_cmp_int_strings(?![A-Za-z0-9_])/cmp_int_strings_/g;
s/(?<![A-Za-z0-9_])_compare_cached_resolves_by_expiry(?![A-Za-z0-9_])/compare_cached_resolves_by_expiry_/g;
s/(?<![A-Za-z0-9_])_compare_digests(?![A-Za-z0-9_])/compare_digests_/g;
s/(?<![A-Za-z0-9_])_compare_digests256(?![A-Za-z0-9_])/compare_digests256_/g;
s/(?<![A-Za-z0-9_])_compare_dir_src_ents_by_authority_id(?![A-Za-z0-9_])/compare_dir_src_ents_by_authority_id_/g;
s/(?<![A-Za-z0-9_])_compare_duration_idx(?![A-Za-z0-9_])/compare_duration_idx_/g;
s/(?<![A-Za-z0-9_])_compare_int(?![A-Za-z0-9_])/compare_int_/g;
s/(?<![A-Za-z0-9_])_compare_networkstatus_v2_published_on(?![A-Za-z0-9_])/compare_networkstatus_v2_published_on_/g;
s/(?<![A-Za-z0-9_])_compare_old_routers_by_identity(?![A-Za-z0-9_])/compare_old_routers_by_identity_/g;
s/(?<![A-Za-z0-9_])_compare_orports(?![A-Za-z0-9_])/compare_orports_/g;
s/(?<![A-Za-z0-9_])_compare_pairs(?![A-Za-z0-9_])/compare_pairs_/g;
s/(?<![A-Za-z0-9_])_compare_routerinfo_by_id_digest(?![A-Za-z0-9_])/compare_routerinfo_by_id_digest_/g;
s/(?<![A-Za-z0-9_])_compare_routerinfo_by_ip_and_bw(?![A-Za-z0-9_])/compare_routerinfo_by_ip_and_bw_/g;
s/(?<![A-Za-z0-9_])_compare_signed_descriptors_by_age(?![A-Za-z0-9_])/compare_signed_descriptors_by_age_/g;
s/(?<![A-Za-z0-9_])_compare_string_ptrs(?![A-Za-z0-9_])/compare_string_ptrs_/g;
s/(?<![A-Za-z0-9_])_compare_strings_for_pqueue(?![A-Za-z0-9_])/compare_strings_for_pqueue_/g;
s/(?<![A-Za-z0-9_])_compare_strs(?![A-Za-z0-9_])/compare_strs_/g;
s/(?<![A-Za-z0-9_])_compare_tor_version_str_ptr(?![A-Za-z0-9_])/compare_tor_version_str_ptr_/g;
s/(?<![A-Za-z0-9_])_compare_vote_rs(?![A-Za-z0-9_])/compare_vote_rs_/g;
s/(?<![A-Za-z0-9_])_compare_votes_by_authority_id(?![A-Za-z0-9_])/compare_votes_by_authority_id_/g;
s/(?<![A-Za-z0-9_])_compare_without_first_ch(?![A-Za-z0-9_])/compare_without_first_ch_/g;
s/(?<![A-Za-z0-9_])_connection_free(?![A-Za-z0-9_])/connection_free_/g;
s/(?<![A-Za-z0-9_])_connection_mark_and_flush(?![A-Za-z0-9_])/connection_mark_and_flush_/g;
s/(?<![A-Za-z0-9_])_connection_mark_for_close(?![A-Za-z0-9_])/connection_mark_for_close_/g;
s/(?<![A-Za-z0-9_])_connection_mark_unattached_ap(?![A-Za-z0-9_])/connection_mark_unattached_ap_/g;
s/(?<![A-Za-z0-9_])_connection_write_to_buf_impl(?![A-Za-z0-9_])/connection_write_to_buf_impl_/g;
s/(?<![A-Za-z0-9_])_ConnLimit(?![A-Za-z0-9_])/ConnLimit_/g;
s/(?<![A-Za-z0-9_])_CONN_TYPE_MAX(?![A-Za-z0-9_])/CONN_TYPE_MAX_/g;
s/(?<![A-Za-z0-9_])_CONN_TYPE_MIN(?![A-Za-z0-9_])/CONN_TYPE_MIN_/g;
s/(?<![A-Za-z0-9_])_CONTROL_CONN_STATE_MAX(?![A-Za-z0-9_])/CONTROL_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_CONTROL_CONN_STATE_MIN(?![A-Za-z0-9_])/CONTROL_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_CPUWORKER_STATE_MAX(?![A-Za-z0-9_])/CPUWORKER_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_CPUWORKER_STATE_MIN(?![A-Za-z0-9_])/CPUWORKER_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_crypto_dh_get_dh(?![A-Za-z0-9_])/crypto_dh_get_dh_/g;
s/(?<![A-Za-z0-9_])_crypto_global_initialized(?![A-Za-z0-9_])/crypto_global_initialized_/g;
s/(?<![A-Za-z0-9_])_crypto_new_pk_from_rsa(?![A-Za-z0-9_])/crypto_new_pk_from_rsa_/g;
s/(?<![A-Za-z0-9_])_crypto_pk_get_evp_pkey(?![A-Za-z0-9_])/crypto_pk_get_evp_pkey_/g;
s/(?<![A-Za-z0-9_])_crypto_pk_get_rsa(?![A-Za-z0-9_])/crypto_pk_get_rsa_/g;
s/(?<![A-Za-z0-9_])_DIR_CONN_STATE_MAX(?![A-Za-z0-9_])/DIR_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_DIR_CONN_STATE_MIN(?![A-Za-z0-9_])/DIR_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_DIR_PURPOSE_MAX(?![A-Za-z0-9_])/DIR_PURPOSE_MAX_/g;
s/(?<![A-Za-z0-9_])_DIR_PURPOSE_MIN(?![A-Za-z0-9_])/DIR_PURPOSE_MIN_/g;
s/(?<![A-Za-z0-9_])_dirreq_map_get(?![A-Za-z0-9_])/dirreq_map_get_/g;
s/(?<![A-Za-z0-9_])_dirreq_map_put(?![A-Za-z0-9_])/dirreq_map_put_/g;
s/(?<![A-Za-z0-9_])_dns_randfn(?![A-Za-z0-9_])/dns_randfn_/g;
s/(?<![A-Za-z0-9_])_dummy(?![A-Za-z0-9_])/dummy_/g;
s/(?<![A-Za-z0-9_])_edge(?![A-Za-z0-9_])/edge_/g;
s/(?<![A-Za-z0-9_])_END_CIRC_REASON_MAX(?![A-Za-z0-9_])/END_CIRC_REASON_MAX_/g;
s/(?<![A-Za-z0-9_])_END_CIRC_REASON_MIN(?![A-Za-z0-9_])/END_CIRC_REASON_MIN_/g;
s/(?<![A-Za-z0-9_])_EOF(?![A-Za-z0-9_])/EOF_/g;
s/(?<![A-Za-z0-9_])_ERR(?![A-Za-z0-9_])/ERR_/g;
s/(?<![A-Za-z0-9_])_escaped_val(?![A-Za-z0-9_])/escaped_val_/g;
s/(?<![A-Za-z0-9_])_evdns_log(?![A-Za-z0-9_])/evdns_log_/g;
s/(?<![A-Za-z0-9_])_evdns_nameserver_add_impl(?![A-Za-z0-9_])/evdns_nameserver_add_impl_/g;
s/(?<![A-Za-z0-9_])_EVENT_MAX(?![A-Za-z0-9_])/EVENT_MAX_/g;
s/(?<![A-Za-z0-9_])_EVENT_MIN(?![A-Za-z0-9_])/EVENT_MIN_/g;
s/(?<![A-Za-z0-9_])_ExcludeExitNodesUnion(?![A-Za-z0-9_])/ExcludeExitNodesUnion_/g;
s/(?<![A-Za-z0-9_])_EXIT_CONN_STATE_MAX(?![A-Za-z0-9_])/EXIT_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_EXIT_CONN_STATE_MIN(?![A-Za-z0-9_])/EXIT_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_EXIT_PURPOSE_MAX(?![A-Za-z0-9_])/EXIT_PURPOSE_MAX_/g;
s/(?<![A-Za-z0-9_])_EXIT_PURPOSE_MIN(?![A-Za-z0-9_])/EXIT_PURPOSE_MIN_/g;
s/(?<![A-Za-z0-9_])_extrainfo_free(?![A-Za-z0-9_])/extrainfo_free_/g;
s/(?<![A-Za-z0-9_])_find_by_keyword(?![A-Za-z0-9_])/find_by_keyword_/g;
s/(?<![A-Za-z0-9_])_free_cached_dir(?![A-Za-z0-9_])/free_cached_dir_/g;
s/(?<![A-Za-z0-9_])_free_cached_resolve(?![A-Za-z0-9_])/free_cached_resolve_/g;
s/(?<![A-Za-z0-9_])_free_duplicate_routerstatus_entry(?![A-Za-z0-9_])/free_duplicate_routerstatus_entry_/g;
s/(?<![A-Za-z0-9_])_free_link_history(?![A-Za-z0-9_])/free_link_history_/g;
s/(?<![A-Za-z0-9_])_geoip_compare_entries(?![A-Za-z0-9_])/geoip_compare_entries_/g;
s/(?<![A-Za-z0-9_])_geoip_compare_key_to_entry(?![A-Za-z0-9_])/geoip_compare_key_to_entry_/g;
s/(?<![A-Za-z0-9_])_hex_decode_digit(?![A-Za-z0-9_])/hex_decode_digit_/g;
s/(?<![A-Za-z0-9_])_idxplus1(?![A-Za-z0-9_])/idxplus1_/g;
s/(?<![A-Za-z0-9_])__libc_enable_secure(?![A-Za-z0-9_])/_libc_enable_secure_/g;
s/(?<![A-Za-z0-9_])_log_debug(?![A-Za-z0-9_])/log_debug_/g;
s/(?<![A-Za-z0-9_])_log_err(?![A-Za-z0-9_])/log_err_/g;
s/(?<![A-Za-z0-9_])_log_fn(?![A-Za-z0-9_])/log_fn_/g;
s/(?<![A-Za-z0-9_])_log_fn_function_name(?![A-Za-z0-9_])/log_fn_function_name_/g;
s/(?<![A-Za-z0-9_])_log_global_min_severity(?![A-Za-z0-9_])/log_global_min_severity_/g;
s/(?<![A-Za-z0-9_])_log_info(?![A-Za-z0-9_])/log_info_/g;
s/(?<![A-Za-z0-9_])_log_notice(?![A-Za-z0-9_])/log_notice_/g;
s/(?<![A-Za-z0-9_])_log_prefix(?![A-Za-z0-9_])/log_prefix_/g;
s/(?<![A-Za-z0-9_])_log_warn(?![A-Za-z0-9_])/log_warn_/g;
s/(?<![A-Za-z0-9_])_magic(?![A-Za-z0-9_])/magic_/g;
s/(?<![A-Za-z0-9_])_MALLOC_LOCK(?![A-Za-z0-9_])/MALLOC_LOCK_/g;
s/(?<![A-Za-z0-9_])_MALLOC_LOCK_INIT(?![A-Za-z0-9_])/MALLOC_LOCK_INIT_/g;
s/(?<![A-Za-z0-9_])_MALLOC_UNLOCK(?![A-Za-z0-9_])/MALLOC_UNLOCK_/g;
s/(?<![A-Za-z0-9_])_microdesc_eq(?![A-Za-z0-9_])/microdesc_eq_/g;
s/(?<![A-Za-z0-9_])_microdesc_hash(?![A-Za-z0-9_])/microdesc_hash_/g;
s/(?<![A-Za-z0-9_])_MIN_TOR_TLS_ERROR_VAL(?![A-Za-z0-9_])/MIN_TOR_TLS_ERROR_VAL_/g;
s/(?<![A-Za-z0-9_])_mm_free(?![A-Za-z0-9_])/mm_free_/g;
s/(?<![A-Za-z0-9_])_NIL(?![A-Za-z0-9_])/NIL_/g;
s/(?<![A-Za-z0-9_])_n_openssl_mutexes(?![A-Za-z0-9_])/n_openssl_mutexes_/g;
s/(?<![A-Za-z0-9_])_openssl_dynlock_create_cb(?![A-Za-z0-9_])/openssl_dynlock_create_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_dynlock_destroy_cb(?![A-Za-z0-9_])/openssl_dynlock_destroy_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_dynlock_lock_cb(?![A-Za-z0-9_])/openssl_dynlock_lock_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_locking_cb(?![A-Za-z0-9_])/openssl_locking_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_mutexes(?![A-Za-z0-9_])/openssl_mutexes_/g;
s/(?<![A-Za-z0-9_])_option_abbrevs(?![A-Za-z0-9_])/option_abbrevs_/g;
s/(?<![A-Za-z0-9_])_option_vars(?![A-Za-z0-9_])/option_vars_/g;
s/(?<![A-Za-z0-9_])_OR_CONN_STATE_MAX(?![A-Za-z0-9_])/OR_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_OR_CONN_STATE_MIN(?![A-Za-z0-9_])/OR_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_OutboundBindAddressIPv4(?![A-Za-z0-9_])/OutboundBindAddressIPv4_/g;
s/(?<![A-Za-z0-9_])_OutboundBindAddressIPv6(?![A-Za-z0-9_])/OutboundBindAddressIPv6_/g;
s/(?<![A-Za-z0-9_])_PDS_PREFER_TUNNELED_DIR_CONNS(?![A-Za-z0-9_])/PDS_PREFER_TUNNELED_DIR_CONNS_/g;
s/(?<![A-Za-z0-9_])_port(?![A-Za-z0-9_])/port_/g;
s/(?<![A-Za-z0-9_])__progname(?![A-Za-z0-9_])/_progname_/g;
s/(?<![A-Za-z0-9_])_PublishServerDescriptor(?![A-Za-z0-9_])/PublishServerDescriptor_/g;
s/(?<![A-Za-z0-9_])_remove_old_client_helper(?![A-Za-z0-9_])/remove_old_client_helper_/g;
s/(?<![A-Za-z0-9_])_rend_cache_entry_free(?![A-Za-z0-9_])/rend_cache_entry_free_/g;
s/(?<![A-Za-z0-9_])_routerlist_find_elt(?![A-Za-z0-9_])/routerlist_find_elt_/g;
s/(?<![A-Za-z0-9_])_SafeLogging(?![A-Za-z0-9_])/SafeLogging_/g;
s/(?<![A-Za-z0-9_])_SHORT_FILE_(?![A-Za-z0-9_])/SHORT_FILE__/g;
s/(?<![A-Za-z0-9_])_state_abbrevs(?![A-Za-z0-9_])/state_abbrevs_/g;
s/(?<![A-Za-z0-9_])_state_vars(?![A-Za-z0-9_])/state_vars_/g;
s/(?<![A-Za-z0-9_])_t(?![A-Za-z0-9_])/t_/g;
s/(?<![A-Za-z0-9_])_t32(?![A-Za-z0-9_])/t32_/g;
s/(?<![A-Za-z0-9_])_test_op_ip6(?![A-Za-z0-9_])/test_op_ip6_/g;
s/(?<![A-Za-z0-9_])_thread1_name(?![A-Za-z0-9_])/thread1_name_/g;
s/(?<![A-Za-z0-9_])_thread2_name(?![A-Za-z0-9_])/thread2_name_/g;
s/(?<![A-Za-z0-9_])_thread_test_func(?![A-Za-z0-9_])/thread_test_func_/g;
s/(?<![A-Za-z0-9_])_thread_test_mutex(?![A-Za-z0-9_])/thread_test_mutex_/g;
s/(?<![A-Za-z0-9_])_thread_test_start1(?![A-Za-z0-9_])/thread_test_start1_/g;
s/(?<![A-Za-z0-9_])_thread_test_start2(?![A-Za-z0-9_])/thread_test_start2_/g;
s/(?<![A-Za-z0-9_])_thread_test_strmap(?![A-Za-z0-9_])/thread_test_strmap_/g;
s/(?<![A-Za-z0-9_])_tor_calloc(?![A-Za-z0-9_])/tor_calloc_/g;
s/(?<![A-Za-z0-9_])_TOR_CHANNEL_INTERNAL(?![A-Za-z0-9_])/TOR_CHANNEL_INTERNAL_/g;
s/(?<![A-Za-z0-9_])_TOR_CIRCUITMUX_EWMA_C(?![A-Za-z0-9_])/TOR_CIRCUITMUX_EWMA_C_/g;
s/(?<![A-Za-z0-9_])_tor_free(?![A-Za-z0-9_])/tor_free_/g;
s/(?<![A-Za-z0-9_])_tor_malloc(?![A-Za-z0-9_])/tor_malloc_/g;
s/(?<![A-Za-z0-9_])_tor_malloc_zero(?![A-Za-z0-9_])/tor_malloc_zero_/g;
s/(?<![A-Za-z0-9_])_tor_memdup(?![A-Za-z0-9_])/tor_memdup_/g;
s/(?<![A-Za-z0-9_])_tor_realloc(?![A-Za-z0-9_])/tor_realloc_/g;
s/(?<![A-Za-z0-9_])_tor_strdup(?![A-Za-z0-9_])/tor_strdup_/g;
s/(?<![A-Za-z0-9_])_tor_strndup(?![A-Za-z0-9_])/tor_strndup_/g;
s/(?<![A-Za-z0-9_])_TOR_TLS_SYSCALL(?![A-Za-z0-9_])/TOR_TLS_SYSCALL_/g;
s/(?<![A-Za-z0-9_])_TOR_TLS_ZERORETURN(?![A-Za-z0-9_])/TOR_TLS_ZERORETURN_/g;
s/(?<![A-Za-z0-9_])__USE_ISOC99(?![A-Za-z0-9_])/_USE_ISOC99_/g;
s/(?<![A-Za-z0-9_])_UsingTestNetworkDefaults(?![A-Za-z0-9_])/UsingTestNetworkDefaults_/g;
s/(?<![A-Za-z0-9_])_val(?![A-Za-z0-9_])/val_/g;
s/(?<![A-Za-z0-9_])_void_for_alignment(?![A-Za-z0-9_])/void_for_alignment_/g;
==============================
2012-10-12 12:22:13 -04:00
Nick Mathewson
7ea904cbc0
Merge branch 'bug7011'
...
Conflicts:
src/or/circuitbuild.c
The conflict was trivial, since no line of code actually changed in
both branches: There was a fmt_addr() that turned into fmt_addrport()
in bug7011, and a "if (!n_conn)" that turned into "if (!n_chan)" in
master.
2012-10-10 22:31:06 -04:00
David Fifield
8419d18441
Use fmt_addrport where appropriate.
...
This is mostly a conversion from this pattern:
log("... %s:%d ...", fmt_and_decorate_addr(&addr), port);
to this:
log("... %s ...", fmt_addrport(&addr, port));
The output is the same in all cases.
2012-10-10 22:25:30 -04:00
David Fifield
41328c7009
Decorate addresses given to a HTTP CONNECT proxy.
...
This affects the Request-URI and the value of the Host header. RFC 2616
doesn't directly address the formatting of IPv6 addresses, but it
delegates some productions to RFC 2396 "Uniform Resource Identifiers
(URI): Generic Syntax," which is obsoleted by RFC 3986, which requires
square brackets for IPv6 addresses in both places.
I tested this with
HTTPSProxy 127.0.0.1:8000
Bridge <IPv6 bridge>
UseBridges 1
and an Ncat HTTP proxy:
ncat --proxy-type http -l 8000 -vvv
https://tools.ietf.org/html/rfc2616#section-3.2.1
https://tools.ietf.org/html/rfc2616#section-5.1.2
https://tools.ietf.org/html/rfc2616#section-14.23
https://tools.ietf.org/html/rfc3986#section-3.2.2
2012-10-10 22:25:29 -04:00
David Fifield
34c6ee7e9b
Use fmt_and_decorate_addr in log messages.
2012-10-10 22:25:29 -04:00
Andrea Shepard
e136f7ccb4
Convert relay.c/relay.h to channel_t
...
Note: this is a squashed commit; see branch bug6465_rebased_v2 of user/andrea/tor.git for full history of the following 10 commits:
Convert relay.c/relay.h to channel_t
Updating the timestamp if n_flushed > 0 at the end of channel_flush_from_first_active_circuit() was redundant since channel_write_cell() et al. do it themselves.
Get rid of now-unnecessary time parameter in channel_flush_from_first_active_circuit()
Get rid of now-unnecessary time parameter in channel_flush_from_first_active_circuit() in connection_or.c
Add non-inlined external call for channeltls.c to free a packed_cell_t
Appease make check-spaces in relay.c
Replace channel_get_write_queue_len() with sufficient and easier to implement channel_has_queued_writes() in relay.c
Rename channel_touched_by_client() and client_used field for consistency with other timestamps in relay.c
Don't double-free packed cells in relay.c (channel_t Tor now bootstraps and works as a client)
Rearrange channel_t struct to use a union distinguishing listener from cell-bearing channels in relay.c
2012-10-08 03:05:26 -07:00
Andrea Shepard
15303c32ec
Initial channeltls.c/channeltls.h for bug 6465
2012-10-08 03:04:00 -07:00
Roger Dingledine
3d31771da9
Free some more still-in-use memory at exit
2012-10-03 12:46:09 -04:00
Linus Nordberg
1cbf45bed1
Make option OutboundBindAddress accept IPv6 addresses too.
...
Implements ticket 6786.
2012-09-20 17:09:25 +02:00
Roger Dingledine
f6639d5676
finish backing out 5492de76
2012-09-09 16:51:34 -04:00
Nick Mathewson
5898c09c3a
Fix whitespace
2012-08-27 10:53:40 -04:00
Nick Mathewson
d9746bd468
Remove needless flush-on-write code.
...
Long ago, before we had cell queues, it was necessary to maybe call
connection_handle_write() from connectino_write_to_buf_impl() on OR
connections, so that we wouldn't get into a loop of reading infinite
amounts of data and queueing it all on an outbuf before bothering to
write any data.
If that doesn't sounds like what our code does now, you're right:
right now, we won't stick more than OR_CONN_HIGHWATER bytes of cells
on an outbuf, and we won't suck more than CELL_QUEUE_HIGHWATER_SIZE
cells off any edge connection. So, there's no more call for that
code.
Removing this code will simplify our data flow, and that should be
something we can all get behind.
2012-08-17 16:01:30 -04:00
Matthew Finkel
b50eb14bbf
Updated docs for new connections.
2012-08-02 16:15:23 -04:00
Nick Mathewson
65d8448209
Merge remote-tracking branch 'sysrqb/bug6518'
2012-08-02 15:45:10 -04:00
Matthew Finkel
a47e4343de
Constify struct sockaddr *sa parameter for check
...
The values are only being checked, not modified.
2012-08-02 15:29:38 -04:00
Matthew Finkel
d91bbf376c
Removed redundant check_sockaddr_family_match call
2012-08-02 15:13:34 -04:00
Nick Mathewson
f8c9cc713d
Merge remote-tracking branch 'origin/maint-0.2.3'
2012-07-18 10:14:40 -04:00
Nick Mathewson
ec8bdc5da8
Merge remote-tracking branch 'asn/bug3589'
2012-07-17 12:05:08 -04:00
Nick Mathewson
7faf115dff
Change all SMARTLIST_FOREACH loops of >=10 lines to use BEGIN/END
...
The SMARTLIST_FOREACH macro is more convenient than BEGIN/END when
you have a nice short loop body, but using it for long bodies makes
your preprocessor tell the compiler that all the code is on the same
line. That causes grief, since compiler warnings and debugger lines
will all refer to that one line.
So, here's a new style rule: SMARTLIST_FOREACH blocks need to be
short.
2012-07-17 10:34:08 -04:00
George Kadianakis
8b9f4d75f2
Address Nick's comments.
...
- Add a changes/ file.
- Make it compile under --enable-gcc-warnings.
- Update the file-level documentation of src/or/transports.c.
- Only update descriptor if at least a managed proxy was configured.
- Add our external IP address to the extra-info descriptor instead of 0.0.0.0.
2012-07-12 15:28:43 +02:00
Nick Mathewson
e9b33ed1bf
On windows, ENOBUFS starts with WSA. #6296 . Fix on 0.2.18-rc
2012-07-05 05:01:00 -04:00
Nick Mathewson
4432fa40dd
Merge remote-tracking branch 'andrea/bug6028'
2012-06-18 11:51:55 -04:00
Roger Dingledine
c37b8023b7
fix the typo on the typo fix
2012-06-15 20:34:16 -04:00
Andrea Shepard
1f7f10e4f3
Always set *socket_error to something appropriate when returning -1 from connection_connect()
2012-06-15 16:53:32 -07:00
Roger Dingledine
ca525db02d
fix typos from 783f705d
2012-06-15 17:08:25 -04:00
Nick Mathewson
783f705ddc
Document that we are unlikely to underflow session group IDs.
2012-06-15 15:07:53 -04:00
Nick Mathewson
2491fff5a6
Triage the XXX023 and XXX022 comments: postpone many.
2012-06-15 15:07:52 -04:00
Nick Mathewson
38642a9369
Downgrade tor_assert(0) to tor_fragile_assert() in windows stub create_unix_sockaddr
2012-06-05 10:36:34 -04:00
Nick Mathewson
0fa107a6aa
Update copyright dates to 2012; add a few missing copyright statements
2012-06-04 20:58:17 -04:00
Nick Mathewson
173b18c79b
Add about 60 more DOCDOC comments to 0.2.3
...
Also, try to resolve some doxygen issues. First, define a magic
"This is doxygen!" macro so that we take the correct branch in
various #if/#else/#endifs in order to get the right documentation.
Second, add in a few grouping @{ and @} entries in order to get some
variables and fields to get grouped together.
2012-06-04 19:59:08 -04:00
Nick Mathewson
f68c042637
Resolve all currently pending DOCDOC items in master
2012-06-04 19:05:51 -04:00
Nick Mathewson
fc0842275d
Merge remote-tracking branch 'public/bug5374'
2012-05-31 15:07:19 -04:00
Nick Mathewson
fe68a80f8f
Merge branch 'bug5604'
2012-05-30 17:00:36 -04:00
Nick Mathewson
d7e4777791
Add a little documentation for the bug5604 fix
2012-05-30 17:00:22 -04:00
Nick Mathewson
9d41629aa0
Delay getsockname() call until after connect() is done
...
On Windows, getsockname() on a nonblocking apparently won't work
until the connection is done connecting. On XP, it seems to fail by
reporting success and declaring that your address is INADDR_ANY. On the
Win8 preview, though, it fails more loudly and says WSAEINVAL.
Fix for bug 5374; bugfix on 0.1.1.14-alpha.
2012-05-24 16:57:36 -04:00
Nick Mathewson
d8de831932
MSVC build issue: it can't tell that tor_assert(0) aborts.
2012-05-14 13:07:27 -04:00
Nick Mathewson
3e4ccbc4ba
Merge remote-tracking branch 'public/bug5537'
2012-04-24 11:05:50 -04:00
Nick Mathewson
074bf72a2c
If DisableNetwork, don't even try to open non-controller listeners
...
Fix for 5604; bugfix on 0.2.3.9-alpha, which introduced DisableNetwork.
2012-04-18 23:32:02 -04:00
Nick Mathewson
ab338e3bb8
Merge remote-tracking branch 'origin/maint-0.2.2'
2012-04-11 10:06:49 -04:00
Nick Mathewson
dd3f4f1bdb
Include a Host: header with any HTTP/1.1 proxy request
...
Bugfix on 0.2.2.1-alpha, which added the orginal HTTP proxy
authentication code. Fix for bug 5593.
2012-04-10 12:00:20 -04:00
Nick Mathewson
a74905cea4
We allow IPv6 connections, don't use sockaddr_in with getsockname
...
This fixes client_check_address_changed to work better with IPv6 Tor
clients, and prevents them from spewing errors. Fix for ticket 5537.
2012-03-30 16:43:52 -04:00
Sebastian Hahn
77bc1b803e
Fix a bunch of check-spaces complaints
2012-03-28 15:02:15 +02:00
Nick Mathewson
5a2d0fbe64
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/or/control.c
2012-03-26 18:51:37 -04:00
Roger Dingledine
b5a8c3aa00
Remove misleading function comment (bug 5324)
...
In the distant past, connection_handle_read() could be called when there
are pending bytes in the TLS object during the main loop. The design
since then has been to always read all pending bytes immediately, so
read events only trigger when the socket actually has bytes to read.
Resolves bug 5324.
2012-03-07 21:07:30 -05:00
Robert Ransom
e111e371b4
Implement 'safe cookie authentication'
2012-02-22 05:46:09 -08:00
Nick Mathewson
dd68d596cd
Set IPV6_V6ONLY on listener sockets bound to IPv6 addresses.
...
If we don't do this, [::] can be interpreted to mean all v4 and all
v6 addresses. Found by dcf. Fixes bug 4760. See RFC 3493 section
5.3 for more info.
2012-01-31 16:09:49 -05:00
Nick Mathewson
5cf9167f91
Use the standard _WIN32, not the Torism MS_WINDOWS or deprecated WIN32
...
This commit is completely mechanical; I used this perl script to make it:
#!/usr/bin/perl -w -i.bak -p
if (/^\s*\#/) {
s/MS_WINDOWS/_WIN32/g;
s/\bWIN32\b/_WIN32/g;
}
2012-01-31 15:48:47 -05:00
Roger Dingledine
247a21379a
set SO_REUSEADDR before we bind, not after
...
resolves bug 4950 (fixes a bug on commit aba7bb705a
from #2850 )
2012-01-23 15:54:02 -05:00
Nick Mathewson
26e789fbfd
Rename nonconformant identifiers.
...
Fixes bug 4893.
These changes are pure mechanical, and were generated with this
perl script:
/usr/bin/perl -w -i.bak -p
s/crypto_pk_env_t/crypto_pk_t/g;
s/crypto_dh_env_t/crypto_dh_t/g;
s/crypto_cipher_env_t/crypto_cipher_t/g;
s/crypto_digest_env_t/crypto_digest_t/g;
s/aes_free_cipher/aes_cipher_free/g;
s/crypto_free_cipher_env/crypto_cipher_free/g;
s/crypto_free_digest_env/crypto_digest_free/g;
s/crypto_free_pk_env/crypto_pk_free/g;
s/_crypto_dh_env_get_dh/_crypto_dh_get_dh/g;
s/_crypto_new_pk_env_rsa/_crypto_new_pk_from_rsa/g;
s/_crypto_pk_env_get_evp_pkey/_crypto_pk_get_evp_pkey/g;
s/_crypto_pk_env_get_rsa/_crypto_pk_get_rsa/g;
s/crypto_new_cipher_env/crypto_cipher_new/g;
s/crypto_new_digest_env/crypto_digest_new/g;
s/crypto_new_digest256_env/crypto_digest256_new/g;
s/crypto_new_pk_env/crypto_pk_new/g;
s/crypto_create_crypto_env/crypto_cipher_new/g;
s/connection_create_listener/connection_listener_new/g;
s/smartlist_create/smartlist_new/g;
s/transport_create/transport_new/g;
2012-01-18 15:53:30 -05:00
Nick Mathewson
6e8c2a3e46
Use SOCKET_OK macros in even more places
...
Add a TOR_INVALID_SOCKET macro to wrap -1/INVALID_SOCKET.
Partial work for bug4533.
2012-01-17 16:35:07 -05:00
Nick Mathewson
47b7a27929
Merge remote-tracking branch 'origin/maint-0.2.2'
2012-01-03 13:22:34 -05:00
Sebastian Hahn
5d9be49540
Fix a check-spaces violation in compat.c
...
Also fix a comment typo
2011-12-30 23:30:57 +01:00
Sebastian Hahn
d861b4cc9d
Fix spelling in a controlsocket log msg
...
Fixes bug 4803.
2011-12-30 23:27:02 +01:00
Nick Mathewson
878a684386
Merge remote-tracking branch 'public/bug4697'
2011-12-22 09:45:26 -05:00
Nick Mathewson
8cdeaedf86
Convert a couple of char[256]s into sockaddr_storage
2011-12-21 11:23:13 -05:00
Nick Mathewson
f75660958c
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-12-21 11:20:56 -05:00
Nick Mathewson
b5e6bbc01d
Do not even try to keep going on a socket with socklen==0
...
Back in #1240 , r1eo linked to information about how this could happen
with older Linux kernels in response to nmap. Bugs #4545 and #4547
are about how our approach to trying to deal with this condition was
broken and stupid. Thanks to wanoskarnet for reminding us about #1240 .
This is a fix for the abovementioned bugs, and is a bugfix on
0.1.0.3-rc.
2011-12-21 11:19:41 -05:00
Nick Mathewson
e5e50d86ca
Ignore all bufferevent events on a marked connection
...
Bug 4697; fix on 0.2.3.1-alpha
2011-12-17 14:06:10 -05:00
Nick Mathewson
cf14a520c8
Resolve bug 3448: remove mention of tor-ops (which is not in use)
2011-12-02 15:42:15 -05:00
Linus Nordberg
529820f8ba
Use correct address family where necessary for bridges on IPv6.
2011-11-30 11:55:46 -05:00
Linus Nordberg
1c2c3314a9
Add some logging and comments.
2011-11-30 11:55:44 -05:00
Nick Mathewson
5f0a8dcd2c
Initial hacking for proposal 186.
...
This code handles the new ORPort options, and incidentally makes all
remaining port types use the new port configuration systems.
There are some rough edges! It doesn't do well in the case where your
Address says one thing but you say to Advertise another ORPort. It
doesn't handle AllAddrs. It doesn't actually advertise anything besides
the first listed advertised IPv4 ORPort and DirPort. It doesn't do
port forwarding to them either.
It's not tested either, it needs more documentation, and it probably
forgets to put the milk back in the refrigerator.
2011-11-30 11:55:44 -05:00
Nick Mathewson
9e8f3ee8e4
Fix some DOCDOCs
2011-11-29 17:52:16 -05:00
Nick Mathewson
df9b76460c
New 'DisableNetwork' option to prevent Tor from using the network
...
Some controllers want this so they can mess with Tor's configuration
for a while via the control port before actually letting Tor out of
the house.
We do this with a new DisableNetwork option, that prevents Tor from
making any outbound connections or binding any non-control
listeners. Additionally, it shuts down the same functionality as
shuts down when we are hibernating, plus the code that launches
directory downloads.
To make sure I didn't miss anything, I added a clause straight to
connection_connect, so that we won't even try to open an outbound
socket when the network is disabled. In my testing, I made this an
assert, but since I probably missed something, I've turned it into a
BUG warning for testing.
2011-11-28 15:44:10 -05:00
Sebastian Hahn
4b8d2ad6f5
Fix compile warnings on windows
2011-11-15 13:34:04 +01:00
Nick Mathewson
b1632c3fb7
Fix memory leak in retry_all_listeners: Coverity CID 485
2011-10-26 13:22:20 -04:00
Nick Mathewson
00b2b69add
Fix names of functions that convert strings to addrs
...
Now let's have "lookup" indicate that there can be a hostname
resolution, and "parse" indicate that there wasn't. Previously, we
had one "lookup" function that did resolution; four "parse" functions,
half of which did resolution; and a "from_str()" function that didn't
do resolution. That's confusing and error-prone!
The code changes in this commit are exactly the result of this perl
script, run under "perl -p -i.bak" :
s/tor_addr_port_parse/tor_addr_port_lookup/g;
s/parse_addr_port(?=[^_])/addr_port_lookup/g;
s/tor_addr_from_str/tor_addr_parse/g;
This patch leaves aton and pton alone: their naming convention and
behavior is is determined by the sockets API.
More renaming may be needed.
2011-10-11 11:30:12 -04:00
Nick Mathewson
1b0645acba
Cell types and states for new OR handshake
...
Also, define all commands > 128 as variable-length when using
v3 or later link protocol. Running into a var cell with an
unrecognized type is no longer a bug.
2011-10-10 23:14:09 -04:00
Nick Mathewson
ed39621a9d
Merge remote-tracking branch 'asn2/bug3656'
...
Conflicts:
src/common/util.c
src/common/util.h
src/or/config.h
src/or/main.c
src/test/test_util.c
2011-10-07 16:05:13 -04:00
Nick Mathewson
fee094afcd
Fix issues in 3630 patch noted by Karsten
2011-09-22 15:07:35 -04:00
Nick Mathewson
41dfc4c19c
Make bufferevents work with TokenBucketRefillInterval
2011-09-22 15:07:34 -04:00
Nick Mathewson
052b95e2f1
Refactor connection_bucket_refill(_helper) to avoid roundoff
...
We were doing "divide bandwidth by 1000, then multiply by msec", but
that would lose accuracy: instead of getting your full bandwidth,
you'd lose up to 999 bytes per sec. (Not a big deal, but every byte
helps.)
Instead, do the multiply first, then the division. This can easily
overflow a 32-bit value, so make sure to do it as a 64-bit operation.
2011-09-22 15:07:34 -04:00
Florian Tschorsch
6b1d8321ae
New torrc option to allow bucket refill intervals of less than 1 sec
...
Implements bug3630.
2011-09-22 15:07:23 -04:00
Nick Mathewson
2394c74017
Log errno on listener socket creation failure.
...
This may help diagnose bug 4027.
2011-09-15 09:51:48 -04:00
George Kadianakis
0dcf327248
Remove connection_uses_transport() since it was unused.
2011-09-11 20:33:27 +02:00
Nick Mathewson
d3ff167e09
Fix whitespace issues in patches merged today so far
2011-09-07 20:26:58 -04:00
Jérémy Bobbio
58a0afe30f
chown() sockets when User option is set
...
Fixes bug 3421
2011-09-07 15:49:01 -04:00
Nick Mathewson
0cb01f5c97
Merge remote-tracking branch 'public/split_entry_conn'
...
Conflicts:
src/or/connection.c
src/or/connection_edge.c
src/or/connection_edge.h
src/or/dnsserv.c
Some of these were a little tricky, since they touched code that
changed because of the prop171 fixes.
2011-09-07 14:13:57 -04:00
Sebastian Hahn
ebb5f8df36
Explicitly set bucket_cfg to NULL after we freed it
...
This should fix bug 3888.
2011-09-01 12:34:16 +02:00
Nick Mathewson
cdbfc2a0c2
Fix compilation on non-bufferevent systems after 3803 fix: oops.
2011-08-29 13:41:59 -04:00
Nick Mathewson
0de8afd8f5
Split out rephist parts of buckets_decrement
...
For bufferevents, we had all of connection_buckets_decrement() stubbed
out. But that's not actually right! The rephist_* parts were
essential for, inter alia, recording our own bandwidth. This patch
splits out the rephist parts of connection_buckets_decrement() into their
own function, and makes the bufferevent code call that new function.
Fixes bug 3803, and probably 3824 and 3826 too. Bugfix on 0.2.3.1-alpha.
2011-08-29 13:33:31 -04:00
Nick Mathewson
dfcd3d9ce0
Set write low-watermarks on all bufferevents.
...
If we don't do this, then we never invoke the bufferevent write
callbacks until all the bufferevent's data is flushed.
2011-08-24 17:31:37 -04:00
Nick Mathewson
59d0f750c9
Apply rate-limiting to the lowest bufferevent in the stack.
...
When we're doing filtering ssl bufferevents, we want the rate-limits
to apply to the lowest level of the bufferevent stack, so that we're
actually limiting bytes sent on the network. Otherwise, we'll read
from the network aggressively, and only limit stuff as we process it.
2011-08-24 17:31:32 -04:00
Nick Mathewson
263d68aa82
Appease "make check-spaces"
2011-08-18 15:17:37 -04:00
Nick Mathewson
06be6105e4
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/or/config.c
2011-08-17 12:00:44 -04:00
Nick Mathewson
d79d648edc
Don't write ControlPorts to disk till after we setuid and make datadir
...
Fix for bug 3747; bugfix on 0.2.2.26-beta.
2011-08-17 11:22:16 -04:00
Sebastian Hahn
6a06f45b04
Actually pick a random port when "auto" is specified
...
ddc65e2b33
had broken this
2011-08-17 10:41:36 -04:00
George Kadianakis
ec8d0a6d83
Free global_rate_limit in connection_free_all().
2011-08-13 20:37:13 +02:00
George Kadianakis
a5fd07d178
Move connection_free_all() to the bottom of connection.c to enjoy maximum visibility.
2011-08-13 20:29:22 +02:00
Nick Mathewson
6596aa022f
Implement protocol-type isolation correctly.
...
Previously we'd just looked at the connection type, but that's
always CONN_TYPE_AP. Instead, we should be looking at the type of
the listener that created the connection.
Spotted by rransom; fixes bug 3636.
2011-08-02 10:48:39 -04:00
Nick Mathewson
569fe936b8
Move entry-only fields from edge_connection_t to entry_connection_t
...
Also, refactor the code accordingly.
2011-07-21 11:15:25 -04:00
Nick Mathewson
33e6a3d750
Add a new type entry_connection_t for entry connections
...
No fields have moved there yet; for now, it's just a placeholder type.
2011-07-21 10:39:59 -04:00
Sebastian Hahn
9b0d3719ae
Don't assert for listener connections
2011-07-20 19:42:11 +02:00
Nick Mathewson
6b228726bc
Initialize listener connection addr fields properly
2011-07-20 13:11:29 -04:00
Nick Mathewson
da83da9199
Add a missing break in a switch statement
2011-07-20 12:58:26 -04:00
Nick Mathewson
eaa1c05397
Merge branch 'optimistic-client'
...
The conflicts are with the proposal 171 circuit isolation code, and
they're all trivial: they're just a matter of both branches adding
some unrelated code in the same places.
Conflicts:
src/or/circuituse.c
src/or/connection.c
2011-07-20 09:50:53 -04:00
Nick Mathewson
12dfb4f5d8
Use socks username/password information in stream isolation
2011-07-19 02:44:12 -04:00
Nick Mathewson
8314fa5e5c
Implement sensible isolation for tunneled directory conns
...
One-hop dirconn streams all share a session group, and get the
ISO_SESSIONGRP flag: they may share circuits with each other and
nothing else.
Anonymized dirconn streams get a new internal-use-only ISO_STREAM
flag: they may not share circuits with anything, including each other.
2011-07-19 02:02:17 -04:00
Nick Mathewson
424063e3b2
Implement destaddr-based isolation
...
The new candidate rule, which arma suggested and I like, is that
the original address as received from the client connection or as
rewritten by the controller is the address that counts.
2011-07-19 02:02:11 -04:00
Nick Mathewson
1d3c8c1f74
Add a new isolation type and field: "nym epoch"
...
The "nym epoch" of a stream is defined as the number of times that
NEWNYM had been called before the stream was opened. All streams
are isolated by nym epoch.
This feature should be redundant with existing signewnym stuff, but
it provides a good belt-and-suspenders way for us to avoid ever
letting any circuit type bypass signewnym.
2011-07-19 01:58:45 -04:00