summaryrefslogtreecommitdiff
path: root/sysdep/linux/netlink.c
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2017-03-29 15:55:39 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2017-03-29 15:55:39 +0200
commited6100441ec6e95797d3692925b85c627a4e8df1 (patch)
tree305a90c23b4433a9b8f817080ab169168c7b6217 /sysdep/linux/netlink.c
parent6fe11c994151344c38d1b080c3f2e1280b4b2448 (diff)
Netlink: Better handling of an error case
Diffstat (limited to 'sysdep/linux/netlink.c')
-rw-r--r--sysdep/linux/netlink.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c
index 897c3c6c..654dc4d1 100644
--- a/sysdep/linux/netlink.c
+++ b/sysdep/linux/netlink.c
@@ -1419,13 +1419,13 @@ nl_parse_route(struct nl_parse_state *s, struct nlmsghdr *h)
if (!nl_parse_attrs(RTM_RTA(i), rtm_attr_want_mpls, a, sizeof(a)))
return;
- if (a[RTA_DST])
- if (rta_get_mpls(a[RTA_DST], rta_mpls_stack) == 1)
- net_fill_mpls(&dst, rta_mpls_stack[0]);
- else
- log(L_WARN "KRT: Got multi-label MPLS RTA_DST");
- else
- return; /* No support for MPLS routes without RTA_DST */
+ if (!a[RTA_DST])
+ SKIP("MPLS route without RTA_DST");
+
+ if (rta_get_mpls(a[RTA_DST], rta_mpls_stack) != 1)
+ SKIP("MPLS route with multi-label RTA_DST");
+
+ net_fill_mpls(&dst, rta_mpls_stack[0]);
break;
default: