diff --git a/nsock/src/nsock_connect.c b/nsock/src/nsock_connect.c index 0913d75ca..dfe079908 100644 --- a/nsock/src/nsock_connect.c +++ b/nsock/src/nsock_connect.c @@ -104,13 +104,11 @@ static int nsock_make_socket(mspool *ms, msiod *iod, int family, int type, int p } } if (ms->device) { -#ifdef SO_BINDTODEVICE errno = 0; - if (setsockopt(iod->sd, SOL_SOCKET, SO_BINDTODEVICE, ms->device, strlen(ms->device) + 1) == -1) { + if (!socket_bindtodevice(iod->sd, ms->device)) { if ((errno != EPERM && ms->tracelevel > 0) || ms->tracelevel > 5) nsock_trace(ms, "Setting of SO_BINDTODEVICE failed (IOD #%li)", iod->id); } -#endif } if (ms->broadcast) { if (setsockopt(iod->sd, SOL_SOCKET, SO_BROADCAST, (const char *)&(ms->broadcast), sizeof(int)) == -1) {