summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-02-23 12:16:08 -0500
committerNick Mathewson <nickm@torproject.org>2015-02-23 12:16:08 -0500
commitf1fa85ea7325269fdb9f2d82257104d51f58b6a6 (patch)
tree3e4c59934336e2a891317103d12d2cb5aaa3d90c /src
parent7a1a0a4cd7d8ccdc5c9a327762f736a4e8d0d6a9 (diff)
downloadtor-f1fa85ea7325269fdb9f2d82257104d51f58b6a6.tar.gz
tor-f1fa85ea7325269fdb9f2d82257104d51f58b6a6.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/or/connection.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index 79ae178a56..7db0238b3d 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1612,7 +1612,6 @@ connection_connect_sockaddr(connection_t *conn,
tor_socket_t s;
int inprogress = 0;
const or_options_t *options = get_options();
- int protocol_family;
tor_assert(conn);
tor_assert(sa);
@@ -1624,8 +1623,6 @@ connection_connect_sockaddr(connection_t *conn,
return -1;
}
- protocol_family = sa->sa_family;
-
if (get_options()->DisableNetwork) {
/* We should never even try to connect anyplace if DisableNetwork is set.
* Warn if we do, and refuse to make the connection. */
@@ -1637,7 +1634,11 @@ connection_connect_sockaddr(connection_t *conn,
return -1;
}
- s = tor_open_socket_nonblocking(protocol_family, SOCK_STREAM, 0);
+ const int protocol_family = sa->sa_family;
+ const int proto = (sa->sa_family == AF_INET6 ||
+ sa->sa_family == AF_INET) ? IPPROTO_TCP : 0;
+
+ s = tor_open_socket_nonblocking(protocol_family, SOCK_STREAM, proto);
if (! SOCKET_OK(s)) {
*socket_error = tor_socket_errno(-1);
log_warn(LD_NET,"Error creating network socket: %s",