From eb3fcde2f49c4d9589f082fd8ad17b461ca6608e Mon Sep 17 00:00:00 2001 From: Meeh Date: Sun, 31 Aug 2014 02:22:50 +0200 Subject: [PATCH] Making sure Content-Length is sent when having body. RFC; http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4 --- HTTPServer.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/HTTPServer.cpp b/HTTPServer.cpp index 57afe6b4..ece01e27 100644 --- a/HTTPServer.cpp +++ b/HTTPServer.cpp @@ -7,6 +7,7 @@ #include "Transports.h" #include "NetDb.h" #include "HTTPServer.h" +#include "I2PEndian.h" // For image and info #include "version.h" @@ -316,13 +317,15 @@ namespace util if (m_Stream) { std::string request = method+" " + uri + " HTTP/1.1\n Host:" + fullAddress + "\r\n"; - if (!strcmp(method.c_str(), "GET")) - { - // POST/PUT, apply body - request += "\r\n"+ data; - } - LogPrint("HTTP Client Request: ", request); - m_Stream->Send ((uint8_t *)request.c_str (), request.length (), 10); + if (!strcmp(method.c_str(), "GET") && data.size () > 0) + { + // POST/PUT, apply body + request += "Content-Length: " ; + request += request.size (); + request += "\r\n" + data; + } + LogPrint("HTTP Client Request: ", request); + m_Stream->Send ((uint8_t *)request.c_str (), request.size (), 10); AsyncStreamReceive (); } }