فهرست منبع

rtpengine: change cookie to hostname_pid_seqno

- pid_seqno in gencookie() is not a unique identifictor in a multi kamailio setup
Lucian Balaceanu 9 سال پیش
والد
کامیت
69e57b9260
1فایلهای تغییر یافته به همراه8 افزوده شده و 3 حذف شده
  1. 8 3
      modules/rtpengine/rtpengine.c

+ 8 - 3
modules/rtpengine/rtpengine.c

@@ -97,6 +97,8 @@ MODULE_VERSION
 #define	NAT_UAC_TEST_S_1918			0x08
 #define	NAT_UAC_TEST_RPORT			0x10
 
+#define COOKIE_SIZE					128
+#define HOSTNAME_SIZE				100
 
 #define DEFAULT_RTPP_SET_ID			0
 #define MAX_RTPP_TRIED_NODES			50
@@ -2016,12 +2018,15 @@ static void mod_destroy(void)
 }
 
 
-
 static char * gencookie(void)
 {
-	static char cook[34];
+	static char cook[COOKIE_SIZE];
+	char hostname[HOSTNAME_SIZE];
+
+	if (gethostname(hostname, HOSTNAME_SIZE - 1) < 0)
+		strcpy(hostname, "host");
+	snprintf(cook, COOKIE_SIZE, "%s_%d_%u ", hostname, (int)mypid, myseqn);
 
-	sprintf(cook, "%d_%u ", (int)mypid, myseqn);
 	myseqn++;
 	return cook;
 }