pim6d: Return type and parameter changes for api pim_rp_del_config

1. Return value of this function pim_rp_del_config is nowhere used.
So made it as a void function.
2. Paramater const char *rp is first converted to string from prefix
in the caller and then back to prefix in this api pim_rp_del_config.
Fixed it by directly passing the address instead of string.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
This commit is contained in:
Mobashshera Rasool 2022-02-02 07:36:47 -08:00
parent 4fc1f59ea7
commit 99384c6e4d
2 changed files with 15 additions and 19 deletions

View File

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

View File

@ -50,8 +50,8 @@ void pim_rp_list_hash_clean(void *data);
int pim_rp_new(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, struct prefix group, const char *plist,
enum rp_source rp_src_flag); enum rp_source rp_src_flag);
int pim_rp_del_config(struct pim_instance *pim, const char *rp, void pim_rp_del_config(struct pim_instance *pim, pim_addr rp_addr,
const char *group, const char *plist); const char *group, const char *plist);
int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr, int pim_rp_del(struct pim_instance *pim, struct in_addr rp_addr,
struct prefix group, const char *plist, struct prefix group, const char *plist,
enum rp_source rp_src_flag); enum rp_source rp_src_flag);