aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/network/socket.c
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2006-06-06 05:41:21 +0000
committerAndreas Steffen <andreas.steffen@strongswan.org>2006-06-06 05:41:21 +0000
commitfc0afb681070a0cb2ad1b5d4d4d7d6bc83b50ebe (patch)
tree8d004acd6e43592a6e5707096c9f3e4c4b1c181b /src/charon/network/socket.c
parent32b6500fbfe063f3efb5589facd027f4c6cf08ed (diff)
downloadstrongswan-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.c8
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!");