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

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date:   Tue Apr 29 22:43:27 2014 +0200

pipelimit: added hash_size parameter

- can be used to set the number of slots for the internal hash table,
  which is computed as 2^hash_size (aka 1<<hash_size)
- default is 6 (2^6 = 64 slots)

---

 modules/pipelimit/pipelimit.c |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/modules/pipelimit/pipelimit.c b/modules/pipelimit/pipelimit.c
index a2a39b5..0fdd06c 100644
--- a/modules/pipelimit/pipelimit.c
+++ b/modules/pipelimit/pipelimit.c
@@ -78,6 +78,7 @@ str_map_t source_names[] = {
 
 static int pl_drop_code = 503;
 static str pl_drop_reason = str_init("Server Unavailable");
+static int pl_hash_size = 6;
 
 typedef struct pl_queue {
        int     *       pipe;
@@ -132,14 +133,15 @@ static cmd_export_t cmds[]={
        {0,0,0,0,0,0}
 };
 static param_export_t params[]={
-       {"timer_interval", INT_PARAM,                &timer_interval},
-       {"reply_code",     INT_PARAM,                &pl_drop_code},
-       {"reply_reason",   STR_PARAM,                &pl_drop_reason.s},
-       {"db_url",            STR_PARAM,             &pl_db_url},
-       {"plp_table_name",    STR_PARAM,             &rlp_table_name},
-       {"plp_pipeid_column",    STR_PARAM,             &rlp_pipeid_col},
-       {"plp_limit_column",     STR_PARAM,             &rlp_limit_col},
-       {"plp_algorithm_column", STR_PARAM,             &rlp_algorithm_col},
+       {"timer_interval",       INT_PARAM,          &timer_interval},
+       {"reply_code",           INT_PARAM,          &pl_drop_code},
+       {"reply_reason",         STR_PARAM,          &pl_drop_reason.s},
+       {"db_url",               STR_PARAM,          &pl_db_url},
+       {"plp_table_name",       STR_PARAM,          &rlp_table_name},
+       {"plp_pipeid_column",    STR_PARAM,          &rlp_pipeid_col},
+       {"plp_limit_column",     STR_PARAM,          &rlp_limit_col},
+       {"plp_algorithm_column", STR_PARAM,          &rlp_algorithm_col},
+       {"hash_size",            INT_PARAM,          &pl_hash_size},
 
        {0,0,0}
 };
@@ -296,7 +298,12 @@ static int mod_init(void)
                LM_ERR("failed to register MI commands\n");
                return -1;
        }
-       if(pl_init_htable(16)<0)
+       if(pl_hash_size<=0)
+       {
+               LM_ERR("invalid hash size parameter: %d\n", pl_hash_size);
+               return -1;
+       }
+       if(pl_init_htable(1<<pl_hash_size)<0)
        {
                LM_ERR("could not allocate pipes htable\n");
                return -1;


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

Reply via email to