This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
Tobias Engel t-openbsc at tobias.orgRemove the commandline option to specify the interface when compiled on a system that doesn't implement SO_BINDTODEVICE. --- openbsc/src/ipaccess/ipaccess-find.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/openbsc/src/ipaccess/ipaccess-find.c b/openbsc/src/ipaccess/ipaccess-find.c index 3f9bf41..2d923fe 100644 --- a/openbsc/src/ipaccess/ipaccess-find.c +++ b/openbsc/src/ipaccess/ipaccess-find.c @@ -31,6 +31,14 @@ #include <openbsc/ipaccess.h> #include <openbsc/gsm_data.h> +/* SO_BINDTODEVICE is not implemented on BSD */ +#ifdef SO_BINDTODEVICE +# define SET_SO_BINDTODEVICE(fd, ifname) \ + (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, ifname, strlen(ifname))) +#else +# define SET_SO_BINDTODEVICE(fd, ifname) (-1) +#endif + static int udp_sock(const char *ifname) { int fd, rc, bc = 1; @@ -41,8 +49,7 @@ static int udp_sock(const char *ifname) return fd; if (ifname) { - rc = setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, ifname, - strlen(ifname)); + rc = SET_SO_BINDTODEVICE(fd, ifname); if (rc < 0) goto err; } @@ -172,12 +179,14 @@ int main(int argc, char **argv) printf("ipaccess-find (C) 2009 by Harald Welte\n"); printf("This is FREE SOFTWARE with ABSOLUTELY NO WARRANTY\n\n"); +#ifdef SO_BINDTODEVICE if (argc < 2) { fprintf(stdout, "you might need to specify the outgoing\n" " network interface, e.g. ``%s eth0''\n", argv[0]); } else { ifname = argv[1]; } +#endif bfd.cb = bfd_cb; bfd.when = BSC_FD_READ | BSC_FD_WRITE; -- 1.7.10.2 (Apple Git-33)