Module: sip-router Branch: master Commit: 9ee44c6079c8d30138ece619295974e17993aa04 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9ee44c60...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: Wed Sep 18 22:17:55 2013 +0200
pua_reginfo: add ruid for location records
- patch by Wonbin Cho, FS#339
---
modules/pua_reginfo/Makefile | 3 +++ modules/pua_reginfo/notify.c | 13 ++++++++++++- modules/pua_reginfo/pua_reginfo.c | 6 ++++++ 3 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/modules/pua_reginfo/Makefile b/modules/pua_reginfo/Makefile index b6d8e40..532f159 100644 --- a/modules/pua_reginfo/Makefile +++ b/modules/pua_reginfo/Makefile @@ -24,4 +24,7 @@ endif
DEFS+=-DKAMAILIO_MOD_INTERFACE
+SERLIBPATH=../../lib +SER_LIBS+=$(SERLIBPATH)/srutils/srutils + include ../../Makefile.modules diff --git a/modules/pua_reginfo/notify.c b/modules/pua_reginfo/notify.c index 176c16c..1187e34 100644 --- a/modules/pua_reginfo/notify.c +++ b/modules/pua_reginfo/notify.c @@ -26,6 +26,7 @@ #include "../../parser/parse_content.h" #include "../../parser/parse_uri.h" #include "../../modules/usrloc/usrloc.h" +#include "../../lib/srutils/sruid.h" #include <libxml/parser.h> #include "pua_reginfo.h"
@@ -62,7 +63,10 @@ #define RESULT_CONTACTS_FOUND 1 #define RESULT_NO_CONTACTS 2
-int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str callid, int cseq, int expires, int event, str contact_uri) { +extern sruid_t _reginfo_sruid; + +int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str callid, + int cseq, int expires, int event, str contact_uri) { str no_str = {0, 0}; static str no_ua = str_init("n/a"); static ucontact_info_t ci; @@ -102,6 +106,13 @@ int process_contact(udomain_t * domain, urecord_t ** ul_record, str aor, str cal /* set expire time */ ci.expires = time(0) + expires;
+ /* set ruid */ + if(sruid_next(&_reginfo_sruid) < 0) { + LM_ERR("failed to generate ruid"); + } else { + ci.ruid = _reginfo_sruid.uid; + } + /* Now we start looking for the contact: */ if (((*ul_record)->contacts == 0) || (ul.get_ucontact(*ul_record, &contact_uri, &callid, &no_str, cseq+1, &ul_contact) != 0)) { diff --git a/modules/pua_reginfo/pua_reginfo.c b/modules/pua_reginfo/pua_reginfo.c index a9ffe76..73d7113 100644 --- a/modules/pua_reginfo/pua_reginfo.c +++ b/modules/pua_reginfo/pua_reginfo.c @@ -25,6 +25,7 @@ #include "../pua/pua_bind.h" /* Bindings to usrloc */ #include "../usrloc/usrloc.h" +#include "../../lib/srutils/sruid.h"
#include "pua_reginfo.h" #include "subscribe.h" @@ -43,6 +44,7 @@ str server_address = {NULL, 0};
int publish_reginfo = 1;
+sruid_t _reginfo_sruid;
/** Fixup functions */ static int domain_fixup(void** param, int param_no); @@ -161,6 +163,10 @@ static int mod_init(void) return -1; } } + + if(sruid_init(&_reginfo_sruid, (char)'-', "regi", SRUID_INC)<0) + return -1; + return 0; }