From bcef9d56a43ff15eb80f0c077adefa94afe60392 Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Wed, 24 Jan 2007 21:49:41 +0000 Subject: Allowing more relaxed parsing of queries --- scan_urlencoded_query.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'scan_urlencoded_query.c') diff --git a/scan_urlencoded_query.c b/scan_urlencoded_query.c index 8cea507..ff38246 100644 --- a/scan_urlencoded_query.c +++ b/scan_urlencoded_query.c @@ -10,8 +10,13 @@ unreserved = alphanum | mark mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" we add '%' to the matrix to not stop at encoded chars. + After losing too many requests to being too strict, add the following characters to reserved matrix + relax = "+" | "," | "/" | ";" | "<" | ">" + +static const unsigned char reserved_matrix_strict[] = { 0xA2, 0x67, 0xFF, 0x03, 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x47}; */ -static const unsigned char reserved_matrix[] = { 0xA2, 0x67, 0xFF, 0x03, 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x47}; +static const unsigned char reserved_matrix[] = { 0xA2, 0xFF, 0xFF, 0x5B, 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x47}; + static int is_unreserved( unsigned char c ) { if( ( c <= 32 ) || ( c >= 127 ) ) return 0; return 1&(reserved_matrix[(c-32)>>3]>>(c&7)); } -- cgit v1.2.3