Commit 77517298 authored by cyremur's avatar cyremur

add AccessControlAllowOrigin header implementation

parent 2e1dd87a
/* http_header.h /* http_header.h
Mathieu Stefani, 19 August 2015 Mathieu Stefani, 19 August 2015
Declaration of common http headers Declaration of common http headers
*/ */
...@@ -161,6 +161,32 @@ private: ...@@ -161,6 +161,32 @@ private:
std::vector<Mime::MediaType> mediaRange_; std::vector<Mime::MediaType> mediaRange_;
}; };
class AccessControlAllowOrigin : public Header {
public:
NAME("Access-Control-Allow-Origin")
AccessControlAllowOrigin() { }
explicit AccessControlAllowOrigin(const char* uri)
: uri_(uri)
{ }
explicit AccessControlAllowOrigin(const std::string& uri)
: uri_(uri)
{ }
void parse(const std::string& data);
void write(std::ostream& os) const;
void setUri(std::string uri) {
uri_ = std::move(uri);
}
std::string uri() const { return uri_; }
private:
std::string uri_;
};
class CacheControl : public Header { class CacheControl : public Header {
public: public:
NAME("Cache-Control") NAME("Cache-Control")
...@@ -442,4 +468,3 @@ private: ...@@ -442,4 +468,3 @@ private:
} // namespace Http } // namespace Http
} // namespace Net } // namespace Net
/* http_headers.h /* http_headers.h
Mathieu Stefani, 19 August 2015 Mathieu Stefani, 19 August 2015
A list of HTTP headers A list of HTTP headers
*/ */
......
/* http_header.cc /* http_header.cc
Mathieu Stefani, 19 August 2015 Mathieu Stefani, 19 August 2015
Implementation of common HTTP headers described by the RFC Implementation of common HTTP headers described by the RFC
*/ */
...@@ -419,6 +419,16 @@ void ...@@ -419,6 +419,16 @@ void
Accept::write(std::ostream& os) const { Accept::write(std::ostream& os) const {
} }
void
AccessControlAllowOrigin::parse(const std::string& data) {
uri_ = data;
}
void
AccessControlAllowOrigin::write(std::ostream& os) const {
os << uri_;
}
void void
EncodingHeader::parseRaw(const char* str, size_t len) { EncodingHeader::parseRaw(const char* str, size_t len) {
// TODO: case-insensitive // TODO: case-insensitive
......
/* http_headers.cc /* http_headers.cc
Mathieu Stefani, 19 August 2015 Mathieu Stefani, 19 August 2015
Headers registry Headers registry
*/ */
...@@ -21,6 +21,7 @@ namespace { ...@@ -21,6 +21,7 @@ namespace {
} }
RegisterHeader(Accept); RegisterHeader(Accept);
RegisterHeader(AccessControlAllowOrigin);
RegisterHeader(Allow); RegisterHeader(Allow);
RegisterHeader(CacheControl); RegisterHeader(CacheControl);
RegisterHeader(Connection); RegisterHeader(Connection);
...@@ -77,7 +78,7 @@ Registry::isRegistered(const std::string& name) { ...@@ -77,7 +78,7 @@ Registry::isRegistered(const std::string& name) {
Collection& Collection&
Collection::add(const std::shared_ptr<Header>& header) { Collection::add(const std::shared_ptr<Header>& header) {
headers.insert(std::make_pair(header->name(), header)); headers.insert(std::make_pair(header->name(), header));
return *this; return *this;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment