Commit 47d92d8f authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work) Committed by Maria Matejka
Browse files

Nest: Clean up main channel handling

Remove assumption that main channel is the only channel.
parent 3f19100f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -616,7 +616,7 @@ struct channel {

struct channel_config *proto_cf_find_channel(struct proto_config *p, uint net_type);
static inline struct channel_config *proto_cf_main_channel(struct proto_config *pc)
{ struct channel_config *cc = HEAD(pc->channels); return NODE_VALID(cc) ? cc : NULL; }
{ return proto_cf_find_channel(pc, pc->net_type); }

struct channel *proto_find_channel_by_table(struct proto *p, struct rtable *t);
struct channel *proto_find_channel_by_name(struct proto *p, const char *n);
+2 −3
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ ospf_proto_finish(void)
  struct ospf_iface_patt *ic;

  /* Define default channel */
  if (EMPTY_LIST(this_proto->channels))
  if (! proto_cf_main_channel(this_proto))
  {
    uint net_type = this_proto->net_type = ospf_cfg_is_v2() ? NET_IP4 : NET_IP6;
    channel_config_new(NULL, net_label[net_type], net_type, this_proto);
@@ -248,7 +248,6 @@ ospf_channel_start: net_type ospf_af_mc
  $$ = this_channel = channel_config_get(NULL, net_label[$1], $1, this_proto);

  /* Save the multicast flag */
  if (this_channel == proto_cf_main_channel(this_proto))
  OSPF_CFG->af_mc = $2;
};

+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ proto: radv_proto ;
radv_proto_start: proto_start RADV
{
  this_proto = proto_config_new(&proto_radv, $1);
  this_proto->net_type = NET_IP6;

  init_list(&RADV_CFG->patt_list);
  init_list(&RADV_CFG->pref_list);
+1 −1
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ radv_postconfig(struct proto_config *CF)
  // struct radv_config *cf = (void *) CF;

  /* Define default channel */
  if (EMPTY_LIST(CF->channels))
  if (! proto_cf_main_channel(CF))
    channel_config_new(NULL, net_label[NET_IP6], NET_IP6, CF);
}

+1 −1
Original line number Diff line number Diff line
@@ -1105,7 +1105,7 @@ rip_postconfig(struct proto_config *CF)
  // struct rip_config *cf = (void *) CF;

  /* Define default channel */
  if (EMPTY_LIST(CF->channels))
  if (! proto_cf_main_channel(CF))
    channel_config_new(NULL, net_label[CF->net_type], CF->net_type, CF);
}

Loading