[Freeswitch-svn] [commit] r9703 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Freeswitch SVN
anthm at freeswitch.org
Sun Sep 28 17:36:39 EDT 2008
Author: anthm
Date: Sun Sep 28 17:36:39 2008
New Revision: 9703
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
Log:
append -1 .. -N postfix after any X-headers as vars that have the same name
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Sun Sep 28 17:36:39 2008
@@ -3836,10 +3836,22 @@
}
} else if (!strncasecmp(un->un_name, "X-", 2) || !strncasecmp(un->un_name, "P-", 2)) {
if (!switch_strlen_zero(un->un_value)) {
- char *new_name;
- if ((new_name = switch_mprintf("%s%s", SOFIA_SIP_HEADER_PREFIX, un->un_name))) {
+ char new_name[512] = "";
+ int reps = 0;
+ for(;;) {
+ char postfix[25] = "";
+ if (reps > 0) {
+ switch_snprintf(postfix, sizeof(postfix), "-%d", reps);
+ }
+ reps++;
+ switch_snprintf(new_name, sizeof(new_name), "%s%s%s", SOFIA_SIP_HEADER_PREFIX, un->un_name, postfix);
+
+ if (switch_channel_get_variable(channel, new_name)) {
+ continue;
+ }
+
switch_channel_set_variable(channel, new_name, un->un_value);
- free(new_name);
+ break;
}
}
}
More information about the Freeswitch-svn
mailing list