Module: kamailio
Branch: master
Commit: 8960972b2ad5d460ed494b24a3bba1cb118e8b1f
URL: 
https://github.com/kamailio/kamailio/commit/8960972b2ad5d460ed494b24a3bba1cb118e8b1f

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2017-04-17T20:27:01+02:00

htable: exported iterator functions to kemi framework

---

Modified: src/modules/htable/htable.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/8960972b2ad5d460ed494b24a3bba1cb118e8b1f.diff
Patch: 
https://github.com/kamailio/kamailio/commit/8960972b2ad5d460ed494b24a3bba1cb118e8b1f.patch

---

diff --git a/src/modules/htable/htable.c b/src/modules/htable/htable.c
index 1876b28..18a3ab8 100644
--- a/src/modules/htable/htable.c
+++ b/src/modules/htable/htable.c
@@ -458,6 +458,18 @@ static int w_ht_iterator_start(struct sip_msg* msg, char* 
iname, char* hname)
        return 1;
 }
 
+static int ki_ht_iterator_start(sip_msg_t *msg, str *iname, str *hname)
+{
+       if(iname==NULL || iname->s==NULL || iname->len<=0
+                       || hname==NULL || hname->s==NULL || hname->len<=0) {
+               LM_ERR("invalid parameters\n");
+               return -1;
+       }
+       if(ht_iterator_start(iname, hname)<0)
+               return -1;
+       return 1;
+}
+
 static int w_ht_iterator_next(struct sip_msg* msg, char* iname, char* foo)
 {
        str siname;
@@ -472,6 +484,17 @@ static int w_ht_iterator_next(struct sip_msg* msg, char* 
iname, char* foo)
        return 1;
 }
 
+static int ki_ht_iterator_next(sip_msg_t *msg, str *iname)
+{
+       if(iname==NULL || iname->s==NULL || iname->len<=0) {
+               LM_ERR("invalid parameters\n");
+               return -1;
+       }
+       if(ht_iterator_next(iname)<0)
+               return -1;
+       return 1;
+}
+
 static int w_ht_iterator_end(struct sip_msg* msg, char* iname, char* foo)
 {
        str siname;
@@ -486,6 +509,17 @@ static int w_ht_iterator_end(struct sip_msg* msg, char* 
iname, char* foo)
        return 1;
 }
 
+static int ki_ht_iterator_end(sip_msg_t *msg, str *iname)
+{
+       if(iname==NULL || iname->s==NULL || iname->len<=0) {
+               LM_ERR("invalid parameters\n");
+               return -1;
+       }
+       if(ht_iterator_end(iname)<0)
+               return -1;
+       return 1;
+}
+
 static int ki_ht_slot_xlock(sip_msg_t *msg, str *htname, str *skey, int lmode)
 {
        ht_t *ht;
@@ -1138,6 +1172,21 @@ static sr_kemi_t sr_kemi_htable_exports[] = {
                { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
                        SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
        },
+       { str_init("htable"), str_init("sht_iterator_start"),
+               SR_KEMIP_INT, ki_ht_iterator_start,
+               { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("htable"), str_init("sht_iterator_next"),
+               SR_KEMIP_INT, ki_ht_iterator_next,
+               { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("htable"), str_init("sht_iterator_end"),
+               SR_KEMIP_INT, ki_ht_iterator_end,
+               { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
 
        { {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } }
 };


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to