Fix Utilities Namespaces and includes
This commit is contained in:
@@ -4,5 +4,3 @@
|
|||||||
.*.swp
|
.*.swp
|
||||||
.AppleDouble
|
.AppleDouble
|
||||||
lib
|
lib
|
||||||
Libraries
|
|
||||||
fixPermissions.sh
|
|
||||||
|
|||||||
+14
-14
@@ -1,7 +1,7 @@
|
|||||||
#include "HttpClientImpl.h"
|
#include "HttpClientImpl.h"
|
||||||
#include "HttpClientHelpers.h"
|
#include "HttpClientHelpers.h"
|
||||||
#include "Logging.h"
|
#include <Logging.h>
|
||||||
#include "StringAlgorithm.h"
|
#include <StringAlgorithm.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
@@ -185,11 +185,11 @@ std::string HttpClientImpl::GetUrlPostAttachmentContents(const std::string& url,
|
|||||||
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
||||||
CURLFORM_END);
|
CURLFORM_END);
|
||||||
|
|
||||||
std::vector<std::string> postTokens = Utilities::split(data, '&');
|
std::vector<std::string> postTokens = StringAlgorithm::split(data, '&');
|
||||||
|
|
||||||
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens = Utilities::split(*it, '=');
|
std::vector<std::string> tokens = StringAlgorithm::split(*it, '=');
|
||||||
|
|
||||||
curl_formadd(&formpost, &lastptr,
|
curl_formadd(&formpost, &lastptr,
|
||||||
CURLFORM_COPYNAME, tokens[0].c_str(),
|
CURLFORM_COPYNAME, tokens[0].c_str(),
|
||||||
@@ -263,11 +263,11 @@ void HttpClientImpl::GetUrlPostAttachmentSilent(const std::string& url, const st
|
|||||||
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
||||||
CURLFORM_END);
|
CURLFORM_END);
|
||||||
|
|
||||||
std::vector<std::string> postTokens = Utilities::split(data, '&');
|
std::vector<std::string> postTokens = StringAlgorithm::split(data, '&');
|
||||||
|
|
||||||
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens = Utilities::split(*it, '=');
|
std::vector<std::string> tokens = StringAlgorithm::split(*it, '=');
|
||||||
|
|
||||||
curl_formadd(&formpost, &lastptr,
|
curl_formadd(&formpost, &lastptr,
|
||||||
CURLFORM_COPYNAME, tokens[0].c_str(),
|
CURLFORM_COPYNAME, tokens[0].c_str(),
|
||||||
@@ -336,11 +336,11 @@ std::string HttpClientImpl::GetUrlPostAttachmentRedirect(const std::string& url,
|
|||||||
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
||||||
CURLFORM_END);
|
CURLFORM_END);
|
||||||
|
|
||||||
std::vector<std::string> postTokens = Utilities::split(data, '&');
|
std::vector<std::string> postTokens = StringAlgorithm::split(data, '&');
|
||||||
|
|
||||||
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens = Utilities::split(*it, '=');
|
std::vector<std::string> tokens = StringAlgorithm::split(*it, '=');
|
||||||
|
|
||||||
curl_formadd(&formpost, &lastptr,
|
curl_formadd(&formpost, &lastptr,
|
||||||
CURLFORM_COPYNAME, tokens[0].c_str(),
|
CURLFORM_COPYNAME, tokens[0].c_str(),
|
||||||
@@ -425,11 +425,11 @@ std::string HttpClientImpl::GetUrlPostAttachmentContents(const std::string& url,
|
|||||||
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
||||||
CURLFORM_END);
|
CURLFORM_END);
|
||||||
|
|
||||||
std::vector<std::string> postTokens = Utilities::split(data, '&');
|
std::vector<std::string> postTokens = StringAlgorithm::split(data, '&');
|
||||||
|
|
||||||
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens = Utilities::split(*it, '=');
|
std::vector<std::string> tokens = StringAlgorithm::split(*it, '=');
|
||||||
|
|
||||||
curl_formadd(&formpost, &lastptr,
|
curl_formadd(&formpost, &lastptr,
|
||||||
CURLFORM_COPYNAME, tokens[0].c_str(),
|
CURLFORM_COPYNAME, tokens[0].c_str(),
|
||||||
@@ -505,11 +505,11 @@ void HttpClientImpl::GetUrlPostAttachmentSilent(const std::string& url, const st
|
|||||||
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
||||||
CURLFORM_END);
|
CURLFORM_END);
|
||||||
|
|
||||||
std::vector<std::string> postTokens = Utilities::split(data, '&');
|
std::vector<std::string> postTokens = StringAlgorithm::split(data, '&');
|
||||||
|
|
||||||
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens = Utilities::split(*it, '=');
|
std::vector<std::string> tokens = StringAlgorithm::split(*it, '=');
|
||||||
|
|
||||||
curl_formadd(&formpost, &lastptr,
|
curl_formadd(&formpost, &lastptr,
|
||||||
CURLFORM_COPYNAME, tokens[0].c_str(),
|
CURLFORM_COPYNAME, tokens[0].c_str(),
|
||||||
@@ -580,11 +580,11 @@ std::string HttpClientImpl::GetUrlPostAttachmentRedirect(const std::string& url,
|
|||||||
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
CURLFORM_COPYCONTENTS, "multipart/form-data",
|
||||||
CURLFORM_END);
|
CURLFORM_END);
|
||||||
|
|
||||||
std::vector<std::string> postTokens = Utilities::split(data, '&');
|
std::vector<std::string> postTokens = StringAlgorithm::split(data, '&');
|
||||||
|
|
||||||
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
for (std::vector<std::string>::iterator it = postTokens.begin(); it != postTokens.end(); ++it)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens = Utilities::split(*it, '=');
|
std::vector<std::string> tokens = StringAlgorithm::split(*it, '=');
|
||||||
|
|
||||||
curl_formadd(&formpost, &lastptr,
|
curl_formadd(&formpost, &lastptr,
|
||||||
CURLFORM_COPYNAME, tokens[0].c_str(),
|
CURLFORM_COPYNAME, tokens[0].c_str(),
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ void HttpConnection::HandleRead(const asio::error_code& ec, std::size_t length)
|
|||||||
if (!ec)
|
if (!ec)
|
||||||
{
|
{
|
||||||
size_t dataLocation;
|
size_t dataLocation;
|
||||||
Utilities::Tribool result;
|
Tribool::Tribool result;
|
||||||
Buffer::iterator dataIterator;
|
Buffer::iterator dataIterator;
|
||||||
|
|
||||||
if (!m_dataIncomplete)
|
if (!m_dataIncomplete)
|
||||||
@@ -51,7 +51,7 @@ void HttpConnection::HandleRead(const asio::error_code& ec, std::size_t length)
|
|||||||
if (result && length < m_request.headers.GetContentLength() + dataLocation)
|
if (result && length < m_request.headers.GetContentLength() + dataLocation)
|
||||||
{
|
{
|
||||||
m_dataIncomplete = true;
|
m_dataIncomplete = true;
|
||||||
result = Utilities::Tribool::Indeterminate;
|
result = Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
#include "HttpRequest.h"
|
#include "HttpRequest.h"
|
||||||
#include "HttpRequestHandler.h"
|
#include "HttpRequestHandler.h"
|
||||||
#include "HttpRequestParser.h"
|
#include "HttpRequestParser.h"
|
||||||
#include "asio.hpp"
|
#include <asio.hpp>
|
||||||
#include "Tribool.h"
|
#include <Tribool.h>
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
@@ -38,7 +38,7 @@ private:
|
|||||||
asio::ip::tcp::socket m_socket;
|
asio::ip::tcp::socket m_socket;
|
||||||
HttpRequestHandler& m_requestHandler;
|
HttpRequestHandler& m_requestHandler;
|
||||||
Buffer m_data;
|
Buffer m_data;
|
||||||
std::tuple<Utilities::Tribool, Buffer::iterator> m_dataState;
|
std::tuple<Tribool::Tribool, Buffer::iterator> m_dataState;
|
||||||
bool m_dataIncomplete;
|
bool m_dataIncomplete;
|
||||||
HttpRequest m_request;
|
HttpRequest m_request;
|
||||||
HttpRequestParser m_requestParser;
|
HttpRequestParser m_requestParser;
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
#define HTTP_HTTPREPLY_H
|
#define HTTP_HTTPREPLY_H
|
||||||
|
|
||||||
#include "HttpHeaders.h"
|
#include "HttpHeaders.h"
|
||||||
#include "asio.hpp"
|
#include <asio.hpp>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "HttpRequestHandler.h"
|
#include "HttpRequestHandler.h"
|
||||||
#include "HttpMimeTypes.h"
|
#include "HttpMimeTypes.h"
|
||||||
#include "StringAlgorithm.h"
|
#include <StringAlgorithm.h>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ HttpReply HttpRequestHandler::HandleRequest(const HttpRequest& request, const st
|
|||||||
if (requestPath.empty() || requestPath[0] != '/' || requestPath.find("..") != std::string::npos)
|
if (requestPath.empty() || requestPath[0] != '/' || requestPath.find("..") != std::string::npos)
|
||||||
return HttpReply::StockReply(HttpReply::Status::BadRequest);
|
return HttpReply::StockReply(HttpReply::Status::BadRequest);
|
||||||
|
|
||||||
if (!Utilities::iequals(request.uri, "/api") && !Utilities::istarts_with(request.uri, "/api/"))
|
if (!StringAlgorithm::iequals(request.uri, "/api") && !StringAlgorithm::istarts_with(request.uri, "/api/"))
|
||||||
return HttpReply::StockReply(HttpReply::Status::NotFound);
|
return HttpReply::StockReply(HttpReply::Status::NotFound);
|
||||||
|
|
||||||
std::vector<HttpPostData> postData = GetPostData(request.headers.GetBoundary(), data);
|
std::vector<HttpPostData> postData = GetPostData(request.headers.GetBoundary(), data);
|
||||||
|
|||||||
+30
-30
@@ -14,7 +14,7 @@ void HttpRequestParser::Reset()
|
|||||||
m_state = State::MethodStart;
|
m_state = State::MethodStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
Tribool::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
||||||
{
|
{
|
||||||
switch (m_state)
|
switch (m_state)
|
||||||
{
|
{
|
||||||
@@ -27,13 +27,13 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
{
|
{
|
||||||
m_state = State::Method;
|
m_state = State::Method;
|
||||||
request.method.push_back(input);
|
request.method.push_back(input);
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::Method:
|
case State::Method:
|
||||||
if (input == ' ')
|
if (input == ' ')
|
||||||
{
|
{
|
||||||
m_state = State::URI;
|
m_state = State::URI;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (!IsChar(input) || IsCtl(input) || IsTSpecial(input))
|
else if (!IsChar(input) || IsCtl(input) || IsTSpecial(input))
|
||||||
{
|
{
|
||||||
@@ -42,13 +42,13 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
request.method.push_back(input);
|
request.method.push_back(input);
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::URI:
|
case State::URI:
|
||||||
if (input == ' ')
|
if (input == ' ')
|
||||||
{
|
{
|
||||||
m_state = State::HttpVersionH;
|
m_state = State::HttpVersionH;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (IsCtl(input))
|
else if (IsCtl(input))
|
||||||
{
|
{
|
||||||
@@ -57,13 +57,13 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
request.uri.push_back(input);
|
request.uri.push_back(input);
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::HttpVersionH:
|
case State::HttpVersionH:
|
||||||
if (input == 'H')
|
if (input == 'H')
|
||||||
{
|
{
|
||||||
m_state = State::HttpVersionT1;
|
m_state = State::HttpVersionT1;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -73,7 +73,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == 'T')
|
if (input == 'T')
|
||||||
{
|
{
|
||||||
m_state = State::HttpVersionT2;
|
m_state = State::HttpVersionT2;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -83,7 +83,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == 'T')
|
if (input == 'T')
|
||||||
{
|
{
|
||||||
m_state = State::HttpVersionP;
|
m_state = State::HttpVersionP;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -93,7 +93,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == 'P')
|
if (input == 'P')
|
||||||
{
|
{
|
||||||
m_state = State::HttpVersionSlash;
|
m_state = State::HttpVersionSlash;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -105,7 +105,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
request.httpVersionMajor = 0;
|
request.httpVersionMajor = 0;
|
||||||
request.httpVersionMinor = 0;
|
request.httpVersionMinor = 0;
|
||||||
m_state = State::HttpVersionMajorStart;
|
m_state = State::HttpVersionMajorStart;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -116,7 +116,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
{
|
{
|
||||||
request.httpVersionMajor = request.httpVersionMajor * 10 + input - '0';
|
request.httpVersionMajor = request.httpVersionMajor * 10 + input - '0';
|
||||||
m_state = State::HttpVersionMajor;
|
m_state = State::HttpVersionMajor;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -126,12 +126,12 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == '.')
|
if (input == '.')
|
||||||
{
|
{
|
||||||
m_state = State::HttpVersionMinorStart;
|
m_state = State::HttpVersionMinorStart;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (IsDigit(input))
|
else if (IsDigit(input))
|
||||||
{
|
{
|
||||||
request.httpVersionMajor = request.httpVersionMajor * 10 + input - '0';
|
request.httpVersionMajor = request.httpVersionMajor * 10 + input - '0';
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -142,7 +142,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
{
|
{
|
||||||
request.httpVersionMinor = request.httpVersionMinor * 10 + input - '0';
|
request.httpVersionMinor = request.httpVersionMinor * 10 + input - '0';
|
||||||
m_state = State::HttpVersionMinor;
|
m_state = State::HttpVersionMinor;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -152,12 +152,12 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == '\r')
|
if (input == '\r')
|
||||||
{
|
{
|
||||||
m_state = State::ExpectingNewline1;
|
m_state = State::ExpectingNewline1;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (IsDigit(input))
|
else if (IsDigit(input))
|
||||||
{
|
{
|
||||||
request.httpVersionMinor = request.httpVersionMinor * 10 + input - '0';
|
request.httpVersionMinor = request.httpVersionMinor * 10 + input - '0';
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -167,7 +167,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == '\n')
|
if (input == '\n')
|
||||||
{
|
{
|
||||||
m_state = State::HeaderLineStart;
|
m_state = State::HeaderLineStart;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -177,12 +177,12 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == '\r')
|
if (input == '\r')
|
||||||
{
|
{
|
||||||
m_state = State::ExpectingNewline3;
|
m_state = State::ExpectingNewline3;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (!request.headers.empty() && (input == ' ' || input == '\t'))
|
else if (!request.headers.empty() && (input == ' ' || input == '\t'))
|
||||||
{
|
{
|
||||||
m_state = State::HeaderLws;
|
m_state = State::HeaderLws;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (!IsChar(input) || IsCtl(input) || IsTSpecial(input))
|
else if (!IsChar(input) || IsCtl(input) || IsTSpecial(input))
|
||||||
{
|
{
|
||||||
@@ -193,17 +193,17 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
request.headers.push_back(HttpHeader());
|
request.headers.push_back(HttpHeader());
|
||||||
request.headers.back().name.push_back(input);
|
request.headers.back().name.push_back(input);
|
||||||
m_state = State::HeaderName;
|
m_state = State::HeaderName;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::HeaderLws:
|
case State::HeaderLws:
|
||||||
if (input == '\r')
|
if (input == '\r')
|
||||||
{
|
{
|
||||||
m_state = State::ExpectingNewline2;
|
m_state = State::ExpectingNewline2;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (input == ' ' || input == '\t')
|
else if (input == ' ' || input == '\t')
|
||||||
{
|
{
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (IsCtl(input))
|
else if (IsCtl(input))
|
||||||
{
|
{
|
||||||
@@ -213,13 +213,13 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
{
|
{
|
||||||
m_state = State::HeaderValue;
|
m_state = State::HeaderValue;
|
||||||
request.headers.back().value.push_back(input);
|
request.headers.back().value.push_back(input);
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::HeaderName:
|
case State::HeaderName:
|
||||||
if (input == ':')
|
if (input == ':')
|
||||||
{
|
{
|
||||||
m_state = State::SpaceBeforeHeaderValue;
|
m_state = State::SpaceBeforeHeaderValue;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (!IsChar(input) || IsCtl(input) || IsTSpecial(input))
|
else if (!IsChar(input) || IsCtl(input) || IsTSpecial(input))
|
||||||
{
|
{
|
||||||
@@ -228,13 +228,13 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
request.headers.back().name.push_back(input);
|
request.headers.back().name.push_back(input);
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::SpaceBeforeHeaderValue:
|
case State::SpaceBeforeHeaderValue:
|
||||||
if (input == ' ')
|
if (input == ' ')
|
||||||
{
|
{
|
||||||
m_state = State::HeaderValue;
|
m_state = State::HeaderValue;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -244,7 +244,7 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
if (input == '\r')
|
if (input == '\r')
|
||||||
{
|
{
|
||||||
m_state = State::ExpectingNewline2;
|
m_state = State::ExpectingNewline2;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else if (IsCtl(input))
|
else if (IsCtl(input))
|
||||||
{
|
{
|
||||||
@@ -253,13 +253,13 @@ Utilities::Tribool HttpRequestParser::Consume(HttpRequest& request, char input)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
request.headers.back().value.push_back(input);
|
request.headers.back().value.push_back(input);
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
case State::ExpectingNewline2:
|
case State::ExpectingNewline2:
|
||||||
if (input == '\n')
|
if (input == '\n')
|
||||||
{
|
{
|
||||||
m_state = State::HeaderLineStart;
|
m_state = State::HeaderLineStart;
|
||||||
return Utilities::Tribool::Indeterminate;
|
return Tribool::Tribool::Indeterminate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define HTTP_HTTPREQUESTPARSER_H
|
#define HTTP_HTTPREQUESTPARSER_H
|
||||||
|
|
||||||
#include "HttpRequest.h"
|
#include "HttpRequest.h"
|
||||||
#include "Tribool.h"
|
#include <Tribool.h>
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
|
|
||||||
|
|
||||||
@@ -18,9 +18,9 @@ public:
|
|||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
template <typename InputIterator>
|
template <typename InputIterator>
|
||||||
std::tuple<Utilities::Tribool, InputIterator> Parse(HttpRequest& request, InputIterator begin, InputIterator end)
|
std::tuple<Tribool::Tribool, InputIterator> Parse(HttpRequest& request, InputIterator begin, InputIterator end)
|
||||||
{
|
{
|
||||||
Utilities::Tribool result = Utilities::Tribool::Indeterminate;
|
Tribool::Tribool result = Tribool::Tribool::Indeterminate;
|
||||||
while (begin != end)
|
while (begin != end)
|
||||||
{
|
{
|
||||||
result = Consume(request, *begin++);
|
result = Consume(request, *begin++);
|
||||||
@@ -32,7 +32,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Utilities::Tribool Consume(HttpRequest& request, char input);
|
Tribool::Tribool Consume(HttpRequest& request, char input);
|
||||||
static bool IsChar(int c);
|
static bool IsChar(int c);
|
||||||
static bool IsCtl(int c);
|
static bool IsCtl(int c);
|
||||||
static bool IsTSpecial(int c);
|
static bool IsTSpecial(int c);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "HttpServerImpl.h"
|
#include "HttpServerImpl.h"
|
||||||
#include "Logging.h"
|
#include <Logging.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "HttpConnection.h"
|
#include "HttpConnection.h"
|
||||||
#include "HttpRequestHandler.h"
|
#include "HttpRequestHandler.h"
|
||||||
#include "asio.hpp"
|
#include <asio.hpp>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../../Logging
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../../Utilities
|
||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
../../asio/asio
|
||||||
Reference in New Issue
Block a user