const char *plist, enum rp_source rp_src_flag)
{
int result = 0;
- char rp[INET_ADDRSTRLEN];
struct rp_info *rp_info;
struct rp_info *rp_all;
struct prefix group_all;
prefix_copy(&rp_info->group, &group);
rp_info->rp_src = rp_src_flag;
- inet_ntop(AF_INET, &rp_info->rp.rpf_addr.u.prefix4, rp, sizeof(rp));
-
if (plist) {
/*
* Return if the prefix-list is already configured for this RP
if (rp_info->rp.rpf_addr.u.prefix4.s_addr
== tmp_rp_info->rp.rpf_addr.u.prefix4.s_addr) {
if (tmp_rp_info->plist)
- pim_rp_del_config(pim, rp, NULL,
+ pim_rp_del_config(pim, rp_addr, NULL,
tmp_rp_info->plist);
else
pim_rp_del_config(
- pim, rp,
+ pim, rp_addr,
prefix2str(&tmp_rp_info->group,
buffer, BUFSIZ),
NULL);
&& rp_info->rp.rpf_addr.u.prefix4.s_addr
== tmp_rp_info->rp.rpf_addr.u.prefix4
.s_addr) {
- pim_rp_del_config(pim, rp, NULL,
+ pim_rp_del_config(pim, rp_addr, NULL,
tmp_rp_info->plist);
}
}
return PIM_SUCCESS;
}
-int pim_rp_del_config(struct pim_instance *pim, const char *rp,
- const char *group_range, const char *plist)
+void pim_rp_del_config(struct pim_instance *pim, pim_addr rp_addr,
+ const char *group_range, const char *plist)
{
struct prefix group;
- struct in_addr rp_addr;
int result;
if (group_range == NULL)
else
result = str2prefix(group_range, &group);
- if (!result)
- return PIM_GROUP_BAD_ADDRESS;
-
- result = inet_pton(AF_INET, rp, &rp_addr);
- if (result <= 0)
- return PIM_RP_BAD_ADDRESS;
+ if (!result) {
+ if (PIM_DEBUG_PIM_TRACE)
+ zlog_debug(
+ "%s: String to prefix failed for %pPAs group",
+ __func__, &rp_addr);
+ return;
+ }
- result = pim_rp_del(pim, rp_addr, group, plist, RP_SRC_STATIC);
- return result;
+ pim_rp_del(pim, rp_addr, group, plist, RP_SRC_STATIC);
}
int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
int pim_rp_new(struct pim_instance *pim, struct in_addr rp_addr,
struct prefix group, const char *plist,
enum rp_source rp_src_flag);
-int pim_rp_del_config(struct pim_instance *pim, const char *rp,
- const char *group, const char *plist);
+void pim_rp_del_config(struct pim_instance *pim, pim_addr rp_addr,
+ const char *group, const char *plist);
int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
struct prefix group, const char *plist,
enum rp_source rp_src_flag);