From 3ef9cabbd54fdfb6ca97d601ed048e3e6bd744e6 Mon Sep 17 00:00:00 2001 From: flamingcow Date: Tue, 7 May 2019 23:26:48 -0700 Subject: [PATCH] Adapt to firecgi API change, add asan target, new Makefile ar merge method --- Makefile | 16 +++++++++++----- firecgi | 2 +- firesse.cc | 6 +++--- firesse.h | 2 +- stream.cc | 4 ++-- stream.h | 4 ++-- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index b43042d..eef62dd 100644 --- a/Makefile +++ b/Makefile @@ -6,13 +6,15 @@ all: firesse.a example_clock objects = firesse.o stream.o -firesse.a: $(objects) +_firecgi: $(MAKE) --directory=firecgi - ar rcs $@ $^ -example_clock: example_clock.o $(objects) - $(MAKE) --directory=firecgi - $(FIRE_CXX) $(FIRE_CXXFLAGS) -o $@ $+ firecgi/firecgi.a firecgi/firebuf/firebuf.a $(FIRE_LDLIBS) +firesse.a: $(objects) _firecgi + ar x firecgi/firecgi.a + ar rcs $@ $(objects) $(shell ar t firecgi/firecgi.a) + +example_clock: example_clock.o firesse.a + $(FIRE_CXX) $(FIRE_CXXFLAGS) -o $@ $+ $(FIRE_LDLIBS) %.o: %.cc *.h Makefile $(FIRE_CXX) $(FIRE_CXXFLAGS) -c -o $@ $< @@ -20,3 +22,7 @@ example_clock: example_clock.o $(objects) clean: $(MAKE) --directory=firecgi clean rm --force example_clock *.o *.a + +asan: + $(MAKE) clean + FIRE_CXXFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer -std=gnu++2a -Wall -Werror" $(MAKE) all diff --git a/firecgi b/firecgi index c571e47..90ce269 160000 --- a/firecgi +++ b/firecgi @@ -1 +1 @@ -Subproject commit c571e47bae94cddc442fc28d8c825766e4c69025 +Subproject commit 90ce26986920d0475834354cd351f636042875b7 diff --git a/firesse.cc b/firesse.cc index d8192e1..bb76119 100644 --- a/firesse.cc +++ b/firesse.cc @@ -5,7 +5,7 @@ namespace firesse { Server::Server(int port, const std::function)>& callback) : callback_(callback), firecgi_server_(port, - [this](std::unique_ptr request) { OnRequest(std::move(request)); }, + [this](firecgi::Request* request) { OnRequest(request); }, 1, {"HTTP_ACCEPT"}) {} @@ -13,7 +13,7 @@ void Server::Serve() { firecgi_server_.Serve(); } -void Server::OnRequest(std::unique_ptr request) { +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"); @@ -24,7 +24,7 @@ void Server::OnRequest(std::unique_ptr request) { } request->WriteHeader("Content-Type", "text/event-stream"); request->WriteBody(""); - callback_(std::make_unique(std::move(request))); + callback_(std::make_unique(request)); } } // namespace firesse diff --git a/firesse.h b/firesse.h index 2cb02f4..65d8bd2 100644 --- a/firesse.h +++ b/firesse.h @@ -11,7 +11,7 @@ class Server { void Serve(); private: - void OnRequest(std::unique_ptr request); + void OnRequest(firecgi::Request* request); std::function)> callback_; firecgi::Server firecgi_server_; diff --git a/stream.cc b/stream.cc index b6fc372..7a448f9 100644 --- a/stream.cc +++ b/stream.cc @@ -2,8 +2,8 @@ namespace firesse { -Stream::Stream(std::unique_ptr request) - : request_(std::move(request)) {} +Stream::Stream(firecgi::Request* request) + : request_(request) {} bool Stream::WriteEvent(const std::string& data, uint64_t id, const std::string& type) { if (id) { diff --git a/stream.h b/stream.h index 534d619..452dc0b 100644 --- a/stream.h +++ b/stream.h @@ -8,13 +8,13 @@ namespace firesse { class Stream { public: - Stream(std::unique_ptr request); + Stream(firecgi::Request* request); [[nodiscard]] bool WriteEvent(const std::string& data, uint64_t id=0, const std::string& type=""); bool End(); private: - std::unique_ptr request_; + firecgi::Request* request_; }; } // namespace firesse