[sr-dev] git:master:47d506cd: presence: variable for last subscription uri made static and renamed

Daniel-Constantin Mierla miconda at gmail.com
Tue Mar 31 15:09:41 CEST 2015


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

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2015-03-31T15:08:23+02:00

presence: variable for last subscription uri made static and renamed

- avoid eventual conflicts in the future because presence modules bind between
  each other

---

Modified: modules/presence/subscribe.c

---

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

---

diff --git a/modules/presence/subscribe.c b/modules/presence/subscribe.c
index 7f826f9..84f16e5 100644
--- a/modules/presence/subscribe.c
+++ b/modules/presence/subscribe.c
@@ -755,7 +755,7 @@ void msg_watchers_clean(unsigned int ticks,void *param)
 		LM_ERR("cleaning pending subscriptions\n");
 }
 
-char* last_presentity = NULL;
+static char* _pres_subs_last_presentity = NULL;
 
 int pv_parse_subscription_name(pv_spec_p sp, str *in)
 {
@@ -787,7 +787,8 @@ int pv_parse_subscription_name(pv_spec_p sp, str *in)
 int pv_get_subscription(struct sip_msg *msg, pv_param_t *param,	pv_value_t *res)
 {
 	if(param->pvn.u.isname.name.n==1) /* presentity */
-		return last_presentity == NULL ? pv_get_null(msg, param, res) : pv_get_strzval(msg, param, res, last_presentity);
+		return (_pres_subs_last_presentity == NULL) ? pv_get_null(msg, param, res)
+						: pv_get_strzval(msg, param, res, _pres_subs_last_presentity);
 
 	LM_ERR("unknown specifier\n");
 	return pv_get_null(msg, param, res);
@@ -848,9 +849,9 @@ int handle_subscribe(struct sip_msg* msg, str watcher_user, str watcher_domain)
 	str reply_str;
 	int sent_reply= 0;
 
-	if(last_presentity) {
-		pkg_free(last_presentity);
-		last_presentity = NULL;
+	if(_pres_subs_last_presentity) {
+		pkg_free(_pres_subs_last_presentity);
+		_pres_subs_last_presentity = NULL;
 	}
 
 	/* ??? rename to avoid collisions with other symbols */
@@ -952,9 +953,10 @@ int handle_subscribe(struct sip_msg* msg, str watcher_user, str watcher_domain)
 	}
 
 	if(subs.pres_uri.len > 0 && subs.pres_uri.s) {
-		last_presentity= (char*)pkg_malloc((subs.pres_uri.len+1) * sizeof(char));
-		strncpy(last_presentity, subs.pres_uri.s, subs.pres_uri.len);
-		last_presentity[subs.pres_uri.len] = '\0';
+		_pres_subs_last_presentity =
+				(char*)pkg_malloc((subs.pres_uri.len+1) * sizeof(char));
+		strncpy(_pres_subs_last_presentity, subs.pres_uri.s, subs.pres_uri.len);
+		_pres_subs_last_presentity[subs.pres_uri.len] = '\0';
 	}
 		
 	/* mark that the received event is a SUBSCRIBE message */




More information about the sr-dev mailing list