diff --git a/src/local.c b/src/local.c index 4530e303..6d904f35 100644 --- a/src/local.c +++ b/src/local.c @@ -919,7 +919,8 @@ static remote_t *create_remote(listen_ctx_t *listener, setnonblocking(remotefd); #ifdef SET_INTERFACE if (listener->iface) { - setinterface(remotefd, listener->iface); + if (setinterface(remotefd, listener->iface) == -1) + ERROR("setinterface"); } #endif diff --git a/src/server.c b/src/server.c index d09c7d53..44838763 100644 --- a/src/server.c +++ b/src/server.c @@ -431,7 +431,8 @@ static remote_t *connect_to_remote(struct addrinfo *res, setnonblocking(sockfd); #ifdef SET_INTERFACE if (iface) { - setinterface(sockfd, iface); + if (setinterface(sockfd, iface) == -1) + ERROR("setinterface"); } #endif diff --git a/src/tunnel.c b/src/tunnel.c index ded83762..1e7cd9b1 100644 --- a/src/tunnel.c +++ b/src/tunnel.c @@ -660,7 +660,8 @@ static void accept_cb(EV_P_ ev_io *w, int revents) setnonblocking(remotefd); #ifdef SET_INTERFACE if (listener->iface) { - setinterface(remotefd, listener->iface); + if (setinterface(remotefd, listener->iface) == -1) + ERROR("setinterface"); } #endif diff --git a/src/udprelay.c b/src/udprelay.c index 2b8c0b3c..3814b021 100644 --- a/src/udprelay.c +++ b/src/udprelay.c @@ -589,7 +589,8 @@ static void query_resolve_cb(struct sockaddr *addr, void *data) #endif #ifdef SET_INTERFACE if (query_ctx->server_ctx->iface) { - setinterface(remotefd, query_ctx->server_ctx->iface); + if (setinterface(remotefd, query_ctx->server_ctx->iface) == -1) + ERROR("setinterface"); } #endif remote_ctx = new_remote(remotefd, query_ctx->server_ctx); @@ -1089,7 +1090,8 @@ static void server_recv_cb(EV_P_ ev_io *w, int revents) #endif #ifdef SET_INTERFACE if (server_ctx->iface) { - setinterface(remotefd, server_ctx->iface); + if (setinterface(remotefd, server_ctx->iface) == -1) + ERROR("setinterface"); } #endif @@ -1169,7 +1171,8 @@ static void server_recv_cb(EV_P_ ev_io *w, int revents) #endif #ifdef SET_INTERFACE if (server_ctx->iface) { - setinterface(remotefd, server_ctx->iface); + if (setinterface(remotefd, server_ctx->iface) == -1); + ERROR("setinterface"); } #endif remote_ctx = new_remote(remotefd, server_ctx);