Browse Source

* rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use sender
address as nexthop in routemap.

Fixes bugzilla #186. [backport candidate]

hasso 14 years ago
parent
commit
dc625e8606
2 changed files with 7 additions and 2 deletions
  1. 5 0
      ripd/ChangeLog
  2. 2 2
      ripd/rip_routemap.c

+ 5 - 0
ripd/ChangeLog

@@ -1,5 +1,10 @@
 2005-05-26 Hasso Tepper <hasso at quagga.net>
 
+	* rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use sender
+	  address as nexthop in routemap.
+
+2005-05-26 Hasso Tepper <hasso at quagga.net>
+
 	* rip_routemap.c: Make "match interface" routemap command match both -
 	  in and out interfaces.
 

+ 2 - 2
ripd/rip_routemap.c

@@ -275,7 +275,7 @@ route_match_ip_next_hop (void *rule, struct prefix *prefix,
     {
       rinfo = object;
       p.family = AF_INET;
-      p.prefix = rinfo->nexthop;
+      p.prefix = (rinfo->nexthop.s_addr) ? rinfo->nexthop : rinfo->from;
       p.prefixlen = IPV4_MAX_BITLEN;
 
       alist = access_list_lookup (AFI_IP, (char *) rule);
@@ -326,7 +326,7 @@ route_match_ip_next_hop_prefix_list (void *rule, struct prefix *prefix,
     {
       rinfo = object;
       p.family = AF_INET;
-      p.prefix = rinfo->nexthop;
+      p.prefix = (rinfo->nexthop.s_addr) ? rinfo->nexthop : rinfo->from;
       p.prefixlen = IPV4_MAX_BITLEN;
 
       plist = prefix_list_lookup (AFI_IP, (char *) rule);