Module: kamailio
Branch: master
Commit: 0d688a69e27b1ea49bf8c06469e1ce2e11006d95
URL: 
https://github.com/kamailio/kamailio/commit/0d688a69e27b1ea49bf8c06469e1ce2e11006d95

Author: Daniel-Constantin Mierla <mico...@gmail.com>
Committer: Daniel-Constantin Mierla <mico...@gmail.com>
Date: 2022-02-16T12:05:40+01:00

async: exported functions to kemi to get async group name and data

---

Modified: src/modules/async/async_mod.c
Modified: src/modules/async/async_sleep.c
Modified: src/modules/async/async_sleep.h

---

Diff:  
https://github.com/kamailio/kamailio/commit/0d688a69e27b1ea49bf8c06469e1ce2e11006d95.diff
Patch: 
https://github.com/kamailio/kamailio/commit/0d688a69e27b1ea49bf8c06469e1ce2e11006d95.patch

---

diff --git a/src/modules/async/async_mod.c b/src/modules/async/async_mod.c
index 60cd10e677..ee69e96e14 100644
--- a/src/modules/async/async_mod.c
+++ b/src/modules/async/async_mod.c
@@ -674,6 +674,16 @@ static sr_kemi_t sr_kemi_async_exports[] = {
                { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_STR,
                        SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
        },
+       { str_init("async"), str_init("get_gname"),
+               SR_KEMIP_XVAL, ki_async_get_gname,
+               { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE,
+                       SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+       },
+       { str_init("async"), str_init("get_data"),
+               SR_KEMIP_XVAL, ki_async_get_data,
+               { SR_KEMIP_NONE, 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 } }
 };
diff --git a/src/modules/async/async_sleep.c b/src/modules/async/async_sleep.c
index cfbfe98cef..b51887e351 100644
--- a/src/modules/async/async_sleep.c
+++ b/src/modules/async/async_sleep.c
@@ -675,3 +675,44 @@ int pv_parse_geoip_name(pv_spec_t *sp, str *in)
        LM_ERR("unknown PV time name %.*s\n", in->len, in->s);
        return -1;
 }
+
+/**
+ *
+ */
+static sr_kemi_xval_t _ksr_kemi_async_xval = {0};
+
+/**
+ *
+ */
+sr_kemi_xval_t* ki_async_get_gname(sip_msg_t *msg)
+{
+       async_wgroup_t *awg = NULL;
+
+       memset(&_ksr_kemi_async_xval, 0, sizeof(sr_kemi_xval_t));
+
+       awg = async_task_workers_get_crt();
+       if(awg==NULL || awg->name.s==NULL || awg->name.len<0) {
+               sr_kemi_xval_null(&_ksr_kemi_async_xval, 
SR_KEMI_XVAL_NULL_EMPTY);
+               return &_ksr_kemi_async_xval;
+       }
+       _ksr_kemi_async_xval.vtype = SR_KEMIP_STR;
+       _ksr_kemi_async_xval.v.s = awg->name;
+       return &_ksr_kemi_async_xval;
+}
+
+/**
+ *
+ */
+sr_kemi_xval_t* ki_async_get_data(sip_msg_t *msg)
+{
+       memset(&_ksr_kemi_async_xval, 0, sizeof(sr_kemi_xval_t));
+
+       if(_ksr_async_data_param==NULL || _ksr_async_data_param->sval.s==NULL
+                       || _ksr_async_data_param->sval.len<0) {
+               sr_kemi_xval_null(&_ksr_kemi_async_xval, 
SR_KEMI_XVAL_NULL_EMPTY);
+               return &_ksr_kemi_async_xval;
+       }
+       _ksr_kemi_async_xval.vtype = SR_KEMIP_STR;
+       _ksr_kemi_async_xval.v.s = _ksr_async_data_param->sval;
+       return &_ksr_kemi_async_xval;
+}
diff --git a/src/modules/async/async_sleep.h b/src/modules/async/async_sleep.h
index bb7dd042ce..254962bd70 100644
--- a/src/modules/async/async_sleep.h
+++ b/src/modules/async/async_sleep.h
@@ -56,4 +56,7 @@ int async_send_data(sip_msg_t *msg, cfg_action_t *act, str 
*cbname, str *gname,
 int pv_get_async(sip_msg_t *msg, pv_param_t *param, pv_value_t *res);
 int pv_parse_async_name(pv_spec_t *sp, str *in);
 
+sr_kemi_xval_t* ki_async_get_gname(sip_msg_t *msg);
+sr_kemi_xval_t* ki_async_get_data(sip_msg_t *msg);
+
 #endif


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

Reply via email to