Open botovq opened 3 years ago
While looking at #152, I noticed that the fib handling on FreeBSD looks odd. It assigns to t->fd only if the setsockopt call fails.
fib
t->fd
setsockopt
https://github.com/zehome/MLVPN/blob/2263bab7e5f983e1daa33887b53120c12646398f/src/mlvpn.c#L850-L860
This will likely need a further #if to work as intended, something like
#if
#if defined(HAVE_FREEBSD) || defined(HAVE_OPENBSD) #if defined(HAVE_FREEBSD) if (fib > 0 && setsockopt(fd, SOL_SOCKET, SO_SETFIB, &fib, sizeof(fib)) < 0) #elif defined(HAVE_OPEBSD) if (fib > 0 && setsockopt(fd, SOL_SOCKET, SO_RTABLE, &fib, sizeof(fib)) < 0) #endif { log_warn(NULL, "Cannot set FIB %d for kernel socket", fib); goto error; } #endif
Or assign SO_SETFIB or SO_RTABLE to a variable and avoid the duplicated conditional.
SO_SETFIB
SO_RTABLE
While looking at #152, I noticed that the
fib
handling on FreeBSD looks odd. It assigns tot->fd
only if thesetsockopt
call fails.https://github.com/zehome/MLVPN/blob/2263bab7e5f983e1daa33887b53120c12646398f/src/mlvpn.c#L850-L860
This will likely need a further
#if
to work as intended, something likeOr assign
SO_SETFIB
orSO_RTABLE
to a variable and avoid the duplicated conditional.