static void *route_set_lcommunity_delete_compile(const char *arg)
{
struct rmap_community *rcom;
+ char **splits;
+ int num;
- rcom = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(struct rmap_community));
+ frrstr_split(arg, " ", &splits, &num);
- rcom->name = XSTRDUP(MTYPE_ROUTE_MAP_COMPILED, arg);
+ rcom = XCALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(struct rmap_community));
+ rcom->name = XSTRDUP(MTYPE_ROUTE_MAP_COMPILED, splits[0]);
rcom->name_hash = bgp_clist_hash_key(rcom->name);
+ for (int i = 0; i < num; i++)
+ XFREE(MTYPE_TMP, splits[i]);
+ XFREE(MTYPE_TMP, splits);
+
return rcom;
}
&& peer->su_remote
&& sockunion_family(peer->su_remote) == AF_INET6) {
/* Set next hop preference to global */
- path->attr->mp_nexthop_prefer_global = TRUE;
+ path->attr->mp_nexthop_prefer_global = true;
SET_FLAG(path->attr->rmap_change_flags,
BATTR_RMAP_IPV6_PREFER_GLOBAL_CHANGED);
} else {
- path->attr->mp_nexthop_prefer_global = FALSE;
+ path->attr->mp_nexthop_prefer_global = false;
SET_FLAG(path->attr->rmap_change_flags,
BATTR_RMAP_IPV6_PREFER_GLOBAL_CHANGED);
}
"Delete matching communities\n")
{
int idx_comm_list = 2;
+ char *args;
+ args = argv_concat(argv, argc, idx_comm_list);
generic_set_add(vty, VTY_GET_CONTEXT(route_map_index), "comm-list",
- argv[idx_comm_list]->arg);
+ args);
+ XFREE(MTYPE_TMP, args);
return CMD_SUCCESS;
}
"Large Community-list name\n"
"Delete matching large communities\n")
{
+ int idx_lcomm_list = 2;
+ char *args;
+
+ args = argv_concat(argv, argc, idx_lcomm_list);
generic_set_add(vty, VTY_GET_CONTEXT(route_map_index),
- "large-comm-list", argv[2]->arg);
+ "large-comm-list", args);
+ XFREE(MTYPE_TMP, args);
return CMD_SUCCESS;
}