diff options
author | Ben Jencks <ben@bjencks.net> | 2012-08-30 13:55:36 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2012-08-30 16:04:13 -0500 |
commit | 3ca3120e4a01ea4a86fd052311c977e7ec136365 (patch) | |
tree | 8605a2a348bbe297259143e4ad12d28a1e01b407 | |
parent | c4bb7f26a803f77a6b77c9e49851c0a8f1eddf7c (diff) |
ip6: ignore cached/cloned route notifications from the kernel (lp:1038541) (bgo #671767)
The kernel periodically adds routes for specific operations, including
when pinging any host. These are temporary routes and aren't part of
the interface's permanent routing configuration, so we should ignore
them.
-rw-r--r-- | src/ip6-manager/nm-ip6-manager.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ip6-manager/nm-ip6-manager.c b/src/ip6-manager/nm-ip6-manager.c index e452c18e..3dc8616c 100644 --- a/src/ip6-manager/nm-ip6-manager.c +++ b/src/ip6-manager/nm-ip6-manager.c @@ -921,6 +921,14 @@ process_route_change (NMIP6Manager *manager, struct nl_msg *msg) return NULL; } + /* Cached/cloned routes are created by the kernel for specific operations + * and aren't part of the interface's permanent routing configuration. + */ + if (rtnl_route_get_flags (rtnlroute) & RTM_F_CLONED) { + rtnl_route_put (rtnlroute); + return NULL; + } + device = nm_ip6_manager_get_device (manager, rtnl_route_get_oif (rtnlroute)); old_size = nl_cache_nitems (priv->route_cache); |