]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Netlink: Better handling of an error case
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Wed, 29 Mar 2017 13:55:39 +0000 (15:55 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Wed, 29 Mar 2017 13:55:39 +0000 (15:55 +0200)
sysdep/linux/netlink.c

index 897c3c6c8703e43949386690451218532ff500c6..654dc4d16d9d31b0f96e5ef27fe8c391c7b11e84 100644 (file)
@@ -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: