[PATCH] Make buf_append_urlencoded() percent-encode fewer characters.
Dan Lenski
dlenski at gmail.com
Sun Oct 16 12:37:58 PDT 2016
From: Daniel Lenski <dlenski at gmail.com>
Per RFC 3986, the characters '-', '_', '.', '~' don't need to be
percent-encoded anywhere in a URL or query string.
Removed special case for ' ' → '+' to prevent incompatibility with ocserv:
http://lists.infradead.org/pipermail/openconnect-devel/2016-October/004042.html
/* else if (c==' ')
buf_append_bytes(buf, "+", 1); */
Signed-off-by: Dan Lenski <dlenski at gmail.com>
---
http.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/http.c b/http.c
index 1b99319..db7af10 100644
--- a/http.c
+++ b/http.c
@@ -45,7 +45,7 @@ void buf_append_urlencoded(struct oc_text_buf *buf, const char *str)
{
while (str && *str) {
unsigned char c = *str;
- if (c < 0x80 && isalnum((int)(c)))
+ if (c < 0x80 && (isalnum((int)(c)) || c=='-' || c=='_' || c=='.' || c=='~'))
buf_append_bytes(buf, str, 1);
else
buf_append(buf, "%%%02x", c);
--
2.9.3
More information about the openconnect-devel
mailing list