]> git.proxmox.com Git - mirror_frr.git/commitdiff
pim6d: Return type and parameter changes for api pim_rp_del_config
authorMobashshera Rasool <mrasool@vmware.com>
Wed, 2 Feb 2022 15:36:47 +0000 (07:36 -0800)
committerMobashshera Rasool <mrasool@vmware.com>
Tue, 8 Mar 2022 08:57:51 +0000 (00:57 -0800)
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>
pimd/pim_rp.c
pimd/pim_rp.h

index 87e83ededfcfa6bc30fe97dfc7ac1776bad50b95..6752b9fa011c262c2f443c8cd0a926b5e45462c4 100644 (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)
 {
        int result = 0;
-       char rp[INET_ADDRSTRLEN];
        struct rp_info *rp_info;
        struct rp_info *rp_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);
        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
@@ -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
                            == 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);
@@ -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
                                       == 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);
                        }
                }
@@ -657,11 +654,10 @@ int pim_rp_new(struct pim_instance *pim, struct in_addr rp_addr, struct prefix g
        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)
@@ -669,15 +665,15 @@ int pim_rp_del_config(struct pim_instance *pim, const char *rp,
        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,
index c223402ddd6c83a00a889d5bb5c3d335f94c36d0..98a3ae3780639ba3e28eee96de4c5dfaad1b3b5c 100644 (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,
               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);