summaryrefslogtreecommitdiff
path: root/src/rexmpp_tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rexmpp_tcp.c')
-rw-r--r--src/rexmpp_tcp.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/rexmpp_tcp.c b/src/rexmpp_tcp.c
index a4d5018..13e6e81 100644
--- a/src/rexmpp_tcp.c
+++ b/src/rexmpp_tcp.c
@@ -143,10 +143,12 @@ rexmpp_tcp_conn_init (rexmpp_t *s,
conn->connection_attempts++;
return REXMPP_CONN_IN_PROGRESS;
}
- struct sockaddr_in addr_v6;
+ struct sockaddr_in6 addr_v6;
if (inet_pton(AF_INET6, host, &addr_v6)) {
- addr_v6.sin_family = AF_INET6;
- addr_v6.sin_port = htons(port);
+ addr_v6.sin6_family = AF_INET6;
+ addr_v6.sin6_port = htons(port);
+ addr_v6.sin6_flowinfo = 0;
+ addr_v6.sin6_scope_id = 0;
conn->sockets[conn->connection_attempts] =
socket(AF_INET6, SOCK_STREAM, 0);
flags = fcntl(conn->sockets[conn->connection_attempts], F_GETFL, 0);
@@ -272,6 +274,8 @@ rexmpp_tcp_conn_proceed (rexmpp_t *s,
len);
addr_v6.sin6_family = AF_INET6;
addr_v6.sin6_port = htons(conn->port);
+ addr_v6.sin6_flowinfo = 0;
+ addr_v6.sin6_scope_id = 0;
domain = AF_INET6;
addr = (struct sockaddr*)&addr_v6;
addrlen = sizeof(addr_v6);