asterisk/main
Matthew Nicholson e706b5706e According to section 19.1.2 of RFC 3261:
For each component, the set of valid BNF expansions defines exactly
  which characters may appear unescaped.  All other characters MUST be
  escaped.

This patch modifies ast_uri_encode() to encode strings in line with this recommendation.  This patch also adds an ast_escape_quoted() function which escapes '"' and '\' characters in quoted strings in accordance with section 25.1 of RFC 3261.  The ast_uri_encode() function has also been modified to take an ast_flags struct describing the set of rules it should use when escaping characters to allow for it to escape SIP URIs in addition to HTTP URIs and other types of URIs or variations of those two URI types in the future.

The ast_uri_decode() function has also been modified to accept an ast_flags struct describing the set of rules to use when decoding to enable decoding '+' as ' ' in legacy http URLs.

The unit tests for these functions have also been updated.

ABE-2705

Review: https://reviewboard.asterisk.org/r/1081/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@303509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-24 18:59:22 +00:00
..
db1-ast Merged revisions 209879 via svnmerge from 2009-08-01 11:29:25 +00:00
editline Add gar to the check for AR for those silly OSes (Solaris) that don't have ar. 2010-04-27 21:13:01 +00:00
stdtime Merged revisions 291791 via svnmerge from 2010-10-14 18:46:54 +00:00
Makefile Merged revisions 298960 via svnmerge from 2010-12-18 00:08:13 +00:00
abstract_jb.c Merged revisions 297312 via svnmerge from 2010-12-02 18:28:50 +00:00
acl.c Merged revisions 291758 via svnmerge from 2010-10-14 15:21:42 +00:00
alaw.c Fix compile when certain G711 menuselect options are enabled. 2009-08-19 22:38:46 +00:00
aoc.c Typos: recieved => received 2010-12-20 09:14:45 +00:00
app.c Merged revisions 302634 via svnmerge from 2011-01-19 20:33:30 +00:00
ast_expr2.c Merged revisions 293197 via svnmerge from 2010-10-28 20:01:28 +00:00
ast_expr2.fl Merged revisions 245496 via svnmerge from 2010-02-08 20:41:05 +00:00
ast_expr2.h Merged revisions 293197 via svnmerge from 2010-10-28 20:01:28 +00:00
ast_expr2.y Merged revisions 293197 via svnmerge from 2010-10-28 20:01:28 +00:00
ast_expr2f.c Fix some doxygen warnings. 2010-06-08 14:38:18 +00:00
asterisk.c Remove some trailing whitespace and steal revision 300000. 2010-12-29 22:19:26 +00:00
asterisk.dynamics Remove the old stub files, preferring the optional_api method. 2010-07-14 20:48:59 +00:00
asterisk.exports.in Merged revisions 288640 via svnmerge from 2010-09-24 03:43:14 +00:00
astfd.c Merged revisions 228338 via svnmerge from 2009-11-06 15:42:46 +00:00
astmm.c Two more minor fixes due to constification 2009-05-22 16:53:41 +00:00
astobj2.c Merged revisions 302267 via svnmerge from 2011-01-18 20:21:29 +00:00
audiohook.c Merged revisions 279949 via svnmerge from 2010-07-27 20:59:16 +00:00
autochan.c Convert the ast_channel data structure over to the astobj2 framework. 2009-04-24 14:04:26 +00:00
autoservice.c Merged revisions 278167 via svnmerge from 2010-07-20 22:26:23 +00:00
bridging.c pthread_join to assure the thread is really gone 2010-06-02 13:32:22 +00:00
buildinfo.c fix a few small things found by using sparse 2008-10-30 16:49:02 +00:00
callerid.c ast_callerid restructuring 2010-07-14 15:48:36 +00:00
ccss.c Merged revisions 303153 via svnmerge from 2011-01-20 20:35:50 +00:00
cdr.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
cel.c Merged revisions 283230 via svnmerge from 2010-08-23 13:23:37 +00:00
channel.c Merged revisions 301504 via svnmerge from 2011-01-12 18:12:31 +00:00
chanvars.c Add additional memory debugging to several core APIs, and fix several memory 2008-10-14 22:38:06 +00:00
cli.c Merged revisions 291075 via svnmerge from 2010-10-11 16:44:32 +00:00
config.c Clarify a source comment about configuration template categories. 2011-01-19 23:53:44 +00:00
cygload.c Doxygen updates, formatting. 2007-12-11 22:20:22 +00:00
data.c Kill some startup warnings and errors and make some messages more helpful in tracking down the source. 2010-07-09 17:00:22 +00:00
datastore.c Merged revisions 273565 via svnmerge from 2010-07-01 22:16:23 +00:00
db.c Merged revisions 286112 via svnmerge from 2010-09-13 22:13:27 +00:00
devicestate.c Merged revisions 294501 via svnmerge from 2010-11-10 12:52:46 +00:00
dial.c ast_callerid restructuring 2010-07-14 15:48:36 +00:00
dns.c Fix a few compilation problems found when building Asterisk against uClibc. 2009-07-08 16:43:12 +00:00
dnsmgr.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
dsp.c Set threshold for silence detection defaults to 256 2010-06-07 17:34:45 +00:00
ecdisa.h merge new_loader_completion branch, including (at least): 2006-08-21 02:11:39 +00:00
enum.c Extend max call limit duration from 24.8 days to 292+ million years. 2010-01-18 22:31:25 +00:00
event.c Merged revisions 295711 via svnmerge from 2010-11-20 00:52:47 +00:00
features.c Merged revisions 303107 via svnmerge from 2011-01-20 19:58:54 +00:00
file.c Merged revisions 301446 via svnmerge from 2011-01-12 16:05:58 +00:00
fixedjitterbuf.c Fix various typos reported by Lintian 2010-07-02 15:57:02 +00:00
fixedjitterbuf.h Merged revisions 135841,135847,135850 via svnmerge from 2008-08-06 00:30:53 +00:00
frame.c adds speex 16khz audio support 2010-06-17 17:23:43 +00:00
framehook.c Merged revisions 287647 via svnmerge from 2010-09-20 22:16:37 +00:00
fskmodem.c (Step 2 of 2) 2008-07-21 21:00:47 +00:00
fskmodem_float.c Optionally build integer-based routines for FSK tone decoding (but default 2008-07-21 20:59:03 +00:00
fskmodem_int.c Optionally build integer-based routines for FSK tone decoding (but default 2008-07-21 20:59:03 +00:00
global_datastores.c Add SRTP support for Asterisk 2010-06-08 05:29:08 +00:00
hashtab.c Add MALLOC_DEBUG to various utility APIs, so that memory leaks can be tracked back to their source. 2009-03-11 00:29:59 +00:00
heap.c Fix handling of removing nodes from the middle of a heap. 2010-05-06 13:58:07 +00:00
http.c According to section 19.1.2 of RFC 3261: 2011-01-24 18:59:22 +00:00
image.c More 'static' qualifiers on module global variables. 2009-06-15 17:34:30 +00:00
indications.c Add doxygen docs for indications.c 2010-09-16 16:48:08 +00:00
io.c Merged revisions 182810 via svnmerge from 2009-03-18 02:28:55 +00:00
jitterbuf.c Merged revisions 174583 via svnmerge from 2009-02-10 18:16:31 +00:00
loader.c Merged revisions 284610 via svnmerge from 2010-09-02 05:27:53 +00:00
lock.c Attempt to fix FreeBSD build problem. 2010-06-09 23:56:08 +00:00
logger.c Support an alternate configuration file for the 'logger reload' command. 2010-12-31 09:21:47 +00:00
manager.c Merged revisions 302837 via svnmerge from 2011-01-19 23:57:27 +00:00
md5.c Start untangling header inclusion in a way that does not affect 2007-11-16 20:04:58 +00:00
netsock.c Merged revisions 298051 via svnmerge from 2010-12-10 16:28:14 +00:00
netsock2.c Merged revisions 292188 via svnmerge from 2010-10-18 19:52:58 +00:00
pbx.c Merged revisions 302266 via svnmerge from 2011-01-18 20:40:59 +00:00
plc.c Start untangling header inclusion in a way that does not affect 2007-11-16 20:04:58 +00:00
poll.c Merged revisions 285268 via svnmerge from 2010-09-07 19:09:08 +00:00
privacy.c remove a bunch of useless #include "options.h" 2007-11-21 23:09:02 +00:00
rtp_engine.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
say.c Merged revisions 296391 via svnmerge from 2010-11-26 22:02:00 +00:00
sched.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
security_events.c Add an API for reporting security events, and a security event logging module. 2009-07-11 19:15:03 +00:00
sha1.c more header removal/normalization 2007-11-21 00:23:49 +00:00
slinfactory.c Expand codec bitfield from 32 bits to 64 bits. 2009-11-04 14:05:12 +00:00
srv.c Formatting changes 2010-07-16 13:32:22 +00:00
ssl.c pthread_self returns a pthread_t which is not an unsigned int on all 2009-07-09 08:31:24 +00:00
strcompat.c Merged revisions 301263 via svnmerge from 2011-01-10 22:40:23 +00:00
strings.c fixes segfault on logging 2010-05-18 22:48:51 +00:00
stun.c Merged revisions 284597 via svnmerge from 2010-09-02 05:02:54 +00:00
syslog.c Add functions to map syslog facilities and priorities constants to strings. 2009-06-26 13:00:35 +00:00
taskprocessor.c Minor tweaks to comment blocks and includes. 2010-02-22 06:45:52 +00:00
tcptls.c Add IPv6 to Asterisk. 2010-07-08 22:08:07 +00:00
tdd.c Merge changes from str_substitution that are unrelated to that branch. 2009-04-01 20:13:28 +00:00
term.c Merged revisions 269334 via svnmerge from 2010-06-09 17:32:52 +00:00
test.c Kill some startup warnings and errors and make some messages more helpful in tracking down the source. 2010-07-09 17:00:22 +00:00
threadstorage.c Fixed an issue in the threadstorage cli functions resulting from the constification of struct ast_cli_args in r196072. 2009-06-01 15:23:21 +00:00
timing.c Merged revisions 294278 via svnmerge from 2010-11-08 22:03:54 +00:00
translate.c Merged revisions 282047 via svnmerge from 2010-08-12 20:17:17 +00:00
udptl.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
ulaw.c Fix compile when certain G711 menuselect options are enabled. 2009-08-19 22:38:46 +00:00
utils.c According to section 19.1.2 of RFC 3261: 2011-01-24 18:59:22 +00:00
xml.c Asterisk data retrieval API. 2010-04-22 18:07:02 +00:00
xmldoc.c Merged revisions 300521 via svnmerge from 2011-01-04 21:54:20 +00:00