Module: kamailio Branch: master Commit: 00b52cd4efe1417f3171f39d266a3bc5cb15f6ba URL: https://github.com/kamailio/kamailio/commit/00b52cd4efe1417f3171f39d266a3bc5...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2025-08-02T12:31:59+02:00
core: sruid - functions to get unique id with a number suffix
---
Modified: src/core/utils/sruid.c Modified: src/core/utils/sruid.h
---
Diff: https://github.com/kamailio/kamailio/commit/00b52cd4efe1417f3171f39d266a3bc5... Patch: https://github.com/kamailio/kamailio/commit/00b52cd4efe1417f3171f39d266a3bc5...
---
diff --git a/src/core/utils/sruid.c b/src/core/utils/sruid.c index 9e9b17c64cb..ab24b14a320 100644 --- a/src/core/utils/sruid.c +++ b/src/core/utils/sruid.c @@ -243,6 +243,22 @@ int sruid_nexthid(sruid_t *sid, str *sval) return sruid_nextx(sid, &hval); }
+/** + * + */ +int sruid_nextunid(sruid_t *sid, unsigned int nid) +{ + char buf_int[INT2STR_MAX_LEN]; + str hval = str_init("0"); + + if(nid == 0) { + return sruid_nextx(sid, &hval); + } + + hval.s = int2strbuf(nid, buf_int, INT2STR_MAX_LEN, &hval.len); + return sruid_nextx(sid, &hval); +} + /** * */ @@ -271,6 +287,16 @@ int sruid_nexthid_safe(sruid_t *sid, str *sval) return sruid_nexthid(sid, sval); }
+/** + * + */ +int sruid_nextunid_safe(sruid_t *sid, unsigned int nid) +{ + if(unlikely(sid->pid != my_pid())) + sruid_reinit(sid, sid->mode); + return sruid_nextunid(sid, nid); +} + /** * */ diff --git a/src/core/utils/sruid.h b/src/core/utils/sruid.h index fd6b98ed8b8..f60d787559a 100644 --- a/src/core/utils/sruid.h +++ b/src/core/utils/sruid.h @@ -61,6 +61,9 @@ int sruid_nextx_safe(sruid_t *sid, str *x); int sruid_nexthid(sruid_t *sid, str *sval); int sruid_nexthid_safe(sruid_t *sid, str *sval);
+int sruid_nextunid(sruid_t *sid, unsigned int nid); +int sruid_nextunid_safe(sruid_t *sid, unsigned int nid); + typedef int (*sruid_uuid_generate_f)(char *out, int *len);
typedef struct sruid_uuid_api