Skip to content
Snippets Groups Projects
Commit 1c20546e authored by Friendly Automation's avatar Friendly Automation Committed by Gerrit Code Review
Browse files

Merge "pjproject: Configurable setting for cnonce to include hyphens or not"

parents 19045db3 0844d6b1
No related branches found
No related tags found
No related merge requests found
Index: pjsip/include/pjsip/sip_config.h
===================================================================
--- a/pjsip/include/pjsip/sip_config.h (revision 6050)
+++ b/pjsip/include/pjsip/sip_config.h (working copy)
@@ -1190,6 +1190,20 @@
# define PJSIP_AUTH_CACHED_POOL_MAX_SIZE (20 * 1024)
#endif
+
+/**
+ * Specify whether the cnonce used for SIP authentication contain digits only.
+ * The "cnonce" value is setup using GUID generator, i.e:
+ * pj_create_unique_string(), and the GUID string may contain hyphen character
+ * ("-"). Some SIP servers do not like this GUID format, so this option will
+ * strip any hyphens from the GUID string.
+ *
+ * Default is 1 (cnonce will only contain digit characters).
+ */
+#ifndef PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY
+# define PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY 1
+#endif
+
/*****************************************************************************
* SIP Event framework and presence settings.
*/
Index: pjsip/src/pjsip/sip_auth_client.c
===================================================================
--- a/pjsip/src/pjsip/sip_auth_client.c (revision 6050)
+++ b/pjsip/src/pjsip/sip_auth_client.c (working copy)
@@ -396,7 +396,23 @@
/* Create cnonce */
pj_create_unique_string( cached_auth->pool, &cached_auth->cnonce );
+#if defined(PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY) && \
+ PJSIP_AUTH_CNONCE_USE_DIGITS_ONLY!=0
+ if (pj_strchr(&cached_auth->cnonce, '-')) {
+ /* remove hyphen character. */
+ int w, r, len = pj_strlen(&cached_auth->cnonce);
+ char *s = cached_auth->cnonce.ptr;
+ w = r = 0;
+ for (; r < len; r++) {
+ if (s[r] != '-')
+ s[w++] = s[r];
+ }
+ s[w] = '\0';
+ cached_auth->cnonce.slen = w;
+ }
+#endif
+
/* Initialize nonce-count */
cached_auth->nc = 1;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment