From e6ad2c8792c12d9217f8ac7e76dc25e312e76570 Mon Sep 17 00:00:00 2001 From: Forrest Voight Date: Sun, 8 May 2011 17:10:33 -0400 Subject: [PATCH] Initial commit of changes to make JSON-RPC HTTP headers case-insensitive, as per RFC 2616 --- rpc.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rpc.cpp b/rpc.cpp index 90e7f15a91..d91076a0ab 100644 --- a/rpc.cpp +++ b/rpc.cpp @@ -1570,10 +1570,11 @@ int ReadHTTPHeader(std::basic_istream& stream, map& mapHea { string strHeader = str.substr(0, nColon); boost::trim(strHeader); + boost::to_lower(strHeader); string strValue = str.substr(nColon+1); boost::trim(strValue); mapHeadersRet[strHeader] = strValue; - if (strHeader == "Content-Length") + if (strHeader == "content-length") nLen = atoi(strValue.c_str()); } } @@ -1643,7 +1644,7 @@ string DecodeBase64(string s) bool HTTPAuthorized(map& mapHeaders) { - string strAuth = mapHeaders["Authorization"]; + string strAuth = mapHeaders["authorization"]; if (strAuth.substr(0,6) != "Basic ") return false; string strUserPass64 = strAuth.substr(6); boost::trim(strUserPass64); @@ -1872,7 +1873,7 @@ void ThreadRPCServer2(void* parg) } // Check authorization - if (mapHeaders.count("Authorization") == 0) + if (mapHeaders.count("authorization") == 0) { stream << HTTPReply(401, "") << std::flush; continue;