summaryrefslogtreecommitdiff
path: root/src/or/connection.c
diff options
context:
space:
mode:
authorcypherpunks <cypherpunks@torproject.org>2015-12-16 22:53:19 +0100
committerNick Mathewson <nickm@torproject.org>2015-12-17 08:34:27 -0500
commit2d2312d98986d65af47d35a89e176b5cf9953533 (patch)
tree3f404edce6716b5cd13c4303956e603890a3bb09 /src/or/connection.c
parent596f9a4b4cf9211827284905069166972aaf1e3b (diff)
downloadtor-2d2312d98986d65af47d35a89e176b5cf9953533.tar.gz
tor-2d2312d98986d65af47d35a89e176b5cf9953533.zip
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.
Diffstat (limited to 'src/or/connection.c')
-rw-r--r--src/or/connection.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/or/connection.c b/src/or/connection.c
index b4cd4cdddb..be59a2c048 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1139,7 +1139,8 @@ connection_listener_new(const struct sockaddr *listensockaddr,
if (options->TransProxyType_parsed == TPT_TPROXY &&
type == CONN_TYPE_AP_TRANS_LISTENER) {
int one = 1;
- if (setsockopt(s, SOL_IP, IP_TRANSPARENT, &one, sizeof(one)) < 0) {
+ if (setsockopt(s, SOL_IP, IP_TRANSPARENT, (void*)&one,
+ (socklen_t)sizeof(one)) < 0) {
const char *extra = "";
int e = tor_socket_errno(s);
if (e == EPERM)
@@ -1162,7 +1163,7 @@ connection_listener_new(const struct sockaddr *listensockaddr,
/* We need to set IPV6_V6ONLY so that this socket can't get used for
* IPv4 connections. */
if (setsockopt(s,IPPROTO_IPV6, IPV6_V6ONLY,
- (void*)&one, sizeof(one)) < 0) {
+ (void*)&one, (socklen_t)sizeof(one)) < 0) {
int e = tor_socket_errno(s);
log_warn(LD_NET, "Error setting IPV6_V6ONLY flag: %s",
tor_socket_strerror(e));