diff options
| author | Renato Westphal <renato@openbsd.org> | 2017-12-04 18:25:16 -0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-12-04 18:25:16 -0200 |
| commit | 50a0033c24ec12e2e327d01863f7956672236b0c (patch) | |
| tree | c75902fd9f8b0d88270ba2a1afb3f75e4aba1331 /zebra/rt_socket.c | |
| parent | ded104de0c706a0f9207388fb228d6787dd0cb8f (diff) | |
| parent | 9fa38ec6bbd6d0755c4b0e5ca718ded97d8e2f79 (diff) | |
Merge pull request #1496 from donaldsharp/install_failure
Additional Southbound API changes
Diffstat (limited to 'zebra/rt_socket.c')
| -rw-r--r-- | zebra/rt_socket.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/zebra/rt_socket.c b/zebra/rt_socket.c index e588794947..0d1a80e737 100644 --- a/zebra/rt_socket.c +++ b/zebra/rt_socket.c @@ -387,14 +387,14 @@ static int kernel_rtm(int cmd, struct prefix *p, struct route_entry *re) return 0; } -int kernel_route_rib(struct prefix *p, struct prefix *src_p, - struct route_entry *old, struct route_entry *new) +void kernel_route_rib(struct prefix *p, struct prefix *src_p, + struct route_entry *old, struct route_entry *new) { int route = 0; if (src_p && src_p->prefixlen) { zlog_err("route add: IPv6 sourcedest routes unsupported!"); - return 1; + return; } if (zserv_privs.change(ZPRIVS_RAISE)) @@ -409,7 +409,17 @@ int kernel_route_rib(struct prefix *p, struct prefix *src_p, if (zserv_privs.change(ZPRIVS_LOWER)) zlog_err("Can't lower privileges"); - return route; + if (new) { + kernel_route_rib_pass_fail(p, new, + (!route) ? + SOUTHBOUND_INSTALL_SUCCESS : + SOUTHBOUND_INSTALL_FAILURE); + } else { + kernel_route_rib_pass_fail(p, old, + (!route) ? + SOUTHBOUND_DELETE_SUCCESS : + SOUTHBOUND_DELETE_FAILURE); + } } int kernel_neigh_update(int add, int ifindex, uint32_t addr, char *lla, |
