]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
BSD: Fix krt socket code w.r.t. rte/rta changes
authorOndrej Zajicek <santiago@crfreenet.org>
Tue, 29 Nov 2022 18:43:38 +0000 (19:43 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Wed, 30 Nov 2022 01:43:39 +0000 (02:43 +0100)
sysdep/bsd/krt-sock.c
sysdep/unix/krt.c

index efdb18a3f3f887e25f0a777c2c633e72e54affea..256c4ed089b29e6760f0af76267bd5668a2ae5e0 100644 (file)
@@ -347,7 +347,7 @@ krt_send_route(struct krt_proto *p, int cmd, rte *e)
 }
 
 void
-krt_replace_rte(struct krt_proto *p, net *n, rte *new, rte *old)
+krt_replace_rte(struct krt_proto *p, net *n UNUSED, rte *new, rte *old)
 {
   int err = 0;
 
@@ -519,7 +519,6 @@ krt_read_route(struct ks_msg *msg, struct krt_proto *p, int scan)
   net = net_get(p->p.main_channel->table, &ndst);
 
   rta a = {
-    .src = p->p.main_source,
     .source = RTS_INHERIT,
     .scope = SCOPE_UNIVERSE,
   };
@@ -580,7 +579,7 @@ krt_read_route(struct ks_msg *msg, struct krt_proto *p, int scan)
   }
 
  done:
-  e = rte_get_temp(&a);
+  e = rte_get_temp(&a, p->p.main_source);
   e->net = net;
 
   ea_list *ea = alloca(sizeof(ea_list) + 1 * sizeof(eattr));
@@ -1203,7 +1202,7 @@ kif_update_sysdep_addr(struct iface *i)
     return 0;
 
   ip4_addr old = i->sysdep;
-  i->sysdep = ipa_to_ip4(ipa_from_sa4(&ifr.ifr_addr));
+  i->sysdep = ipa_to_ip4(ipa_from_sa4((sockaddr *) &ifr.ifr_addr));
 
   return !ip4_equal(i->sysdep, old);
 }
index cb0f1d4fc5cf9be77bf9acad0c2e421438bf88d3..9f95247fe5484c57e6d8196c47ba16a39c5d5464 100644 (file)
@@ -937,7 +937,7 @@ krt_rt_notify(struct proto *P, struct channel *ch UNUSED, net *net,
    * kernel, which would remove the new imported route instead.
    */
   rte *best = net->routes;
-  if (!new && best && (best->attrs->src->proto == P))
+  if (!new && best && (best->src->proto == P))
     return;
 #endif