aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/charon/network/socket.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/charon/network/socket.c b/src/charon/network/socket.c
index 0cd57aad3..eb61c83b3 100644
--- a/src/charon/network/socket.c
+++ b/src/charon/network/socket.c
@@ -389,16 +389,15 @@ static status_t initialize(private_socket_t *this)
{
this->logger->log(this->logger, ERROR, "unable to setup send socket on port %d!", this->natt_port);
return FAILED;
- } else {
+ }
+ else
+ {
int type = UDP_ENCAP_ESPINUDP;
- if (setsockopt(this->natt_fd, SOL_UDP, UDP_ENCAP, &type, sizeof(type)) < 0
- && errno == ENOPROTOOPT)
+ if (setsockopt(this->natt_fd, SOL_UDP, UDP_ENCAP, &type, sizeof(type)) < 0)
{
- this->logger->log(this->logger, ERROR, "unable to set UDP_ENCAP on natt send socket!");
- close(this->natt_fd);
- close(this->send_fd);
- close(this->raw_fd);
- return FAILED;
+ this->logger->log(this->logger, ERROR,
+ "unable to set UDP_ENCAP on natt send socket! NAT-T may fail! error: %s",
+ strerror(errno));
}
}