Convenience constructor for FastCGIHeader

This commit is contained in:
Ian Gulliver
2019-04-28 18:22:49 +00:00
parent 9d4f3241fe
commit 96a4468913
2 changed files with 10 additions and 14 deletions

View File

@@ -3,7 +3,13 @@
#include <arpa/inet.h>
struct FastCGIHeader {
uint8_t version;
FastCGIHeader(uint8_t type_in, uint16_t request_id, uint16_t content_length)
: type(type_in) {
SetRequestId(request_id);
SetContentLength(content_length);
}
uint8_t version = 1;
uint8_t type;
private:
uint16_t request_id_; // network byte order

View File

@@ -40,21 +40,11 @@ void FastCGIRequest::WriteBody(const std::string_view& body) {
}
void FastCGIRequest::End() {
FastCGIHeader output_header;
FastCGIHeader end_header;
FastCGIEndRequest end;
const auto output_len = out_buf_.ReadMaxLen();
output_header.version = 1;
output_header.type = 6;
output_header.SetRequestId(request_id_);
output_header.SetContentLength(output_len);
end_header.version = 1;
end_header.type = 3;
end_header.SetRequestId(request_id_);
end_header.SetContentLength(sizeof(end));
FastCGIHeader output_header(6, request_id_, output_len);
FastCGIEndRequest end;
FastCGIHeader end_header(3, request_id_, sizeof(end));
std::vector<iovec> vecs{
iovec{