mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
Merge "pjproject: Configurable setting for cnonce to include hyphens or not" into 16
This commit is contained in:
53
third-party/pjproject/patches/0020-patch_cnonce_only_digits_option.patch
vendored
Normal file
53
third-party/pjproject/patches/0020-patch_cnonce_only_digits_option.patch
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
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;
|
||||
|
Reference in New Issue
Block a user