diff options
author | Martin Willi <martin@revosec.ch> | 2010-02-24 14:11:58 +0000 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-02-26 11:44:34 +0100 |
commit | b3b74e479bf832665c906906660687197d9516fe (patch) | |
tree | 3bb54ef311388918869397c08d20f3f411b255b1 /src | |
parent | da2303ca69545d4b3a9ebd0b5a83fa9c681bf694 (diff) | |
download | strongswan-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.c | 9 |
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; |