diff options
| -rw-r--r-- | bgpd/bgp_packet.c | 18 | ||||
| -rw-r--r-- | bgpd/bgp_vty.c | 10 | ||||
| -rw-r--r-- | ospf6d/ospf6_top.c | 2 | ||||
| -rw-r--r-- | pimd/pim_cmd.c | 11 | ||||
| -rw-r--r-- | pimd/pim_nb_config.c | 7 | ||||
| -rw-r--r-- | tools/coccinelle/zlog_no_newline.cocci | 20 |
6 files changed, 53 insertions, 15 deletions
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 4fdb92ce7e..bb2dbc9427 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -337,11 +337,13 @@ static void bgp_write_proceed_actions(struct peer *peer) struct peer_af *paf; struct bpacket *next_pkt; struct update_subgroup *subgrp; + enum bgp_af_index index; - FOREACH_AFI_SAFI (afi, safi) { - paf = peer_af_find(peer, afi, safi); + for (index = BGP_AF_START; index < BGP_AF_MAX; index++) { + paf = peer->peer_af_array[index]; if (!paf) continue; + subgrp = paf->subgroup; if (!subgrp) continue; @@ -364,6 +366,9 @@ static void bgp_write_proceed_actions(struct peer *peer) return; } + afi = paf->afi; + safi = paf->safi; + /* No packets to send, see if EOR is pending */ if (CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) { if (!subgrp->t_coalesce && peer->afc_nego[afi][safi] @@ -415,11 +420,16 @@ int bgp_generate_updgrp_packets(struct thread *thread) return 0; do { + enum bgp_af_index index; + s = NULL; - FOREACH_AFI_SAFI (afi, safi) { - paf = peer_af_find(peer, afi, safi); + for (index = BGP_AF_START; index < BGP_AF_MAX; index++) { + paf = peer->peer_af_array[index]; if (!paf || !PAF_SUBGRP(paf)) continue; + + afi = paf->afi; + safi = paf->safi; next_pkt = paf->next_pkt_to_send; /* diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 8a3e74e8a4..14f4fb7310 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -912,13 +912,19 @@ static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi, if ((afi == AFI_UNSPEC) && (safi == SAFI_UNSPEC)) { afi_t tmp_afi; safi_t tmp_safi; + enum bgp_af_index index; + + for (index = BGP_AF_START; index < BGP_AF_MAX; index++) { + paf = peer->peer_af_array[index]; + if (!paf) + continue; - FOREACH_AFI_SAFI (tmp_afi, tmp_safi) { - paf = peer_af_find(peer, tmp_afi, tmp_safi); if (paf && paf->subgroup) SET_FLAG(paf->subgroup->sflags, SUBGRP_STATUS_FORCE_UPDATES); + tmp_afi = paf->afi; + tmp_safi = paf->safi; if (!peer->afc[tmp_afi][tmp_safi]) continue; diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c index 894ebc7681..6fe7055202 100644 --- a/ospf6d/ospf6_top.c +++ b/ospf6d/ospf6_top.c @@ -651,7 +651,7 @@ bool ospf6_router_id_update(struct ospf6 *ospf6, bool init) for (ALL_LIST_ELEMENTS_RO(ospf6->area_list, node, oa)) { if (oa->full_nbrs) { zlog_err( - "%s: cannot update router-id. Run the \"clear ipv6 ospf6 process\" command\n", + "%s: cannot update router-id. Run the \"clear ipv6 ospf6 process\" command", __func__); return false; } diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 14aa710524..4cd94e0df9 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -3842,7 +3842,7 @@ static void pim_cli_legacy_mesh_group_behavior(struct vty *vty, xpath_member_value)) { member_dnode = yang_dnode_get(vty->candidate_config->dnode, xpath_member_value); - if (!yang_is_last_list_dnode(member_dnode)) + if (!member_dnode || !yang_is_last_list_dnode(member_dnode)) return; } @@ -4140,10 +4140,9 @@ static void clear_pim_bsr_db(struct pim_instance *pim) rpnode->info = NULL; route_unlock_node(rpnode); route_unlock_node(rpnode); + XFREE(MTYPE_PIM_RP, rp_info); } - XFREE(MTYPE_PIM_RP, rp_info); - pim_free_bsgrp_node(bsgrp->scope->bsrp_table, &bsgrp->group); pim_free_bsgrp_data(bsgrp); } @@ -9762,7 +9761,7 @@ DEFPY(no_ip_msdp_mesh_group_member, return CMD_WARNING_CONFIG_FAILED; } - nb_cli_enqueue_change(vty, xpath_value, NB_OP_DESTROY, NULL); + nb_cli_enqueue_change(vty, xpath_member_value, NB_OP_DESTROY, NULL); /* * If this is the last member, then we must remove the group altogether @@ -9796,7 +9795,7 @@ DEFPY(ip_msdp_mesh_group_source, "frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname); nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL); - /* Create mesh group member. */ + /* Create mesh group source. */ strlcat(xpath_value, "/source", sizeof(xpath_value)); nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, saddr_str); @@ -9827,7 +9826,7 @@ DEFPY(no_ip_msdp_mesh_group_source, "frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname); nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL); - /* Create mesh group member. */ + /* Create mesh group source. */ strlcat(xpath_value, "/source", sizeof(xpath_value)); nb_cli_enqueue_change(vty, xpath_value, NB_OP_DESTROY, NULL); diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c index f4627cbcc2..b9da8ec068 100644 --- a/pimd/pim_nb_config.c +++ b/pimd/pim_nb_config.c @@ -1168,6 +1168,7 @@ int pim_msdp_mesh_group_members_destroy(struct nb_cb_destroy_args *args) { struct pim_msdp_mg_mbr *mbr; struct pim_msdp_mg *mg; + const struct lyd_node *mg_dnode; switch (args->event) { case NB_EV_VALIDATE: @@ -1176,9 +1177,11 @@ int pim_msdp_mesh_group_members_destroy(struct nb_cb_destroy_args *args) break; case NB_EV_APPLY: mbr = nb_running_get_entry(args->dnode, NULL, true); - mg = nb_running_get_entry(args->dnode, "../", true); - + mg_dnode = + yang_dnode_get_parent(args->dnode, "msdp-mesh-groups"); + mg = nb_running_get_entry(mg_dnode, NULL, true); pim_msdp_mg_mbr_del(mg, mbr); + nb_running_unset_entry(args->dnode); break; } diff --git a/tools/coccinelle/zlog_no_newline.cocci b/tools/coccinelle/zlog_no_newline.cocci new file mode 100644 index 0000000000..20cf9d2c78 --- /dev/null +++ b/tools/coccinelle/zlog_no_newline.cocci @@ -0,0 +1,20 @@ +// zlog_* should not have \n or \r at the end usually. +// spatch --sp-file tools/coccinelle/zlog_no_newline.cocci --macro-file tools/cocci.h ./ 2>/dev/null + +@r@ +expression fmt; +identifier func =~ "zlog_"; +position p; +@@ +( + func(fmt)@p +| + func(fmt, ...)@p +) + +@script:python@ +fmt << r.fmt; +p << r.p; +@@ +if "\\n" in str(fmt) or "\\r" in str(fmt): + print("Newline in logging function detected %s:%s:%s:%s" % (p[0].file, p[0].line, p[0].column, fmt)) |
