aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtipidee
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2026-05-21 03:30:09 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2026-05-21 03:30:09 +0000
commitfa54bb75ff65b1eca0e36ef2d4d4579dbce4b28e (patch)
treeee382de101a4a46f598f2edbb1d868734293ca34 /src/libtipidee
parentea28bb1a26afef91fbaac7ef06dc91e4def69477 (diff)
downloadtipidee-fa54bb75ff65b1eca0e36ef2d4d4579dbce4b28e.tar.gz
Add tipidee/fcgi.h
Diffstat (limited to 'src/libtipidee')
-rw-r--r--src/libtipidee/deps-lib/tipidee14
-rw-r--r--src/libtipidee/tipidee_fcgi_beginrequest_body_pack.c14
-rw-r--r--src/libtipidee/tipidee_fcgi_beginrequest_body_unpack.c14
-rw-r--r--src/libtipidee/tipidee_fcgi_beginrequest_record_pack.c9
-rw-r--r--src/libtipidee/tipidee_fcgi_beginrequest_record_unpack.c9
-rw-r--r--src/libtipidee/tipidee_fcgi_endrequest_body_pack.c14
-rw-r--r--src/libtipidee/tipidee_fcgi_endrequest_body_unpack.c14
-rw-r--r--src/libtipidee/tipidee_fcgi_endrequest_record_pack.c9
-rw-r--r--src/libtipidee/tipidee_fcgi_endrequest_record_unpack.c9
-rw-r--r--src/libtipidee/tipidee_fcgi_header_pack.c15
-rw-r--r--src/libtipidee/tipidee_fcgi_header_unpack.c14
-rw-r--r--src/libtipidee/tipidee_fcgi_unknowntype_body_pack.c11
-rw-r--r--src/libtipidee/tipidee_fcgi_unknowntype_body_unpack.c11
-rw-r--r--src/libtipidee/tipidee_fcgi_unknowntype_record_pack.c9
-rw-r--r--src/libtipidee/tipidee_fcgi_unknowntype_record_unpack.c9
15 files changed, 175 insertions, 0 deletions
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 <string.h>
+
+#include <skalibs/uint16.h>
+
+#include <tipidee/fcgi.h>
+
+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 <string.h>
+
+#include <skalibs/uint16.h>
+
+#include <tipidee/fcgi.h>
+
+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 <tipidee/fcgi.h>
+
+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 <tipidee/fcgi.h>
+
+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 <string.h>
+
+#include <skalibs/uint32.h>
+
+#include <tipidee/fcgi.h>
+
+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 <string.h>
+
+#include <skalibs/uint32.h>
+
+#include <tipidee/fcgi.h>
+
+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 <tipidee/fcgi.h>
+
+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 <tipidee/fcgi.h>
+
+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 <skalibs/uint16.h>
+
+#include <tipidee/fcgi.h>
+
+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 <skalibs/uint16.h>
+
+#include <tipidee/fcgi.h>
+
+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 <string.h>
+
+#include <tipidee/fcgi.h>
+
+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 <string.h>
+
+#include <tipidee/fcgi.h>
+
+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 <tipidee/fcgi.h>
+
+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 <tipidee/fcgi.h>
+
+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) ;
+}