SMOLNET PORTAL home about changes
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
Original URLgopher://bitreich.org/0/scm/geomyidae/commit/8de0a5087833...
Content-Typetext/plain; charset=utf-8