New targets, use variadic WriteBody()

This commit is contained in:
flamingcow
2019-05-09 23:23:09 -07:00
parent 4103dea501
commit edfafa001f
4 changed files with 24 additions and 17 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
*.so
*.o
*.a
example_clock

View File

@@ -1,30 +1,42 @@
FIRE_CXX ?= clang++
FIRE_CXXFLAGS ?= -O3 -std=gnu++2a -Wall -Werror
FIRE_CXXFLAGS ?= -O3 -std=gnu++2a -Wall -Werror -Wextra -fPIE -fPIC -fstack-protector-strong -fsanitize=safe-stack -fsanitize=safe-stack
FIRE_LDFLAGS ?= -fuse-ld=gold -flto -Wl,-z,relro -Wl,-z,now
FIRE_LDLIBS ?= -lgflags -lglog -lpthread
all: firesse.a firesse.o example_clock
all: firesse.a firesse.o firesse.so example_clock
objects = server.o stream.o
firecgi/firecgi.o:
$(MAKE) --directory=firecgi
$(MAKE) --directory=firecgi firecgi.o
firesse.a: $(objects)
ar rcs $@ $^
firesse.o: $(objects) firecgi/firecgi.o
ld --relocatable --output=$@ $+
gold -z relro -z now -r --output=$@ $+
firesse.so: $(objects) firecgi/firecgi.o
$(FIRE_CXX) $(FIRE_CXXFLAGS) $(FIRE_LDFLAGS) -shared -o $@ $+ $(FIRE_LDFLIBS)
example_clock: example_clock.o firesse.o
$(FIRE_CXX) $(FIRE_CXXFLAGS) -o $@ $+ $(FIRE_LDLIBS)
$(FIRE_CXX) $(FIRE_CXXFLAGS) $(FIRE_LDFLAGS) -pie -o $@ $+ $(FIRE_LDLIBS)
%.o: %.cc *.h Makefile
$(FIRE_CXX) $(FIRE_CXXFLAGS) -c -o $@ $<
clean:
$(MAKE) --directory=firecgi clean
rm --force example_clock *.o *.a
rm --force example_clock *.so *.o *.a
asan:
$(MAKE) clean
FIRE_CXXFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer -std=gnu++2a -Wall -Werror" $(MAKE) all
FIRE_CXXFLAGS="-O1 -g -fsanitize=address -fno-omit-frame-pointer -std=gnu++2a -fPIE -fPIC" $(MAKE) all
tsan:
$(MAKE) clean
FIRE_CXXFLAGS="-O1 -g -fsanitize=thread -std=gnu++2a -fPIE -fPIC" $(MAKE) all
ubsan:
$(MAKE) clean
FIRE_CXXFLAGS="-O1 -g -fsanitize=undefined -std=gnu++2a -fPIE -fPIC" $(MAKE) all

Submodule firecgi updated: 1cba4ac1ae...8bd0813161

View File

@@ -7,18 +7,12 @@ Stream::Stream(firecgi::Request* request)
bool Stream::WriteEvent(const std::string& data, uint64_t id, const std::string& type) {
if (id) {
request_->WriteBody("id: ");
request_->WriteBody(std::to_string(id));
request_->WriteBody("\n");
request_->WriteBody("id: ", std::to_string(id), "\n");
}
if (!type.empty()) {
request_->WriteBody("event: ");
request_->WriteBody(type);
request_->WriteBody("\n");
request_->WriteBody("event: ", type, "\n");
}
request_->WriteBody("data: ");
request_->WriteBody(data);
request_->WriteBody("\n\n");
request_->WriteBody("data: ", data, "\n");
return request_->Flush();
}