svn commit: r231670 - projects/multi-fibv6/head/contrib/netcat
Bjoern A. Zeeb
bz at FreeBSD.org
Tue Feb 14 11:37:05 UTC 2012
Author: bz
Date: Tue Feb 14 11:37:04 2012
New Revision: 231670
URL: http://svn.freebsd.org/changeset/base/231670
Log:
Switch from setfib(2) moving the process to a different FIB to setsockopt(2)
with SO_SETFIB to only tag the socket with the right FIB.
That way either setfib(1) or nc -V can be used depending on what wants to be
achieved. This also allows nc to be used for simple regression testing of
either feature.
Sponsored by: Cisco Systems, Inc.
Modified:
projects/multi-fibv6/head/contrib/netcat/netcat.c
Modified: projects/multi-fibv6/head/contrib/netcat/netcat.c
==============================================================================
--- projects/multi-fibv6/head/contrib/netcat/netcat.c Tue Feb 14 11:24:24 2012 (r231669)
+++ projects/multi-fibv6/head/contrib/netcat/netcat.c Tue Feb 14 11:37:04 2012 (r231670)
@@ -605,8 +605,10 @@ remote_connect(const char *host, const c
#endif
if (rtableid) {
- if (setfib(rtableid) == -1)
- err(1, "setfib");
+ if (setsockopt(s, SOL_SOCKET, SO_SETFIB, &rtableid,
+ sizeof(rtableid)) == -1)
+ err(1, "setsockopt(.., SO_SETFIB, %u, ..)",
+ rtableid);
}
/* Bind to a local port or source address if specified. */
@@ -678,8 +680,11 @@ local_listen(char *host, char *port, str
continue;
if (rtableid) {
- if (setfib(rtableid) == -1)
- err(1, "setfib");
+ ret = setsockopt(s, SOL_SOCKET, SO_SETFIB, &rtableid,
+ sizeof(rtableid));
+ if (ret == -1)
+ err(1, "setsockopt(.., SO_SETFIB, %u, ..)",
+ rtableid);
}
ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x));
More information about the svn-src-projects
mailing list