diff options
author | qwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-08-17 19:12:19 +0000 |
---|---|---|
committer | qwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-08-17 19:12:19 +0000 |
commit | a631984b3617c8fdbf36c8533f574e5e459988bf (patch) | |
tree | 74277c4e58ceeb0ab5c630174226a5db4cf69d10 /main/utils.c | |
parent | 2b6f82ef2e0f01aba6b78c86ba37e16cc4140ee4 (diff) |
Don't send a semicolon over the wire in sip notify messages.
Caused by fix for issue 9938.
I basically took the code that existed before 9938 was fixed, and
copied it into a new function - ast_unescape_semicolon
There should be very few places this will be needed (pbx_config
does NOT need this (see issue 9938 for details))
Issue 10430, patch by me, with help/ideas from murf (thanks murf).
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@79904 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/utils.c')
-rw-r--r-- | main/utils.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/main/utils.c b/main/utils.c index 8b2b86694..56d3ffe85 100644 --- a/main/utils.c +++ b/main/utils.c @@ -880,6 +880,21 @@ char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes) return s; } +char *ast_unescape_semicolon(char *s) +{ + char *e; + char *work = s; + + while ((e = strchr(work, ';'))) { + if ((e > work) && (*(e-1) == '\\')) { + memmove(e - 1, e, strlen(e) + 1); + work = e; + } + } + + return s; +} + int ast_build_string_va(char **buffer, size_t *space, const char *fmt, va_list ap) { int result; |