diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-12-21 20:20:48 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-21 20:20:48 -0500 |
| commit | a60df89e65bb54fc957d7a6ecc6954091512780c (patch) | |
| tree | 38d7044e832368b67e04115ac343e0fa84c25bac /ldpd/socket.c | |
| parent | f6913418f3ac6808cf2ac7d76a41f80edc1a8436 (diff) | |
| parent | f43be00b6aa130e515479a95f89f0d103a9b0614 (diff) | |
Merge pull request #3527 from opensourcerouting/ldpd-bsd-fixes
ldpd: *BSD fixes
Diffstat (limited to 'ldpd/socket.c')
| -rw-r--r-- | ldpd/socket.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/ldpd/socket.c b/ldpd/socket.c index bebd7a7d61..78a07b1ed4 100644 --- a/ldpd/socket.c +++ b/ldpd/socket.c @@ -268,9 +268,18 @@ sock_set_bindany(int fd, int enable) return (-1); } return (0); +#elif defined(IP_BINDANY) + frr_elevate_privs(&ldpd_privs) { + if (setsockopt(fd, IPPROTO_IP, IP_BINDANY, &enable, sizeof(int)) + < 0) { + log_warn("%s: error setting IP_BINDANY", __func__); + return (-1); + } + } #else - log_warnx("%s: missing SO_BINDANY and IP_FREEBIND, unable to bind " - "to a nonlocal IP address", __func__); + log_warnx( + "%s: missing SO_BINDANY, IP_FREEBIND and IP_BINDANY, unable to bind to a nonlocal IP address", + __func__); return (-1); #endif /* HAVE_SO_BINDANY */ } |
