aboutsummaryrefslogtreecommitdiff
path: root/src/RequestResponse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/RequestResponse.cpp')
-rw-r--r--src/RequestResponse.cpp40
1 files changed, 33 insertions, 7 deletions
diff --git a/src/RequestResponse.cpp b/src/RequestResponse.cpp
index 2567253..803b432 100644
--- a/src/RequestResponse.cpp
+++ b/src/RequestResponse.cpp
@@ -1,6 +1,7 @@
#include "RequestResponse.hpp"
-RequestResponse::RequestResponse(struct evhttp_request * const req) : m_Request(req)
+RequestResponse::RequestResponse(char const * const uri_path, struct evhttp_request * const req)
+ : m_UriPath(uri_path), m_Request(req)
{
}
@@ -18,18 +19,43 @@ void RequestResponse::UseOutputHeader()
m_OutputHeader = evhttp_request_get_output_headers(m_Request);
}
-bool RequestResponse::AddOutputHeaderByRef(std::string & key, std::string & value)
+bool RequestResponse::AddOutputHeaderByRef(std::string const & key, std::string const & value)
{
- return evhttp_add_header(m_OutputHeader, key.c_str(), value.c_str());
+ if (m_OutputHeader == nullptr)
+ {
+ return false;
+ }
+
+ return evhttp_add_header(m_OutputHeader, key.c_str(), value.c_str()) == 0;
}
-bool RequestResponse::AddOutputHeader(std::string key, std::string value)
+bool RequestResponse::AddOutputHeader(std::string const key, std::string const value)
{
return AddOutputHeaderByRef(key, value);
}
-bool RequestResponse::GetInputHeaderByRef(std::string & key, std::string & value)
+bool RequestResponse::RemoveOutputHeaderByRef(std::string const & key)
+{
+ if (m_OutputHeader == nullptr)
+ {
+ return false;
+ }
+
+ return evhttp_remove_header(m_OutputHeader, key.c_str()) == 0;
+}
+
+bool RequestResponse::RemoveOutputHeader(std::string const key)
+{
+ return RemoveOutputHeaderByRef(key);
+}
+
+bool RequestResponse::GetInputHeaderByRef(std::string const & key, std::string & value)
{
+ if (m_InputHeader == nullptr)
+ {
+ return false;
+ }
+
char const * const v = evhttp_find_header(m_InputHeader, key.c_str());
if (v == nullptr)
@@ -41,7 +67,7 @@ bool RequestResponse::GetInputHeaderByRef(std::string & key, std::string & value
return true;
}
-bool RequestResponse::GetInputHeader(std::string key, std::string value)
+bool RequestResponse::GetInputHeader(std::string const key, std::string value)
{
- return GetInputHeader(key, value);
+ return GetInputHeaderByRef(key, value);
}