]> git.proxmox.com Git - mirror_frr.git/commitdiff
nhrp: Make sure `no ip nhrp map <something>` works as expected
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Fri, 25 Oct 2019 10:01:02 +0000 (13:01 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Fri, 25 Oct 2019 18:52:13 +0000 (21:52 +0300)
We passed peer as NULL and nothing happened.

exit2-debian-9# conf
exit2-debian-9(config)# int gre1
exit2-debian-9(config-if)# ip nhrp map 1.1.1.1 local
exit2-debian-9(config-if)# ip nhrp map 2.2.2.2 3.3.3.3
exit2-debian-9(config-if)# do sh run
...
!
interface gre1
 ip nhrp map 1.1.1.1 local
 ip nhrp map 2.2.2.2 3.3.3.3
!
...
exit2-debian-9(config-if)# no ip nhrp map 1.1.1.1
exit2-debian-9(config-if)# do sh run
...
!
interface gre1
 ip nhrp map 2.2.2.2 3.3.3.3
!

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
nhrpd/nhrp_vty.c

index cfedc1c6b927993f877cbbec1aa196f27d53686d..ba8c5d4953c726528fd560d4997b5d8eede19bf0 100644 (file)
@@ -523,7 +523,7 @@ DEFUN(if_no_nhrp_map, if_no_nhrp_map_cmd,
 {
        VTY_DECLVAR_CONTEXT(interface, ifp);
        afi_t afi = cmd_to_afi(argv[1]);
-       union sockunion proto_addr;
+       union sockunion proto_addr, nbma_addr;
        struct nhrp_cache *c;
 
        if (str2sockunion(argv[4]->arg, &proto_addr) < 0
@@ -534,7 +534,8 @@ DEFUN(if_no_nhrp_map, if_no_nhrp_map_cmd,
        if (!c || !c->map)
                return nhrp_vty_return(vty, NHRP_ERR_ENTRY_NOT_FOUND);
 
-       nhrp_cache_update_binding(c, c->cur.type, -1, NULL, 0, NULL);
+       nhrp_cache_update_binding(c, c->cur.type, -1,
+                                 nhrp_peer_get(ifp, &nbma_addr), 0, NULL);
        return CMD_SUCCESS;
 }