teor (Tim Wilson-Brown)
c281c03654
If both IPv4 and IPv6 addresses could be used, choose one correctly
...
If there is a node, use node_ipv6_or/dir_preferred().
If there is no node, use fascist_firewall_prefer_ipv6_or/dirport().
2016-02-20 23:40:37 +11:00
Nick Mathewson
ba2be81fc3
Merge remote-tracking branch 'teor/feature17840-v11-merged-v2'
2016-02-11 12:20:20 -05:00
Nick Mathewson
7f9ac4957c
Split a long line
2016-02-11 12:13:02 -05:00
Nick Mathewson
bc7a5eeeda
Merge remote-tracking branch 'weasel/bug18261'
2016-02-11 12:12:02 -05:00
Harini Kannan
c30be5a82d
Using router_get_my_routerinfo()
2016-02-07 16:07:35 -05:00
Peter Palfrader
42e131e9ac
Fix a segfault during startup
...
If unix socket was configured as listener (such as a ControlSocket or a
SocksPort unix socket), and tor was started as root but not configured
to switch to another user, tor would segfault while trying to string
compare a NULL value. Fixes bug 18261; bugfix on 0.2.8.1-alpha. Patch
by weasel.
2016-02-06 22:17:02 +01:00
teor (Tim Wilson-Brown)
c4cb4706c9
Merge branch 'feature17840-v11-squashed' into feature17840-v11-merged
...
Conflicts:
src/or/directory.c
src/test/test_routerlist.c
Fix minor conflicts.
2016-01-29 07:37:06 +11:00
teor (Tim Wilson-Brown)
3a00215c35
Minor whitespace-only fix
2016-01-29 07:16:05 +11:00
teor (Tim Wilson-Brown)
3b8216f215
Use fascist firewall and ClientUseIPv4 for bridge clients
...
Bridge clients ignore ClientUseIPv6, acting as if it is always 1.
This preserves existing behaviour.
Make ClientPreferIPv6OR/DirPort auto by default:
* Bridge clients prefer IPv6 by default.
* Other clients prefer IPv4 by default.
This preserves existing behaviour.
2016-01-29 07:16:04 +11:00
teor (Tim Wilson-Brown)
c3cc8e16e9
Log when IPv4/IPv6 restrictions or preferences weren't met
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
e72cbf7a4e
Choose directory servers by IPv4/IPv6 preferences
...
Add unit tests, refactor pick_directory functions.
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
2d33d192fc
Add ClientUseIPv4 and ClientPreferIPv6DirPort torrc options
...
ClientUseIPv4 0 tells tor to avoid IPv4 client connections.
ClientPreferIPv6DirPort 1 tells tor to prefer IPv6 directory connections.
Refactor policy for IPv4/IPv6 preferences.
Fix a bug where node->ipv6_preferred could become stale if
ClientPreferIPv6ORPort was changed after the consensus was loaded.
Update documentation, existing code, add unit tests.
2016-01-29 07:13:57 +11:00
Nick Mathewson
39a86185c8
Correct further grammatical errors in tor comments
...
Avoid using a pronoun where it makes comments unclear.
Avoid using gender for things that don't have it.
Avoid assigning gender to people unnecessarily.
2016-01-27 08:51:28 -05:00
teor (Tim Wilson-Brown)
c927b6cb1a
Correct grammatical errors in tor comments
...
Avoid using gender for things that don't have it.
Avoid assigning a gender to tor users.
2016-01-26 13:46:54 +11:00
cypherpunks
9d5e47d2d7
Add missing parentheses
2015-12-17 08:34:27 -05:00
cypherpunks
fd399ec850
Remove Windows specific data type usage
...
The Tor code base already contains usage of setsockopt(2) with an int as
their option value without problems.
2015-12-17 08:34:27 -05:00
cypherpunks
2d2312d989
Conform to the type signature of setsockopt(2)
...
According to the POSIX standard the option value is a pointer to void
and the option length a socklen_t. The Windows implementation makes the
option value be a pointer to character and the option length an int.
Casting the option value to a pointer to void conforms to the POSIX
standard while the implicit cast to a pointer to character conforms to
the Windows implementation.
The casts of the option length to the socklen_t data type conforms to
the POSIX standard. The socklen_t data type is actually an alias of an
int so it also conforms to the Windows implementation.
2015-12-17 08:34:27 -05:00
Nick Mathewson
e6be486aea
More emergency-check code for un-removed pending entry conns
...
This might also be what #17752 needs.
2015-12-16 19:16:07 -05:00
Nick Mathewson
efc8b2dbbf
clean whitespace
2015-12-15 13:22:41 -05:00
teor (Tim Wilson-Brown)
df0c135d62
Prop210: Refactor connection_get_* to produce lists and counts
2015-12-16 04:02:12 +11:00
Nick Mathewson
a807bb781b
Whitespace fix
2015-12-10 20:04:04 -05:00
Jamie Nguyen
dcbfe46cd6
Defer creation of Unix socket until after setuid
2015-12-10 20:00:06 -05:00
Arlo Breault
d68b7fd442
Refactor clock skew warning code to avoid duplication
2015-12-10 19:54:11 -05:00
teor (Tim Wilson-Brown)
329aa59e43
Comment-only change to connection_get_by_type_addr_port_purpose
...
connection_get_by_type_addr_port_purpose also ignores connections
that are marked for close.
2015-12-07 16:13:07 +11:00
teor (Tim Wilson-Brown)
b7525c39bf
Comment-only changes to connection_connect
...
port is in host order (addr is tor_addr_t, endianness is abstracted).
addr and port can be different to conn->addr and conn->port if
connecting via a proxy.
2015-12-07 16:10:37 +11:00
Nick Mathewson
0a701e5377
More fixes/debugging attempts for 17659
2015-11-27 12:54:57 -05:00
rl1987
77a5ca901f
Unit test dns_resolve(), dns_clip_ttl(), dns_get_expiry_ttl().
2015-08-23 16:02:39 +03:00
Nick Mathewson
aadff62745
Do not autoflush control connections as their outbufs get big
...
Doing this is no longer necessary, and it leads to weird recursions in
our call graph. Closes ticket 16480.
2015-07-30 13:31:27 -04:00
Nick Mathewson
2ba6542517
Merge remote-tracking branch 'sysrqb/bug15220_026_sysrqb'
2015-07-16 15:38:08 -04:00
Nick Mathewson
cc3a791d55
fix a windows unused var warning
2015-06-28 02:18:15 -04:00
David Goulet
699acd8d54
Validate the open file limit when creating a socket
...
Fixes #16288
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-06-25 11:30:47 -04:00
Nick Mathewson
2f67a6e8c9
Merge remote-tracking branch 'origin/maint-0.2.6'
2015-06-04 15:02:47 -04:00
Yawning Angel
f2ff814582
Set session_group after the port's data structure has been populated.
...
Fixes #16247 , patch by "jojelino".
2015-06-04 13:53:35 +00:00
Yawning Angel
915c7438a7
Add "ADD_ONION"/"DEL_ONION" and "GETINFO onions/*" to the controller.
...
These commands allow for the creation and management of ephemeral
Onion ("Hidden") services that are either bound to the lifetime of
the originating control connection, or optionally the lifetime of
the tor instance.
Implements #6411 .
2015-04-28 10:19:08 -04:00
Yawning Angel
196499da73
Use a custom Base64 encoder with more control over the output format.
2015-04-23 09:06:58 -04:00
Sebastian Hahn
348f2744cf
Initialize two variables
...
This is a trivial change to get around two compiler warnings when
assertions are removed during coverage builds.
2015-03-21 02:00:17 +01:00
Nick Mathewson
809517a863
Allow {World,Group}Writable on AF_UNIX {Socks,Control}Ports.
...
Closes ticket 15220
2015-03-11 13:31:33 -04:00
Roger Dingledine
a1bdb6e42c
fix typo in comment
2015-03-03 19:12:27 -05:00
Nick Mathewson
f1fa85ea73
Fix running with the seccomp2 sandbox
...
We had a regression in 0.2.6.3-alpha when we stopped saying
IPPROTO_TCP to socket(). Fixes bug 14989, bugfix on 0.2.6.3-alpha.
2015-02-23 12:16:08 -05:00
Sebastian Hahn
e0c3de40ad
Fix check-spaces complaints
2015-02-06 21:36:40 +01:00
Nick Mathewson
d1e52d9a2a
Correctly handle OutboundBindAddress again.
...
ca5ba2956b
broke this; bug not in any
released Tor.
Also fix a typo.
Fixes 14541 and 14527. Reported by qbi.
2015-01-30 07:29:23 -05:00
Nick Mathewson
4c1a779539
Restrict unix: addresses to control and socks for now
2015-01-29 14:51:59 -05:00
Nick Mathewson
204374f7d9
Remove SocksSocket; it's now spelled differently thanks to 14451
...
Also, revise bug12585 changes file to mention new syntax
2015-01-29 14:46:20 -05:00
Andrea Shepard
ca5ba2956b
Support connection_exit_connect() to AF_UNIX sockets
2015-01-28 14:30:23 -05:00
Nick Mathewson
23fc1691b6
Merge branch 'better_workqueue_v3_squashed'
2015-01-21 14:47:16 -05:00
Nick Mathewson
4b23b398a3
Merge branch 'bug8546_squashed'
...
Conflicts:
src/or/connection.c
src/or/or.h
src/or/relay.c
2015-01-16 09:31:50 -05:00
Nick Mathewson
49bdfbabb4
Replace field-by-field copy with memcpy for entry_port_cfg
2015-01-16 09:23:03 -05:00
Nick Mathewson
13dac5e463
Move entry_port_cfg_t fields in entry_connection_t
...
Also rename some options for uniformity, and apply this script:
@@
entry_connection_t *conn;
@@
conn->
+entry_cfg.
\(
isolation_flags
\|
session_group
\|
socks_prefer_no_auth
\|
ipv4_traffic
\|
ipv6_traffic
\|
prefer_ipv6
\|
cache_ipv4_answers
\|
cache_ipv6_answers
\|
use_cached_ipv4_answers
\|
use_cached_ipv6_answers
\|
prefer_ipv6_virtaddr
\)
2015-01-16 09:22:58 -05:00
Nick Mathewson
58d17add5e
Combine entry_port_cfg_t fields in listener_connection_t
...
Also, revise the code using these options with this cocci script:
@@
listener_connection_t *conn;
@@
conn->
+entry_cfg.
\(
isolation_flags
\|
session_group
\|
socks_prefer_no_auth
\|
ipv4_traffic
\|
ipv6_traffic
\|
prefer_ipv6
\|
cache_ipv4_answers
\|
cache_ipv6_answers
\|
use_cached_ipv4_answers
\|
use_cached_ipv6_answers
\|
prefer_ipv6_virtaddr
\)
2015-01-16 09:22:53 -05:00
Nick Mathewson
f444f2b1d3
Split client-specific and server-specific parts of port_cfg_t
...
Also, apply this cocci script to transform accesses. (Plus manual
migration for accesses inside smartlist_foreach loops.)
@@
port_cfg_t *cfgx;
@@
cfgx->
+server_cfg.
\(
no_advertise
\|
no_listen
\|
all_addrs
\|
bind_ipv4_only
\|
bind_ipv6_only
\)
@@
port_cfg_t *cfgx;
@@
cfgx->
+entry_cfg.
\(
isolation_flags
\|
session_group
\|
socks_prefer_no_auth
\|
ipv4_traffic
\|
ipv6_traffic
\|
prefer_ipv6
\|
cache_ipv4_answers
\|
cache_ipv6_answers
\|
use_cached_ipv4_answers
\|
use_cached_ipv6_answers
\|
prefer_ipv6_virtaddr
\)
2015-01-16 09:22:49 -05:00