Module: sip-router
Branch: master
Commit: 96e760147469a385a0b5512f74afcff8f56cafd1
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=96e760147469a385a0b5512f74afcff8f56cafd1

Author: Ovidiu Sas <[email protected]>
Committer: Ovidiu Sas <[email protected]>
Date:   Tue Sep 17 09:24:51 2013 -0400

dispatcher: fix mi/rpc reload command

---

 modules/dispatcher/dispatch.c   |   26 +++++++++++++++++++++++---
 modules/dispatcher/dispatch.h   |    1 +
 modules/dispatcher/dispatcher.c |    4 ++--
 3 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/modules/dispatcher/dispatch.c b/modules/dispatcher/dispatch.c
index 2783675..56d2f06 100644
--- a/modules/dispatcher/dispatch.c
+++ b/modules/dispatcher/dispatch.c
@@ -92,7 +92,7 @@ static ds_ht_t *_dsht_load = NULL;
 extern int ds_force_dst;
 
 static db_func_t ds_dbf;
-static db1_con_t* ds_db_handle=0;
+static db1_con_t* ds_db_handle=NULL;
 
 ds_set_t **ds_lists=NULL;
 
@@ -655,8 +655,8 @@ int init_ds_db(void)
                return -1;
        }
 
-       if(ds_connect_db()!=0){
-
+       if(ds_connect_db()!=0)
+       {
                LM_ERR("unable to connect to the database\n");
                return -1;
        }
@@ -689,6 +689,26 @@ int init_ds_db(void)
        return ret;
 }
 
+/*! \brief reload groups of destinations from DB*/
+int ds_reload_db(void)
+{
+       int ret;
+
+       if(ds_connect_db()!=0)
+       {
+               LM_ERR("unable to connect to the database\n");
+               return -1;
+       }
+       ret = ds_load_db();
+       if (ret == -2)
+       {
+               LM_WARN("failure while loading one or more dispatcher 
entries\n");
+       }
+       ds_disconnect_db();
+
+       return ret;
+}
+
 /*! \brief load groups of destinations from DB*/
 int ds_load_db(void)
 {
diff --git a/modules/dispatcher/dispatch.h b/modules/dispatcher/dispatch.h
index 912a3e0..cfa9ac0 100644
--- a/modules/dispatcher/dispatch.h
+++ b/modules/dispatcher/dispatch.h
@@ -105,6 +105,7 @@ int ds_load_list(char *lfile);
 int ds_connect_db(void);
 void ds_disconnect_db(void);
 int ds_load_db(void);
+int ds_reload_db(void);
 int ds_destroy_list(void);
 int ds_select_dst(struct sip_msg *msg, int set, int alg, int mode);
 int ds_next_dst(struct sip_msg *msg, int mode);
diff --git a/modules/dispatcher/dispatcher.c b/modules/dispatcher/dispatcher.c
index 9cb5ed5..a084ce8 100644
--- a/modules/dispatcher/dispatcher.c
+++ b/modules/dispatcher/dispatcher.c
@@ -792,7 +792,7 @@ static struct mi_root* ds_mi_reload(struct mi_root* 
cmd_tree, void* param)
                if (ds_load_list(dslistfile)!=0)
                        return init_mi_tree(500, MI_ERR_RELOAD, 
MI_ERR_RELOAD_LEN);
        } else {
-               if(ds_load_db()<0)
+               if(ds_reload_db()<0)
                        return init_mi_tree(500, MI_ERR_RELOAD, 
MI_ERR_RELOAD_LEN);
        }
        return init_mi_tree(200, MI_OK_S, MI_OK_LEN);
@@ -956,7 +956,7 @@ static void dispatcher_rpc_reload(rpc_t* rpc, void* ctx)
                        return;
                }
        } else {
-               if(ds_load_db()<0) {
+               if(ds_reload_db()<0) {
                        rpc->fault(ctx, 500, "Reload Failed");
                        return;
                }


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to