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

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2025-10-13T08:56:50+02:00

core: coreparam - dedicated function to set iuid

---

Modified: src/core/coreparam.c
Modified: src/core/coreparam.h

---

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

---

diff --git a/src/core/coreparam.c b/src/core/coreparam.c
index dbd8ae5bca7..df462e55818 100644
--- a/src/core/coreparam.c
+++ b/src/core/coreparam.c
@@ -29,13 +29,15 @@
 int ksr_coreparam_store_nval(str *pname, ksr_cpval_t *pval, void *eparam);
 int ksr_coreparam_store_sval_pkg(str *pname, ksr_cpval_t *pval, void *eparam);
 
+int ksr_iuid_cp(str *pname, ksr_cpval_t *pval, void *eparam);
+
 long ksr_timer_sanity_check = 0;
 str _ksr_iuid = STR_NULL;
 
 /* clang-format off */
 static ksr_cpexport_t _ksr_cpexports[] = {
        { str_init("iuid"), KSR_CPTYPE_STR,
-               ksr_coreparam_store_sval_pkg, &_ksr_iuid },
+               ksr_iuid_cp, NULL },
        { str_init("random_engine"), KSR_CPTYPE_STR,
                ksr_xrand_cp, NULL },
        { str_init("timer_sanity_check"), KSR_CPTYPE_NUM,
@@ -120,8 +122,46 @@ int ksr_coreparam_store_sval_pkg(str *pname, ksr_cpval_t 
*pval, void *eparam)
        }
        v->len = strlen(pval->v.sval);
        v->s = (char *)pkg_malloc(v->len + 1);
+       if(v->s == NULL) {
+               v->len = 0;
+               PKG_MEM_ERROR;
+               return -1;
+       }
        memcpy(v->s, pval->v.sval, v->len);
        v->s[v->len] = '\0';
 
        return 0;
 }
+
+/**
+ *
+ */
+int ksr_iuid_set(char *viuid, int mode)
+{
+       if(_ksr_iuid.s != NULL && mode == 0) {
+               /* already set - do not overwrite */
+               return 0;
+       }
+       if(_ksr_iuid.s != NULL) {
+               pkg_free(_ksr_iuid.s);
+       }
+       _ksr_iuid.len = strlen(viuid);
+       _ksr_iuid.s = (char *)pkg_malloc(_ksr_iuid.len + 1);
+       if(_ksr_iuid.s == NULL) {
+               _ksr_iuid.len = 0;
+               PKG_MEM_ERROR;
+               return -1;
+       }
+       memcpy(_ksr_iuid.s, viuid, _ksr_iuid.len);
+       _ksr_iuid.s[_ksr_iuid.len] = '\0';
+
+       return 0;
+}
+
+/**
+ *
+ */
+int ksr_iuid_cp(str *pname, ksr_cpval_t *pval, void *eparam)
+{
+       return ksr_iuid_set(pval->v.sval, 0);
+}
diff --git a/src/core/coreparam.h b/src/core/coreparam.h
index e69dbccaaf3..b7a6207b955 100644
--- a/src/core/coreparam.h
+++ b/src/core/coreparam.h
@@ -49,4 +49,6 @@ int ksr_coreparam_set_nval(char *name, long nval);
 int ksr_coreparam_set_sval(char *name, char *sval);
 int ksr_coreparam_set_xval(char *name, ksr_cpval_t *xval);
 
+int ksr_iuid_set(char *viuid, int mode);
+
 #endif

_______________________________________________
Kamailio - Development Mailing List -- [email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!

Reply via email to