Spec compliance (Accepts not required, no caching, charset, no buffering)
This commit is contained in:
2
firecgi
2
firecgi
Submodule firecgi updated: b5b0cbd599...89876f5bd6
15
server.cc
15
server.cc
@@ -6,23 +6,16 @@ Server::Server(int port, const std::function<void(std::unique_ptr<Stream>)>& cal
|
|||||||
: callback_(callback),
|
: callback_(callback),
|
||||||
firecgi_server_(port,
|
firecgi_server_(port,
|
||||||
[this](firecgi::Request* request) { OnRequest(request); },
|
[this](firecgi::Request* request) { OnRequest(request); },
|
||||||
1,
|
1) {}
|
||||||
{"HTTP_ACCEPT"}) {}
|
|
||||||
|
|
||||||
void Server::Serve() {
|
void Server::Serve() {
|
||||||
firecgi_server_.Serve();
|
firecgi_server_.Serve();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Server::OnRequest(firecgi::Request* request) {
|
void Server::OnRequest(firecgi::Request* request) {
|
||||||
if (request->GetParam("HTTP_ACCEPT") != "text/event-stream") {
|
request->WriteHeader("Content-Type", "text/event-stream; charset=utf-8");
|
||||||
LOG(WARNING) << "bad HTTP_ACCEPT: " << request->GetParam("HTTP_ACCEPT");
|
request->WriteHeader("Cache-Control", "no-cache");
|
||||||
request->WriteHeader("Status", "400 Bad Request");
|
request->WriteHeader("X-Accel-Buffering", "no");
|
||||||
request->WriteHeader("Content-Type", "text-plain");
|
|
||||||
request->WriteBody("No \"Accept: text/event-stream\" header found in request. Please call this endpoint using EventSource.");
|
|
||||||
request->End();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
request->WriteHeader("Content-Type", "text/event-stream");
|
|
||||||
request->WriteBody("");
|
request->WriteBody("");
|
||||||
callback_(std::make_unique<Stream>(request));
|
callback_(std::make_unique<Stream>(request));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user