| Fixing TLS in HAProxy. - geomyidae - A small C-based gopherd. | |
| git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| README | |
| LICENSE | |
| --- | |
| commit da60f209d2f93d5c8b224ccb539d612aff2911f6 | |
| parent d3a546ebc51a5cb2a96b4fd162a0c448c3db27e5 | |
| Author: Christoph Lohmann <[email protected]> | |
| Date: Sat, 19 Nov 2022 20:45:42 +0100 | |
| Fixing TLS in HAProxy. | |
| This makes reading more lines in geomyidae on a request very easy now. | |
| As a downside, the receiving is just one byte, until there is some NL. | |
| This can be slow on really old computers. | |
| Diffstat: | |
| M main.c | 23 +++++++---------------- | |
| 1 file changed, 7 insertions(+), 16 deletions(-) | |
| --- | |
| diff --git a/main.c b/main.c | |
| @@ -917,6 +917,9 @@ main(int argc, char *argv[]) | |
| #endif /* __OpenBSD__ */ | |
| read_selector_again: | |
| + rlen = 0; | |
| + memset(recvb, 0, sizeof(recvb)); | |
| + | |
| if (recv(sock, &byte0, 1, MSG_PEEK) < 1) | |
| return 1; | |
| @@ -955,14 +958,14 @@ read_selector_again: | |
| #ifdef ENABLE_TLS | |
| if (istls) { | |
| retl = tls_read(tlsclientctx, | |
| - recvb+rlen, sizeof(recvb)-1-rl… | |
| + recvb+rlen, 1); | |
| if (retl < 0) | |
| fprintf(stderr, "tls_read fail… | |
| } else | |
| #endif /* ENABLE_TLS */ | |
| { | |
| retl = read(sock, recvb+rlen, | |
| - sizeof(recvb)-1-rlen); | |
| + 1); | |
| if (retl < 0) | |
| perror("read"); | |
| } | |
| @@ -979,13 +982,6 @@ read_selector_again: | |
| * TODO: Add other protocol version support. | |
| */ | |
| if (dohaproxy && !strncmp(recvb, "PROXY TCP", 9)) { | |
| - /* | |
| - * In case more than proxy tcp was read, | |
| - * be pepared. | |
| - */ | |
| - p = strchr(recvb, '\n'); | |
| - if (p == NULL) | |
| - return 1; | |
| if (p[-1] == '\r') | |
| p[-1] = '\0'; | |
| *p++ = '\0'; | |
| @@ -1028,15 +1024,10 @@ read_selector_again: | |
| } | |
| if (loglvl & CONN) { | |
| logentry(clienth, clientp, "-", | |
| - "haproxy connected"); | |
| + "haproxy connection"); | |
| } | |
| - printf("clienth = %s, clientp = %s, serverh = … | |
| - clienth, clientp, serverh, ser… | |
| - /* Realign recvb to new value. */ | |
| - memmove(recvb, p, sizeof(recvb)-(p-recvb)); | |
| - if (strlen(recvb) < 1) | |
| - goto read_selector_again; | |
| + goto read_selector_again; | |
| } | |
| #ifdef ENABLE_TLS |