diff options
author | Martin Willi <martin@strongswan.org> | 2006-06-22 13:05:15 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2006-06-22 13:05:15 +0000 |
commit | 4b24dd2d7dab4762f0a0007e0f6e8b15b92d2389 (patch) | |
tree | fc27c17d2580c62f2be5058420a8bf146349208a /src | |
parent | 6f51c9f184e0e2fd67bc601fd40bcee42e4a2d3c (diff) | |
download | strongswan-4b24dd2d7dab4762f0a0007e0f6e8b15b92d2389.tar.bz2 strongswan-4b24dd2d7dab4762f0a0007e0f6e8b15b92d2389.tar.xz |
cleaner error handling on UDP encapsultion sockopt failure
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/network/socket.c | 15 |
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)); } } |