From c5f5d9f0cfd16979b03bb16b033e497c38831859 Mon Sep 17 00:00:00 2001 From: flamingcow Date: Sat, 11 May 2019 21:08:32 -0700 Subject: [PATCH] Spec compliance (Accepts not required, no caching, charset, no buffering) --- firecgi | 2 +- server.cc | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/firecgi b/firecgi index b5b0cbd..89876f5 160000 --- a/firecgi +++ b/firecgi @@ -1 +1 @@ -Subproject commit b5b0cbd599aefa4f8243de1368858023c0a5de5c +Subproject commit 89876f5bd683cc4adddb836188ec5606876c48e7 diff --git a/server.cc b/server.cc index de94b55..2a0a2fd 100644 --- a/server.cc +++ b/server.cc @@ -6,23 +6,16 @@ Server::Server(int port, const std::function)>& cal : callback_(callback), firecgi_server_(port, [this](firecgi::Request* request) { OnRequest(request); }, - 1, - {"HTTP_ACCEPT"}) {} + 1) {} void Server::Serve() { firecgi_server_.Serve(); } void Server::OnRequest(firecgi::Request* request) { - if (request->GetParam("HTTP_ACCEPT") != "text/event-stream") { - LOG(WARNING) << "bad HTTP_ACCEPT: " << request->GetParam("HTTP_ACCEPT"); - request->WriteHeader("Status", "400 Bad Request"); - 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->WriteHeader("Content-Type", "text/event-stream; charset=utf-8"); + request->WriteHeader("Cache-Control", "no-cache"); + request->WriteHeader("X-Accel-Buffering", "no"); request->WriteBody(""); callback_(std::make_unique(request)); }