iFix haproxy support. - geomyidae - A small C-based gopherd. Err bitreich.org 70
hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70
1Log /scm/geomyidae/log.gph bitreich.org 70
1Files /scm/geomyidae/files.gph bitreich.org 70
1Refs /scm/geomyidae/refs.gph bitreich.org 70
1Tags /scm/geomyidae/tag bitreich.org 70
1README /scm/geomyidae/file/README.gph bitreich.org 70
1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 8de0a5087833495b700c7ce4472df52c397c4cd5 /scm/geomyidae/commit/8de0a5087833495b700c7ce4472df52c397c4cd5.gph bitreich.org 70
1parent ef96bd3ac67bd8a63756736a172fe34590d45ea5 /scm/geomyidae/commit/ef96bd3ac67bd8a63756736a172fe34590d45ea5.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Mon, 14 Nov 2022 01:06:49 +0100 Err bitreich.org 70
i Err bitreich.org 70
iFix haproxy support. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M main.c | 26 ++++++++++++++++++++++---- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 22 insertions(+), 4 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/main.c b/main.c /scm/geomyidae/file/main.c.gph bitreich.org 70
i@@ -916,6 +916,7 @@ main(int argc, char *argv[]) Err bitreich.org 70
i } Err bitreich.org 70
i #endif /* __OpenBSD__ */ Err bitreich.org 70
i Err bitreich.org 70
i+read_selector_again: Err bitreich.org 70
i if (recv(sock, &byte0, 1, MSG_PEEK) < 1) Err bitreich.org 70
i return 1; Err bitreich.org 70
i Err bitreich.org 70
i@@ -949,7 +950,6 @@ main(int argc, char *argv[]) Err bitreich.org 70
i return 1; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-read_selector_again: Err bitreich.org 70
i maxrecv = sizeof(recvb) - 1; Err bitreich.org 70
i do { Err bitreich.org 70
i #ifdef ENABLE_TLS Err bitreich.org 70
i@@ -980,6 +980,17 @@ read_selector_again: Err bitreich.org 70
i */ Err bitreich.org 70
i if (dohaproxy && !strncmp(recvb, "PROXY TCP", 9)) { Err bitreich.org 70
i /* Err bitreich.org 70
i+ * In case more than proxy tcp was read, Err bitreich.org 70
i+ * be pepared. Err bitreich.org 70
i+ */ Err bitreich.org 70
i+ p = strchr(recvb, '\n'); Err bitreich.org 70
i+ if (p == NULL) Err bitreich.org 70
i+ return 1; Err bitreich.org 70
i+ if (p[-1] == '\r') Err bitreich.org 70
i+ p[-1] = '\0'; Err bitreich.org 70
i+ *p++ = '\0'; Err bitreich.org 70
i+ Err bitreich.org 70
i+ /* Err bitreich.org 70
i * Be careful, we are using scanf. Err bitreich.org 70
i * TODO: Use some better parsing. Err bitreich.org 70
i */ Err bitreich.org 70
i@@ -1019,7 +1030,13 @@ read_selector_again: Err bitreich.org 70
i logentry(clienth, clientp, "-", Err bitreich.org 70
i "haproxy connected"); Err bitreich.org 70
i } Err bitreich.org 70
i- goto read_selector_again; Err bitreich.org 70
i+ printf("clienth = %s, clientp = %s, serverh = %s, serverp = %s\n", Err bitreich.org 70
i+ clienth, clientp, serverh, serverp); Err bitreich.org 70
i+ Err bitreich.org 70
i+ /* Realign recvb to new value. */ Err bitreich.org 70
i+ memmove(recvb, p, sizeof(recvb)-(p-recvb)); Err bitreich.org 70
i+ if (strlen(recvb) < 1) Err bitreich.org 70
i+ goto read_selector_again; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i #ifdef ENABLE_TLS Err bitreich.org 70
i@@ -1065,8 +1082,9 @@ read_selector_again: Err bitreich.org 70
i #endif /* ENABLE_TLS */ Err bitreich.org 70
i Err bitreich.org 70
i handlerequest(sock, recvb, rlen, base, Err bitreich.org 70
i- ohost, sport, clienth, Err bitreich.org 70
i- clientp, serverh, serverp, Err bitreich.org 70
i+ (dohaproxy)? serverh : ohost, Err bitreich.org 70
i+ (dohaproxy)? serverp : sport, Err bitreich.org 70
i+ clienth, clientp, serverh, serverp, Err bitreich.org 70
i nocgi, istls); Err bitreich.org 70
i Err bitreich.org 70
i if (!istls) { Err bitreich.org 70
.
Response:
text/plain