SMOLNET PORTAL home about changes
iFixing TLS in HAProxy. - 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 da60f209d2f93d5c8b224ccb539d612aff2911f6	/scm/geomyidae/commit/da60f209d2f93d5c8b224ccb539d612aff2911f6.gph	bitreich.org	70
1parent d3a546ebc51a5cb2a96b4fd162a0c448c3db27e5	/scm/geomyidae/commit/d3a546ebc51a5cb2a96b4fd162a0c448c3db27e5.gph	bitreich.org	70
hAuthor: Christoph Lohmann <20h@r-36.net>	URL:mailto:20h@r-36.net	bitreich.org	70
iDate:   Sat, 19 Nov 2022 20:45:42 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
iFixing TLS in HAProxy.	Err	bitreich.org	70
i	Err	bitreich.org	70
iThis makes reading more lines in geomyidae on a request very easy now.	Err	bitreich.org	70
iAs a downside, the receiving is just one byte, until there is some NL.	Err	bitreich.org	70
iThis can be slow on really old computers.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M main.c                              |      23 +++++++----------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 7 insertions(+), 16 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@@ -917,6 +917,9 @@ main(int argc, char *argv[])	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+                        rlen = 0;	Err	bitreich.org	70
i+                        memset(recvb, 0, sizeof(recvb));	Err	bitreich.org	70
i+	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@@ -955,14 +958,14 @@ read_selector_again:	Err	bitreich.org	70
i #ifdef ENABLE_TLS	Err	bitreich.org	70
i                                 if (istls) {	Err	bitreich.org	70
i                                         retl = tls_read(tlsclientctx,	Err	bitreich.org	70
i-                                                recvb+rlen, sizeof(recvb)-1-rlen);	Err	bitreich.org	70
i+                                                recvb+rlen, 1);	Err	bitreich.org	70
i                                         if (retl < 0)	Err	bitreich.org	70
i                                                 fprintf(stderr, "tls_read failed: %s\n", tls_error(tlsclientctx));	Err	bitreich.org	70
i                                 } else	Err	bitreich.org	70
i #endif /* ENABLE_TLS */	Err	bitreich.org	70
i                                 {	Err	bitreich.org	70
i                                         retl = read(sock, recvb+rlen,	Err	bitreich.org	70
i-                                                sizeof(recvb)-1-rlen);	Err	bitreich.org	70
i+                                                1);	Err	bitreich.org	70
i                                         if (retl < 0)	Err	bitreich.org	70
i                                                 perror("read");	Err	bitreich.org	70
i                                 }	Err	bitreich.org	70
i@@ -979,13 +982,6 @@ read_selector_again:	Err	bitreich.org	70
i                          * TODO: Add other protocol version support.	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@@ -1028,15 +1024,10 @@ read_selector_again:	Err	bitreich.org	70
i                                 }	Err	bitreich.org	70
i                                 if (loglvl & CONN) {	Err	bitreich.org	70
i                                         logentry(clienth, clientp, "-",	Err	bitreich.org	70
i-                                                        "haproxy connected");	Err	bitreich.org	70
i+                                                        "haproxy connection");	Err	bitreich.org	70
i                                 }	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+                                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
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/geomyidae/commit/da60f209d2f9...
Content-Typetext/plain; charset=utf-8