aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-02-24 14:11:58 +0000
committerMartin Willi <martin@revosec.ch>2010-02-26 11:44:34 +0100
commitb3b74e479bf832665c906906660687197d9516fe (patch)
tree3bb54ef311388918869397c08d20f3f411b255b1 /src
parentda2303ca69545d4b3a9ebd0b5a83fa9c681bf694 (diff)
downloadstrongswan-b3b74e479bf832665c906906660687197d9516fe.tar.bz2
strongswan-b3b74e479bf832665c906906660687197d9516fe.tar.xz
Set UDP encapsulation option on all sockets
Diffstat (limited to 'src')
-rw-r--r--src/charon/plugins/socket_dynamic/socket_dynamic_socket.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/charon/plugins/socket_dynamic/socket_dynamic_socket.c b/src/charon/plugins/socket_dynamic/socket_dynamic_socket.c
index f88c1dd6b..a7db59ce5 100644
--- a/src/charon/plugins/socket_dynamic/socket_dynamic_socket.c
+++ b/src/charon/plugins/socket_dynamic/socket_dynamic_socket.c
@@ -345,7 +345,7 @@ METHOD(socket_t, receiver, status_t,
* open a socket to send and receive packets
*/
static int open_socket(private_socket_dynamic_socket_t *this,
- int family, u_int16_t port, bool first)
+ int family, u_int16_t port)
{
int on = TRUE, type = UDP_ENCAP_ESPINUDP;
struct sockaddr_storage addr;
@@ -418,8 +418,8 @@ static int open_socket(private_socket_dynamic_socket_t *this,
DBG1(DBG_NET, "installing IKE bypass policy failed");
}
- /* enable UDP decapsulation globally, only for one socket needed */
- if (first && setsockopt(fd, SOL_UDP, UDP_ENCAP, &type, sizeof(type)) < 0)
+ /* enable UDP decapsulation on each socket */
+ if (setsockopt(fd, SOL_UDP, UDP_ENCAP, &type, sizeof(type)) < 0)
{
DBG1(DBG_NET, "unable to set UDP_ENCAP: %s", strerror(errno));
}
@@ -446,8 +446,7 @@ static dynsock_t *find_socket(private_socket_dynamic_socket_t *this,
{
return skt;
}
- fd = open_socket(this, family, port,
- this->sockets->get_count(this->sockets));
+ fd = open_socket(this, family, port);
if (!fd)
{
return NULL;