Adapt to firecgi API change, add asan target, new Makefile ar merge method
This commit is contained in:
16
Makefile
16
Makefile
@@ -6,13 +6,15 @@ all: firesse.a example_clock
|
|||||||
|
|
||||||
objects = firesse.o stream.o
|
objects = firesse.o stream.o
|
||||||
|
|
||||||
firesse.a: $(objects)
|
_firecgi:
|
||||||
$(MAKE) --directory=firecgi
|
$(MAKE) --directory=firecgi
|
||||||
ar rcs $@ $^
|
|
||||||
|
|
||||||
example_clock: example_clock.o $(objects)
|
firesse.a: $(objects) _firecgi
|
||||||
$(MAKE) --directory=firecgi
|
ar x firecgi/firecgi.a
|
||||||
$(FIRE_CXX) $(FIRE_CXXFLAGS) -o $@ $+ firecgi/firecgi.a firecgi/firebuf/firebuf.a $(FIRE_LDLIBS)
|
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
|
%.o: %.cc *.h Makefile
|
||||||
$(FIRE_CXX) $(FIRE_CXXFLAGS) -c -o $@ $<
|
$(FIRE_CXX) $(FIRE_CXXFLAGS) -c -o $@ $<
|
||||||
@@ -20,3 +22,7 @@ example_clock: example_clock.o $(objects)
|
|||||||
clean:
|
clean:
|
||||||
$(MAKE) --directory=firecgi clean
|
$(MAKE) --directory=firecgi clean
|
||||||
rm --force example_clock *.o *.a
|
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
|
||||||
|
|||||||
2
firecgi
2
firecgi
Submodule firecgi updated: c571e47bae...90ce269869
@@ -5,7 +5,7 @@ namespace firesse {
|
|||||||
Server::Server(int port, const std::function<void(std::unique_ptr<Stream>)>& callback)
|
Server::Server(int port, const std::function<void(std::unique_ptr<Stream>)>& callback)
|
||||||
: callback_(callback),
|
: callback_(callback),
|
||||||
firecgi_server_(port,
|
firecgi_server_(port,
|
||||||
[this](std::unique_ptr<firecgi::Request> request) { OnRequest(std::move(request)); },
|
[this](firecgi::Request* request) { OnRequest(request); },
|
||||||
1,
|
1,
|
||||||
{"HTTP_ACCEPT"}) {}
|
{"HTTP_ACCEPT"}) {}
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ void Server::Serve() {
|
|||||||
firecgi_server_.Serve();
|
firecgi_server_.Serve();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Server::OnRequest(std::unique_ptr<firecgi::Request> request) {
|
void Server::OnRequest(firecgi::Request* request) {
|
||||||
if (request->GetParam("HTTP_ACCEPT") != "text/event-stream") {
|
if (request->GetParam("HTTP_ACCEPT") != "text/event-stream") {
|
||||||
LOG(WARNING) << "bad HTTP_ACCEPT: " << request->GetParam("HTTP_ACCEPT");
|
LOG(WARNING) << "bad HTTP_ACCEPT: " << request->GetParam("HTTP_ACCEPT");
|
||||||
request->WriteHeader("Status", "400 Bad Request");
|
request->WriteHeader("Status", "400 Bad Request");
|
||||||
@@ -24,7 +24,7 @@ void Server::OnRequest(std::unique_ptr<firecgi::Request> request) {
|
|||||||
}
|
}
|
||||||
request->WriteHeader("Content-Type", "text/event-stream");
|
request->WriteHeader("Content-Type", "text/event-stream");
|
||||||
request->WriteBody("");
|
request->WriteBody("");
|
||||||
callback_(std::make_unique<Stream>(std::move(request)));
|
callback_(std::make_unique<Stream>(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace firesse
|
} // namespace firesse
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class Server {
|
|||||||
void Serve();
|
void Serve();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnRequest(std::unique_ptr<firecgi::Request> request);
|
void OnRequest(firecgi::Request* request);
|
||||||
|
|
||||||
std::function<void(std::unique_ptr<Stream>)> callback_;
|
std::function<void(std::unique_ptr<Stream>)> callback_;
|
||||||
firecgi::Server firecgi_server_;
|
firecgi::Server firecgi_server_;
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace firesse {
|
namespace firesse {
|
||||||
|
|
||||||
Stream::Stream(std::unique_ptr<firecgi::Request> request)
|
Stream::Stream(firecgi::Request* request)
|
||||||
: request_(std::move(request)) {}
|
: request_(request) {}
|
||||||
|
|
||||||
bool Stream::WriteEvent(const std::string& data, uint64_t id, const std::string& type) {
|
bool Stream::WriteEvent(const std::string& data, uint64_t id, const std::string& type) {
|
||||||
if (id) {
|
if (id) {
|
||||||
|
|||||||
4
stream.h
4
stream.h
@@ -8,13 +8,13 @@ namespace firesse {
|
|||||||
|
|
||||||
class Stream {
|
class Stream {
|
||||||
public:
|
public:
|
||||||
Stream(std::unique_ptr<firecgi::Request> request);
|
Stream(firecgi::Request* request);
|
||||||
|
|
||||||
[[nodiscard]] bool WriteEvent(const std::string& data, uint64_t id=0, const std::string& type="");
|
[[nodiscard]] bool WriteEvent(const std::string& data, uint64_t id=0, const std::string& type="");
|
||||||
bool End();
|
bool End();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<firecgi::Request> request_;
|
firecgi::Request* request_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace firesse
|
} // namespace firesse
|
||||||
|
|||||||
Reference in New Issue
Block a user