From fa54bb75ff65b1eca0e36ef2d4d4579dbce4b28e Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Thu, 21 May 2026 03:30:09 +0000 Subject: Add tipidee/fcgi.h --- src/libtipidee/deps-lib/tipidee | 14 ++++++++++++++ src/libtipidee/tipidee_fcgi_beginrequest_body_pack.c | 14 ++++++++++++++ src/libtipidee/tipidee_fcgi_beginrequest_body_unpack.c | 14 ++++++++++++++ src/libtipidee/tipidee_fcgi_beginrequest_record_pack.c | 9 +++++++++ src/libtipidee/tipidee_fcgi_beginrequest_record_unpack.c | 9 +++++++++ src/libtipidee/tipidee_fcgi_endrequest_body_pack.c | 14 ++++++++++++++ src/libtipidee/tipidee_fcgi_endrequest_body_unpack.c | 14 ++++++++++++++ src/libtipidee/tipidee_fcgi_endrequest_record_pack.c | 9 +++++++++ src/libtipidee/tipidee_fcgi_endrequest_record_unpack.c | 9 +++++++++ src/libtipidee/tipidee_fcgi_header_pack.c | 15 +++++++++++++++ src/libtipidee/tipidee_fcgi_header_unpack.c | 14 ++++++++++++++ src/libtipidee/tipidee_fcgi_unknowntype_body_pack.c | 11 +++++++++++ src/libtipidee/tipidee_fcgi_unknowntype_body_unpack.c | 11 +++++++++++ src/libtipidee/tipidee_fcgi_unknowntype_record_pack.c | 9 +++++++++ src/libtipidee/tipidee_fcgi_unknowntype_record_unpack.c | 9 +++++++++ 15 files changed, 175 insertions(+) create mode 100644 src/libtipidee/tipidee_fcgi_beginrequest_body_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_beginrequest_body_unpack.c create mode 100644 src/libtipidee/tipidee_fcgi_beginrequest_record_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_beginrequest_record_unpack.c create mode 100644 src/libtipidee/tipidee_fcgi_endrequest_body_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_endrequest_body_unpack.c create mode 100644 src/libtipidee/tipidee_fcgi_endrequest_record_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_endrequest_record_unpack.c create mode 100644 src/libtipidee/tipidee_fcgi_header_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_header_unpack.c create mode 100644 src/libtipidee/tipidee_fcgi_unknowntype_body_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_unknowntype_body_unpack.c create mode 100644 src/libtipidee/tipidee_fcgi_unknowntype_record_pack.c create mode 100644 src/libtipidee/tipidee_fcgi_unknowntype_record_unpack.c (limited to 'src/libtipidee') diff --git a/src/libtipidee/deps-lib/tipidee b/src/libtipidee/deps-lib/tipidee index b0b2c08..1a73f52 100644 --- a/src/libtipidee/deps-lib/tipidee +++ b/src/libtipidee/deps-lib/tipidee @@ -10,6 +10,20 @@ tipidee_conf_get_responseheaders.o tipidee_conf_get_string.o tipidee_conf_get_uint32.o tipidee_conf_init.o +tipidee_fcgi_beginrequest_body_pack.o +tipidee_fcgi_beginrequest_body_unpack.o +tipidee_fcgi_beginrequest_record_pack.o +tipidee_fcgi_beginrequest_record_unpack.o +tipidee_fcgi_endrequest_body_pack.o +tipidee_fcgi_endrequest_body_unpack.o +tipidee_fcgi_endrequest_record_pack.o +tipidee_fcgi_endrequest_record_unpack.o +tipidee_fcgi_header_pack.o +tipidee_fcgi_header_unpack.o +tipidee_fcgi_unknowntype_body_pack.o +tipidee_fcgi_unknowntype_body_unpack.o +tipidee_fcgi_unknowntype_record_pack.o +tipidee_fcgi_unknowntype_record_unpack.o tipidee_headers_get_content_length.o tipidee_headers_init.o tipidee_headers_parse.o diff --git a/src/libtipidee/tipidee_fcgi_beginrequest_body_pack.c b/src/libtipidee/tipidee_fcgi_beginrequest_body_pack.c new file mode 100644 index 0000000..400be69 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_beginrequest_body_pack.c @@ -0,0 +1,14 @@ +/* ISC license. */ + +#include + +#include + +#include + +void tipidee_fcgi_beginrequest_body_pack (char *s, fcgi_beginrequest_body const *bd) +{ + uint16_pack_big(s, bd->role) ; s += 2 ; + *s++ = bd->flags ; + memset(s, 0, 5) ; +} diff --git a/src/libtipidee/tipidee_fcgi_beginrequest_body_unpack.c b/src/libtipidee/tipidee_fcgi_beginrequest_body_unpack.c new file mode 100644 index 0000000..a729b03 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_beginrequest_body_unpack.c @@ -0,0 +1,14 @@ +/* ISC license. */ + +#include + +#include + +#include + +void tipidee_fcgi_beginrequest_body_unpack (char const *s, fcgi_beginrequest_body *bd) +{ + uint16_unpack_big(s, &bd->role) ; s += 2 ; + bd->flags = *s++ ; + memcpy((char *)bd->reserved, s, 5) ; s += 5 ; +} diff --git a/src/libtipidee/tipidee_fcgi_beginrequest_record_pack.c b/src/libtipidee/tipidee_fcgi_beginrequest_record_pack.c new file mode 100644 index 0000000..3329e8d --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_beginrequest_record_pack.c @@ -0,0 +1,9 @@ +/* ISC license. */ + +#include + +void tipidee_fcgi_beginrequest_record_pack (char *s, fcgi_beginrequest_record const *rec) +{ + tipidee_fcgi_header_pack(s, &rec->header) ; s += 8 ; + tipidee_fcgi_beginrequest_body_pack(s, &rec->body) ; +} diff --git a/src/libtipidee/tipidee_fcgi_beginrequest_record_unpack.c b/src/libtipidee/tipidee_fcgi_beginrequest_record_unpack.c new file mode 100644 index 0000000..c68a08f --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_beginrequest_record_unpack.c @@ -0,0 +1,9 @@ +/* ISC license. */ + +#include + +void tipidee_fcgi_beginrequest_record_unpack (char const *s, fcgi_beginrequest_record *rec) +{ + tipidee_fcgi_header_unpack(s, &rec->header) ; s += 8 ; + tipidee_fcgi_beginrequest_body_unpack(s, &rec->body) ; +} diff --git a/src/libtipidee/tipidee_fcgi_endrequest_body_pack.c b/src/libtipidee/tipidee_fcgi_endrequest_body_pack.c new file mode 100644 index 0000000..d289d6d --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_endrequest_body_pack.c @@ -0,0 +1,14 @@ +/* ISC license. */ + +#include + +#include + +#include + +void tipidee_fcgi_endrequest_body_pack (char *s, fcgi_endrequest_body const *bd) +{ + uint32_pack_big(s, bd->appstatus) ; s += 4 ; + *s++ = bd->protostatus ; + memset(s, 0, 3) ; +} diff --git a/src/libtipidee/tipidee_fcgi_endrequest_body_unpack.c b/src/libtipidee/tipidee_fcgi_endrequest_body_unpack.c new file mode 100644 index 0000000..9f52f18 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_endrequest_body_unpack.c @@ -0,0 +1,14 @@ +/* ISC license. */ + +#include + +#include + +#include + +void tipidee_fcgi_endrequest_body_unpack (char const *s, fcgi_endrequest_body *bd) +{ + uint32_unpack_big(s, &bd->appstatus) ; s += 4 ; + bd->protostatus = *s++ ; + memcpy((char *)bd->reserved, s, 3) ; s += 3 ; +} diff --git a/src/libtipidee/tipidee_fcgi_endrequest_record_pack.c b/src/libtipidee/tipidee_fcgi_endrequest_record_pack.c new file mode 100644 index 0000000..46f3ee9 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_endrequest_record_pack.c @@ -0,0 +1,9 @@ +/* ISC license. */ + +#include + +void tipidee_fcgi_endrequest_record_pack (char *s, fcgi_endrequest_record const *rec) +{ + tipidee_fcgi_header_pack(s, &rec->header) ; s += 8 ; + tipidee_fcgi_endrequest_body_pack(s, &rec->body) ; +} diff --git a/src/libtipidee/tipidee_fcgi_endrequest_record_unpack.c b/src/libtipidee/tipidee_fcgi_endrequest_record_unpack.c new file mode 100644 index 0000000..dc0acd5 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_endrequest_record_unpack.c @@ -0,0 +1,9 @@ +/* ISC license. */ + +#include + +void tipidee_fcgi_endrequest_record_unpack (char const *s, fcgi_endrequest_record *rec) +{ + tipidee_fcgi_header_unpack(s, &rec->header) ; s += 8 ; + tipidee_fcgi_endrequest_body_unpack(s, &rec->body) ; +} diff --git a/src/libtipidee/tipidee_fcgi_header_pack.c b/src/libtipidee/tipidee_fcgi_header_pack.c new file mode 100644 index 0000000..2f1a550 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_header_pack.c @@ -0,0 +1,15 @@ +/* ISC license. */ + +#include + +#include + +void tipidee_fcgi_header_pack (char *s, fcgi_header const *hdr) +{ + *s++ = hdr->version ; + *s++ = hdr->type ; + uint16_pack_big(s, hdr->requestid) ; s += 2 ; + uint16_pack_big(s, hdr->len) ; s += 2 ; + *s++ = hdr->padlen ; + *s++ = 0 ; +} diff --git a/src/libtipidee/tipidee_fcgi_header_unpack.c b/src/libtipidee/tipidee_fcgi_header_unpack.c new file mode 100644 index 0000000..53debd7 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_header_unpack.c @@ -0,0 +1,14 @@ +/* ISC license. */ + +#include + +#include + +void tipidee_fcgi_header_unpack (char const *s, fcgi_header *hdr) +{ + hdr->version = *s++ ; + hdr->type = *s++ ; + uint16_unpack_big(s, &hdr->requestid) ; s += 2 ; + uint16_unpack_big(s, &hdr->len) ; s += 2 ; + hdr->padlen = *s++ ; +} diff --git a/src/libtipidee/tipidee_fcgi_unknowntype_body_pack.c b/src/libtipidee/tipidee_fcgi_unknowntype_body_pack.c new file mode 100644 index 0000000..f99da8f --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_unknowntype_body_pack.c @@ -0,0 +1,11 @@ +/* ISC license. */ + +#include + +#include + +void tipidee_fcgi_unknowntype_body_pack (char *s, fcgi_unknowntype_body const *bd) +{ + *s++ = bd->type ; + memset(s, 0, 7) ; +} diff --git a/src/libtipidee/tipidee_fcgi_unknowntype_body_unpack.c b/src/libtipidee/tipidee_fcgi_unknowntype_body_unpack.c new file mode 100644 index 0000000..eb0684c --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_unknowntype_body_unpack.c @@ -0,0 +1,11 @@ +/* ISC license. */ + +#include + +#include + +void tipidee_fcgi_unknowntype_body_unpack (char const *s, fcgi_unknowntype_body *bd) +{ + bd->type = *s++ ; + memcpy((char *)bd->reserved, s, 7) ; s += 7 ; +} diff --git a/src/libtipidee/tipidee_fcgi_unknowntype_record_pack.c b/src/libtipidee/tipidee_fcgi_unknowntype_record_pack.c new file mode 100644 index 0000000..9d962e2 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_unknowntype_record_pack.c @@ -0,0 +1,9 @@ +/* ISC license. */ + +#include + +void tipidee_fcgi_unknowntype_record_pack (char *s, fcgi_unknowntype_record const *rec) +{ + tipidee_fcgi_header_pack(s, &rec->header) ; s += 8 ; + tipidee_fcgi_unknowntype_body_pack(s, &rec->body) ; +} diff --git a/src/libtipidee/tipidee_fcgi_unknowntype_record_unpack.c b/src/libtipidee/tipidee_fcgi_unknowntype_record_unpack.c new file mode 100644 index 0000000..24c6631 --- /dev/null +++ b/src/libtipidee/tipidee_fcgi_unknowntype_record_unpack.c @@ -0,0 +1,9 @@ +/* ISC license. */ + +#include + +void tipidee_fcgi_unknowntype_record_unpack (char const *s, fcgi_unknowntype_record *rec) +{ + tipidee_fcgi_header_unpack(s, &rec->header) ; s += 8 ; + tipidee_fcgi_unknowntype_body_unpack(s, &rec->body) ; +} -- cgit v1.3.1