diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-06-06 05:41:21 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-06-06 05:41:21 +0000 |
commit | fc0afb681070a0cb2ad1b5d4d4d7d6bc83b50ebe (patch) | |
tree | 8d004acd6e43592a6e5707096c9f3e4c4b1c181b /src/charon/network/socket.c | |
parent | 32b6500fbfe063f3efb5589facd027f4c6cf08ed (diff) | |
download | strongswan-fc0afb681070a0cb2ad1b5d4d4d7d6bc83b50ebe.tar.bz2 strongswan-fc0afb681070a0cb2ad1b5d4d4d7d6bc83b50ebe.tar.xz |
created IPv6 environment
Diffstat (limited to 'src/charon/network/socket.c')
-rw-r--r-- | src/charon/network/socket.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/charon/network/socket.c b/src/charon/network/socket.c index ba01702cb..c42c9cd10 100644 --- a/src/charon/network/socket.c +++ b/src/charon/network/socket.c @@ -308,9 +308,9 @@ static status_t build_interface_list(private_socket_t *this, u_int16_t port) int skt; interface_t *interface; - if (current->sin_family != AF_INET) + if (current->sin_family != AF_INET && current->sin_family != AF_INET6) { - /* ignore all but AF_INET interfaces */ + /* ignore all but IPv4 and IPv6 interfaces */ continue; } @@ -334,7 +334,7 @@ static status_t build_interface_list(private_socket_t *this, u_int16_t port) } /* set up interface socket */ - skt = socket(AF_INET, SOCK_RAW, IPPROTO_UDP); + skt = socket(current->sin_family, SOCK_RAW, IPPROTO_UDP); if (socket < 0) { this->logger->log(this->logger, ERROR, "unable to open interface socket!"); @@ -347,7 +347,7 @@ static status_t build_interface_list(private_socket_t *this, u_int16_t port) continue; } current->sin_port = htons(port); - current->sin_family = AF_INET; + if (bind(skt, (struct sockaddr*)current, sizeof(struct sockaddr_in)) < 0) { this->logger->log(this->logger, ERROR, "unable to bind interface socket!"); |