]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Minor fixes
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Fri, 28 Apr 2017 22:36:35 +0000 (00:36 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Fri, 28 Apr 2017 23:24:30 +0000 (01:24 +0200)
nest/config.Y
proto/ospf/config.Y
sysdep/bsd/krt-sock.c
sysdep/unix/krt.c

index b0f9642f4152653623022bca6e6db4379fc2ff1a..e672d730b109025f1f2f8a74f0f1cbe247acfcca 100644 (file)
@@ -629,7 +629,7 @@ r_args_for:
        net_fill_ip_host($$, SYM_VAL($1).ip);
      }
      else if (($1->class == (SYM_CONSTANT | T_NET)) && net_type_match(SYM_VAL($1).net, NB_IP | NB_VPN))
-       $$ = SYM_VAL($1).net;
+       $$ = (net_addr *) SYM_VAL($1).net; /* Avoid const warning */
      else
        cf_error("IP address or network expected");
    }
index 8a1e00520a9eb9284823d8bed2e7443ddef88326..9cfc70a9c18c498094ed25925fe8bbeeb6854378 100644 (file)
@@ -148,7 +148,7 @@ CF_KEYWORDS(ELIGIBLE, POLL, NETWORKS, HIDDEN, VIRTUAL, CHECK, LINK, ONLY, BFD)
 CF_KEYWORDS(RX, BUFFER, LARGE, NORMAL, STUBNET, HIDDEN, SUMMARY, TAG, EXTERNAL)
 CF_KEYWORDS(WAIT, DELAY, LSADB, ECMP, LIMIT, WEIGHT, NSSA, TRANSLATOR, STABILITY)
 CF_KEYWORDS(GLOBAL, LSID, ROUTER, SELF, INSTANCE, REAL, NETMASK, TX, PRIORITY, LENGTH)
-CF_KEYWORDS(SECONDARY, MERGE, LSA, SUPPRESSION, OSPF2, OSPF3)
+CF_KEYWORDS(SECONDARY, MERGE, LSA, SUPPRESSION)
 
 %type <ld> lsadb_args
 %type <i> ospf_variant nbma_eligible
index c65cba654c784536057a045c5e512ee57de14b82..d353d6293faba530481e2c1ef0645ffbb950a003 100644 (file)
@@ -146,8 +146,9 @@ krt_capable(rte *e)
 {
   rta *a = e->attrs;
 
+  /* XXXX device routes are broken */
   return
-    ((a->dest == RTD_UNICAST && !a->nh.next) /* No multipath support */
+    ((a->dest == RTD_UNICAST && ipa_nonzero(a->nh.gw) && !a->nh.next) /* No multipath support */
 #ifdef RTF_REJECT
      || a->dest == RTD_UNREACHABLE
 #endif
@@ -254,7 +255,7 @@ krt_send_route(struct krt_proto *p, int cmd, rte *e)
       af = AF_INET6;
       break;
     default:
-      log(L_ERR "KRT: Not sending VPN route %N to kernel", net->n.addr);
+      log(L_ERR "KRT: Not sending route %N to kernel", net->n.addr);
       return -1;
   }
 
@@ -299,6 +300,7 @@ krt_send_route(struct krt_proto *p, int cmd, rte *e)
 
     sockaddr_fill(&gate, ipa_is_ip4(i->addr->ip) ? AF_INET : AF_INET6, i->addr->ip, NULL, 0);
     msg.rtm.rtm_addrs |= RTA_GATEWAY;
+    break;
   }
 
   default:
index c6ff6275e75d3ca6ddfbb5c3a23267748d91e8d3..a1b10cea81a9e40c33197370fb00378684fc02b1 100644 (file)
@@ -1142,7 +1142,9 @@ krt_start(struct proto *P)
   {
   case NET_IP4:        p->af = AF_INET; break;
   case NET_IP6:        p->af = AF_INET6; break;
+#ifdef AF_MPLS
   case NET_MPLS: p->af = AF_MPLS; break;
+#endif
   default: log(L_ERR "KRT: Tried to start with strange net type: %d", p->p.net_type); return PS_START; break;
   }