Author: delphij
Date: Tue Feb  2 00:32:15 2010
New Revision: 203366
URL: http://svn.freebsd.org/changeset/base/203366

Log:
  MFC r202640:
  
  Update to 4.6.
  
  Note: the -V option from OpenBSD is implemented using setfib(2) on FreeBSD.

Modified:
  stable/8/contrib/netcat/FREEBSD-vendor
  stable/8/contrib/netcat/nc.1
  stable/8/contrib/netcat/netcat.c
Directory Properties:
  stable/8/contrib/netcat/   (props changed)

Modified: stable/8/contrib/netcat/FREEBSD-vendor
==============================================================================
--- stable/8/contrib/netcat/FREEBSD-vendor      Tue Feb  2 00:30:44 2010        
(r203365)
+++ stable/8/contrib/netcat/FREEBSD-vendor      Tue Feb  2 00:32:15 2010        
(r203366)
@@ -1,5 +1,5 @@
 # $FreeBSD$
 Project:       netcat (aka src/usr.bin/nc in OpenBSD)
 ProjectURL:    http://www.openbsd.org/
-Version:       4.4
+Version:       4.6
 License:       BSD

Modified: stable/8/contrib/netcat/nc.1
==============================================================================
--- stable/8/contrib/netcat/nc.1        Tue Feb  2 00:30:44 2010        
(r203365)
+++ stable/8/contrib/netcat/nc.1        Tue Feb  2 00:32:15 2010        
(r203366)
@@ -1,4 +1,4 @@
-.\"     $OpenBSD: nc.1,v 1.48 2008/09/19 13:24:41 sobrado Exp $
+.\"     $OpenBSD: nc.1,v 1.50 2009/06/05 06:47:12 jmc Exp $
 .\"
 .\" Copyright (c) 1996 David Sacerdote
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 6 2008
+.Dd June 5 2009
 .Dt NC 1
 .Os
 .Sh NAME
@@ -46,6 +46,7 @@
 .Op Fl p Ar source_port
 .Op Fl s Ar source_ip_address
 .Op Fl T Ar ToS
+.Op Fl V Ar fib
 .Op Fl w Ar timeout
 .Op Fl X Ar proxy_protocol
 .Oo Xo
@@ -208,6 +209,9 @@ to script telnet sessions.
 Specifies to use Unix Domain Sockets.
 .It Fl u
 Use UDP instead of the default option of TCP.
+.It Fl V Ar fib
+Set the routing table (FIB).
+The default is 0.
 .It Fl v
 Have
 .Nm
@@ -449,6 +453,7 @@ if the proxy requires it:
 .Ex -std
 .Sh SEE ALSO
 .Xr cat 1 ,
+.Xr setfib 1 ,
 .Xr ssh 1 ,
 .Xr tcp 4
 .Sh AUTHORS

Modified: stable/8/contrib/netcat/netcat.c
==============================================================================
--- stable/8/contrib/netcat/netcat.c    Tue Feb  2 00:30:44 2010        
(r203365)
+++ stable/8/contrib/netcat/netcat.c    Tue Feb  2 00:32:15 2010        
(r203366)
@@ -1,4 +1,4 @@
-/* $OpenBSD: netcat.c,v 1.92 2008/09/19 13:24:41 sobrado Exp $ */
+/* $OpenBSD: netcat.c,v 1.93 2009/06/05 00:18:10 claudio Exp $ */
 /*
  * Copyright (c) 2001 Eric Jackson <er...@monkey.org>
  *
@@ -36,6 +36,7 @@
 #include <sys/limits.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <sys/sysctl.h>
 #include <sys/time.h>
 #include <sys/un.h>
 
@@ -94,6 +95,7 @@ int   Iflag;                                  /* TCP receive 
buffer siz
 int    Oflag;                                  /* TCP send buffer size */
 int    Sflag;                                  /* TCP MD5 signature option */
 int    Tflag = -1;                             /* IP Type of Service */
+u_int  rdomain;
 
 int timeout = -1;
 int family = AF_UNSPEC;
@@ -124,6 +126,8 @@ int
 main(int argc, char *argv[])
 {
        int ch, s, ret, socksv, ipsec_count;
+       int numfibs;
+       size_t intsize = sizeof(int);
        char *host, *uport;
        struct addrinfo hints;
        struct servent *sv;
@@ -137,6 +141,7 @@ main(int argc, char *argv[])
                { NULL,         0,              NULL,           0 }
        };
 
+       rdomain = 0;
        ret = 1;
        ipsec_count = 0;
        s = 0;
@@ -146,7 +151,7 @@ main(int argc, char *argv[])
        sv = NULL;
 
        while ((ch = getopt_long(argc, argv,
-           "46e:DEdhi:jklnoI:O:P:p:rSs:tT:Uuvw:X:x:z",
+           "46DdEe:hI:i:jklnO:oP:p:rSs:tT:UuV:vw:X:x:z",
            longopts, NULL)) != -1) {
                switch (ch) {
                case '4':
@@ -229,6 +234,14 @@ main(int argc, char *argv[])
                case 'u':
                        uflag = 1;
                        break;
+               case 'V':
+                       if (sysctlbyname("net.fibs", &numfibs, &intsize, NULL, 
0) == -1)
+                               errx(1, "Multiple FIBS not supported");
+                       rdomain = (unsigned int)strtonum(optarg, 0,
+                           numfibs - 1, &errstr);
+                       if (errstr)
+                               errx(1, "FIB %s: %s", errstr, optarg);
+                       break;
                case 'v':
                        vflag = 1;
                        break;
@@ -550,6 +563,11 @@ remote_connect(const char *host, const c
                        add_ipsec_policy(s, ipsec_policy[1]);
 #endif
 
+               if (rdomain) {
+                       if (setfib(rdomain) == -1)
+                               err(1, "setfib");
+               }
+
                /* Bind to a local port or source address if specified. */
                if (sflag || pflag) {
                        struct addrinfo ahints, *ares;
@@ -620,6 +638,11 @@ local_listen(char *host, char *port, str
                    res0->ai_protocol)) < 0)
                        continue;
 
+               if (rdomain) {
+                       if (setfib(rdomain) == -1)
+                               err(1, "setfib");
+               }
+
                ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x));
                if (ret == -1)
                        err(1, NULL);
@@ -930,6 +953,7 @@ help(void)
        \t-t            Answer TELNET negotiation\n\
        \t-U            Use UNIX domain socket\n\
        \t-u            UDP mode\n\
+       \t-V fib        Specify alternate routing table (FIB)\n\
        \t-v            Verbose\n\
        \t-w secs\t     Timeout for connects and final net reads\n\
        \t-X proto      Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\
@@ -974,8 +998,8 @@ usage(int ret)
            "usage: nc [-46DdhklnorStUuvz] [-I length] [-i interval] [-O 
length]\n"
 #endif
            "\t  [-P proxy_username] [-p source_port] [-s source_ip_address] 
[-T ToS]\n"
-           "\t  [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] 
[hostname]\n"
-           "\t  [port]\n");
+           "\t  [-V fib] [-w timeout] [-X proxy_protocol]\n"
+           "\t  [-x proxy_address[:port]] [hostname] [port]\n");
        if (ret)
                exit(1);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to