Просмотр исходного кода

mqueue: use static var to return pointer to dynamic queue name

(cherry picked from commit 6626f9a73700f9af8d46945e250fc8ab88f5aefe)
(cherry picked from commit a6a8cf02373df4fe4e3afdd1f76dfb5e435fa4a8)
Daniel-Constantin Mierla 11 лет назад
Родитель
Сommit
d94cfef4b6
1 измененных файлов с 6 добавлено и 7 удалено
  1. 6 7
      modules/mqueue/mqueue_api.c

+ 6 - 7
modules/mqueue/mqueue_api.c

@@ -364,15 +364,14 @@ int pv_parse_mq_name(pv_spec_t *sp, str *in)
 
 str *pv_get_mq_name(sip_msg_t *msg, str *in)
 {
-	str *queue;
+	static str queue;
+	pv_spec_t *pvs;
+	pv_value_t pvv;
 
 	if (in->s[0] != '$')
-		queue = in;
+		return in;
 	else
 	{
-		pv_spec_t *pvs;
-		pv_value_t pvv;
-
 		if (pv_locate_name(in) != in->len)
 		{
 			LM_ERR("invalid pv [%.*s]\n", in->len, in->s);
@@ -396,10 +395,10 @@ str *pv_get_mq_name(sip_msg_t *msg, str *in)
 			return NULL;
 		}
 
-		queue = &pvv.rs;
+		queue = pvv.rs;
 	}
 
-	return queue;
+	return &queue;
 }
 
 /**