Module: kamailio Branch: master Commit: 69e57b9260c6c09380fdb9cfd074ea67a459230a URL: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67...
Author: Lucian Balaceanu lucian.balaceanu@1and1.ro Committer: Lucian Balaceanu lucian.balaceanu@1and1.ro Date: 2016-06-02T13:50:02+03:00
rtpengine: change cookie to hostname_pid_seqno
- pid_seqno in gencookie() is not a unique identifictor in a multi kamailio setup
---
Modified: modules/rtpengine/rtpengine.c
---
Diff: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67... Patch: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67...
---
diff --git a/modules/rtpengine/rtpengine.c b/modules/rtpengine/rtpengine.c index 5481f49..a37ab6f 100644 --- a/modules/rtpengine/rtpengine.c +++ b/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; }
Hello,
wondering if it wouldn't be better to get the hostname once at startup, rather than doing it each time a new cookie is needed.
On the other hand, note that you can set server_id for each kamailio instance to make it uniquely identifiable, which is also important for sruid generator (although that uses random and startup timestamp as well).
Also, sometime the local hostname overlaps, seen lots of servers using just 'www' or 'debian'. So ensuring the uniqueness was shifted to the sysadmins of the network nodes.
Cheers, Daniel
On 02/06/16 12:54, Lucian Balaceanu wrote:
Module: kamailio Branch: master Commit: 69e57b9260c6c09380fdb9cfd074ea67a459230a URL: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67...
Author: Lucian Balaceanu lucian.balaceanu@1and1.ro Committer: Lucian Balaceanu lucian.balaceanu@1and1.ro Date: 2016-06-02T13:50:02+03:00
rtpengine: change cookie to hostname_pid_seqno
- pid_seqno in gencookie() is not a unique identifictor in a multi kamailio setup
Modified: modules/rtpengine/rtpengine.c
Diff: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67... Patch: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67...
diff --git a/modules/rtpengine/rtpengine.c b/modules/rtpengine/rtpengine.c index 5481f49..a37ab6f 100644 --- a/modules/rtpengine/rtpengine.c +++ b/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;
}
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
It looks like a re-invention of a uuid. Isn't it? I'd say that using server_id is better approach.
2016-06-02 14:38 GMT+03:00 Daniel-Constantin Mierla miconda@gmail.com:
Hello,
wondering if it wouldn't be better to get the hostname once at startup, rather than doing it each time a new cookie is needed.
On the other hand, note that you can set server_id for each kamailio instance to make it uniquely identifiable, which is also important for sruid generator (although that uses random and startup timestamp as well).
Also, sometime the local hostname overlaps, seen lots of servers using just 'www' or 'debian'. So ensuring the uniqueness was shifted to the sysadmins of the network nodes.
Cheers, Daniel
On 02/06/16 12:54, Lucian Balaceanu wrote:
Module: kamailio Branch: master Commit: 69e57b9260c6c09380fdb9cfd074ea67a459230a URL: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67...
Author: Lucian Balaceanu lucian.balaceanu@1and1.ro lucian.balaceanu@1and1.ro Committer: Lucian Balaceanu lucian.balaceanu@1and1.ro lucian.balaceanu@1and1.ro Date: 2016-06-02T13:50:02+03:00
rtpengine: change cookie to hostname_pid_seqno
- pid_seqno in gencookie() is not a unique identifictor in a multi kamailio setup
Modified: modules/rtpengine/rtpengine.c
Diff: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67... Patch: https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67...
diff --git a/modules/rtpengine/rtpengine.c b/modules/rtpengine/rtpengine.c index 5481f49..a37ab6f 100644 --- a/modules/rtpengine/rtpengine.c +++ b/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;
}
sr-dev mailing listsr-dev@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierlahttp://www.asipto.com - http://www.kamailio.orghttp://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
Hi guys,
You are absolutely right, I will make the changes to go with the server_id.
Thank you, Lucian
On 02.06.2016 15:31, Alekzander Spiridonov wrote:
It looks like a re-invention of a uuid. Isn't it? I'd say that using server_id is better approach.
2016-06-02 14:38 GMT+03:00 Daniel-Constantin Mierla <miconda@gmail.com mailto:miconda@gmail.com>:
Hello, wondering if it wouldn't be better to get the hostname once at startup, rather than doing it each time a new cookie is needed. On the other hand, note that you can set server_id for each kamailio instance to make it uniquely identifiable, which is also important for sruid generator (although that uses random and startup timestamp as well). Also, sometime the local hostname overlaps, seen lots of servers using just 'www' or 'debian'. So ensuring the uniqueness was shifted to the sysadmins of the network nodes. Cheers, Daniel On 02/06/16 12:54, Lucian Balaceanu wrote:
Module: kamailio Branch: master Commit: 69e57b9260c6c09380fdb9cfd074ea67a459230a URL:https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67a459230a Author: Lucian Balaceanu<lucian.balaceanu@1and1.ro> <mailto:lucian.balaceanu@1and1.ro> Committer: Lucian Balaceanu<lucian.balaceanu@1and1.ro> <mailto:lucian.balaceanu@1and1.ro> Date: 2016-06-02T13:50:02+03:00 rtpengine: change cookie to hostname_pid_seqno - pid_seqno in gencookie() is not a unique identifictor in a multi kamailio setup --- Modified: modules/rtpengine/rtpengine.c --- Diff:https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67a459230a.diff Patch:https://github.com/kamailio/kamailio/commit/69e57b9260c6c09380fdb9cfd074ea67a459230a.patch --- diff --git a/modules/rtpengine/rtpengine.c b/modules/rtpengine/rtpengine.c index 5481f49..a37ab6f 100644 --- a/modules/rtpengine/rtpengine.c +++ b/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; } _______________________________________________ sr-dev mailing list sr-dev@lists.sip-router.org <mailto:sr-dev@lists.sip-router.org> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
-- Daniel-Constantin Mierla http://www.asipto.com -http://www.kamailio.org http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> -http://www.linkedin.com/in/miconda _______________________________________________ sr-dev mailing list sr-dev@lists.sip-router.org <mailto:sr-dev@lists.sip-router.org> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
-- Best regards, Alekzander Spiridonov