Module: sip-router
Branch: master
Commit: 9ee44c6079c8d30138ece619295974e17993aa04
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9ee44c6…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)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;
}