Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 2018 19:13:23 +0000 (UTC)
From:      Ryan Stone <rstone@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r329743 - in head: sbin/route sys/net
Message-ID:  <201802211913.w1LJDNGh048117@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rstone
Date: Wed Feb 21 19:13:23 2018
New Revision: 329743
URL: https://svnweb.freebsd.org/changeset/base/329743

Log:
  Allow route change requests to not specify the gateway.
  
  Only require a gateway to be specified on a route add request.  On
  a route change request that does not specify the gateway, the
  gateway will remain the same.  This allows changing other route
  parameters without having to re-specifying the gateway, like in
  "route change 10.0.0.0/8 -mtu 9000".
  
  Update the route(8) manpage to explicitly call out this usage
  as being supported.
  
  MFC after: 2 weeks
  Sponsored by: Dell EMC Isilon
  Reviewed By: eugen (rtsock.c change), rgrimes
  Differential Revision: https://reviews.freebsd.org/D14291

Modified:
  head/sbin/route/route.8
  head/sys/net/rtsock.c

Modified: head/sbin/route/route.8
==============================================================================
--- head/sbin/route/route.8	Wed Feb 21 18:57:00 2018	(r329742)
+++ head/sbin/route/route.8	Wed Feb 21 19:13:23 2018	(r329743)
@@ -28,7 +28,7 @@
 .\"     @(#)route.8	8.3 (Berkeley) 3/19/94
 .\" $FreeBSD$
 .\"
-.Dd November 11, 2014
+.Dd February 16, 2018
 .Dt ROUTE 8
 .Os
 .Sh NAME
@@ -164,15 +164,27 @@ option is specified, the operation will be applied to
 the specified FIB
 .Pq routing table .
 .Pp
-The other commands have the following syntax:
+The add command has the following syntax:
 .Pp
 .Bd -ragged -offset indent -compact
 .Nm
 .Op Fl n
-.Ar command
+.Cm add
 .Op Fl net No \&| Fl host
 .Ar destination gateway
 .Op Ar netmask
+.Op Fl fib Ar number
+.Ed
+.Pp
+and the other commands have the following syntax:
+.Pp
+.Bd -ragged -offset indent -compact
+.Nm
+.Op Fl n
+.Ar command
+.Op Fl net No \&| Fl host
+.Ar destination
+.Op Ar gateway Op Ar netmask
 .Op Fl fib Ar number
 .Ed
 .Pp

Modified: head/sys/net/rtsock.c
==============================================================================
--- head/sys/net/rtsock.c	Wed Feb 21 18:57:00 2018	(r329742)
+++ head/sys/net/rtsock.c	Wed Feb 21 19:13:23 2018	(r329743)
@@ -674,12 +674,15 @@ route_output(struct mbuf *m, struct socket *so, ...)
 
 	case RTM_ADD:
 	case RTM_CHANGE:
-		if (info.rti_info[RTAX_GATEWAY] == NULL)
-			senderr(EINVAL);
+		if (rtm->rtm_type == RTM_ADD) {
+			if (info.rti_info[RTAX_GATEWAY] == NULL)
+				senderr(EINVAL);
+		}
 		saved_nrt = NULL;
 
 		/* support for new ARP code */
-		if (info.rti_info[RTAX_GATEWAY]->sa_family == AF_LINK &&
+		if (info.rti_info[RTAX_GATEWAY] != NULL &&
+		    info.rti_info[RTAX_GATEWAY]->sa_family == AF_LINK &&
 		    (rtm->rtm_flags & RTF_LLDATA) != 0) {
 			error = lla_rt_output(rtm, &info);
 #ifdef INET6



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802211913.w1LJDNGh048117>