Author: melifaro
Date: Tue Mar  3 15:33:43 2020
New Revision: 358585
URL: https://svnweb.freebsd.org/changeset/base/358585

Log:
  Fix dynamic redrects by adding forgotten RTF_HOST flag.
  Improve tests to verify the generated route flags.
  
  Reported by:  jtl
  MFC after:    2 weeks

Modified:
  head/sys/net/route.c
  head/tests/sys/netinet/redirect.sh
  head/tests/sys/netinet6/redirect.sh

Modified: head/sys/net/route.c
==============================================================================
--- head/sys/net/route.c        Tue Mar  3 15:31:40 2020        (r358584)
+++ head/sys/net/route.c        Tue Mar  3 15:33:43 2020        (r358585)
@@ -632,7 +632,7 @@ rib_add_redirect(u_int fibnum, struct sockaddr *dst, s
        info.rti_info[RTAX_GATEWAY] = gateway;
        info.rti_ifa = ifa;
        info.rti_ifp = ifp;
-       info.rti_flags = flags | RTF_DYNAMIC;
+       info.rti_flags = flags | RTF_HOST | RTF_DYNAMIC;
 
        /* Setup route metrics to define expire time. */
        bzero(&rti_rmx, sizeof(rti_rmx));

Modified: head/tests/sys/netinet/redirect.sh
==============================================================================
--- head/tests/sys/netinet/redirect.sh  Tue Mar  3 15:31:40 2020        
(r358584)
+++ head/tests/sys/netinet/redirect.sh  Tue Mar  3 15:33:43 2020        
(r358585)
@@ -92,9 +92,8 @@ valid_redirect_body() {
                --route ${dst_addr4} --gw ${new_rtr_ip}  \
                --iface ${epair}a 
        
-       count=`jexec ${jname} route -n get -4 ${dst_addr4} | grep destination | 
grep -c ${dst_addr4}`
-       # Verify redirect got installed
-       atf_check_equal "1" "${count}"
+       atf_check -o match:"destination: ${dst_addr4}\$" jexec ${jname} route 
-n get -4 ${dst_addr4}
+       atf_check -o match:'flags: <UP,GATEWAY,HOST,DYNAMIC,DONE>' jexec 
${jname} route -n get -4 ${dst_addr4}
 }
 
 valid_redirect_cleanup() {

Modified: head/tests/sys/netinet6/redirect.sh
==============================================================================
--- head/tests/sys/netinet6/redirect.sh Tue Mar  3 15:31:40 2020        
(r358584)
+++ head/tests/sys/netinet6/redirect.sh Tue Mar  3 15:33:43 2020        
(r358585)
@@ -94,9 +94,9 @@ valid_redirect_body() {
                --route ${dst_addr6} --gw ${new_rtr_ll_ip}  \
                --iface ${epair}a 
        
-       count=`jexec ${jname} route -n get -6 ${dst_addr6} | grep destination | 
grep -c ${dst_addr6}`
        # Verify redirect got installed
-       atf_check_equal "1" "${count}"
+       atf_check -o match:"destination: ${dst_addr6}\$" jexec ${jname} route 
-n get -6 ${dst_addr6}
+       atf_check -o match:'flags: <UP,GATEWAY,HOST,DYNAMIC,DONE>' jexec 
${jname} route -n get -6 ${dst_addr6}
 }
 
 valid_redirect_cleanup() {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to