Introduction
Introduction Statistics Contact Development Disclaimer Help
Add -DENABLE_TLS feature for people not wanting TLS. - geomyidae - A small C-ba…
git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri…
Log
Files
Refs
Tags
README
LICENSE
---
commit c92aa18514694938b21439afff0b8d1ece617b18
parent 0c2fa66d5056ca6cdd6cf69aa7feb416b21a3ff0
Author: Christoph Lohmann <[email protected]>
Date: Sun, 7 Jun 2020 22:29:26 +0200
Add -DENABLE_TLS feature for people not wanting TLS.
Diffstat:
M Makefile | 8 ++++++--
M main.c | 37 ++++++++++++++++++++++++++---…
2 files changed, 38 insertions(+), 7 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -9,8 +9,12 @@ PREFIX = /usr/local
BINDIR = ${PREFIX}/sbin
MANDIR = ${PREFIX}/share/man/man8
-GEOM_CFLAGS = -D_DEFAULT_SOURCE -I. -I/usr/include ${CFLAGS}
-GEOM_LDFLAGS = -L/usr/lib -L. -ltls ${LDFLAGS}
+# Comment to disable TLS support
+TLS_CFLAGS = -DENABLE_TLS
+TLS_LDFLAGS = -ltls
+
+GEOM_CFLAGS = -D_DEFAULT_SOURCE -I. -I/usr/include ${TLS_CFLAGS} ${CFLAGS}
+GEOM_LDFLAGS = -L/usr/lib -L. ${TLS_LDFLAGS} ${LDFLAGS}
SRC = main.c ind.c handlr.c
OBJ = ${SRC:.c=.o}
diff --git a/main.c b/main.c
@@ -25,7 +25,10 @@
#include <arpa/inet.h>
#include <sys/select.h>
#include <sys/time.h>
+
+#ifdef ENABLE_TLS
#include <tls.h>
+#endif /* ENABLE_TLS */
#include "ind.h"
#include "handlr.h"
@@ -398,7 +401,9 @@ void
usage(void)
{
dprintf(2, "usage: %s [-46cden] [-l logfile] "
+#ifdef ENABLE_TLS
"[-t keyfile certfile] "
+#endif /* ENABLE_TLS */
"[-v loglvl] [-b base] [-p port] [-o sport] "
"[-u user] [-g group] [-h host] [-i interface ...]\n",
argv0);
@@ -413,18 +418,27 @@ main(int argc, char *argv[])
socklen_t cltlen;
int sock, dofork = 1, inetf = AF_UNSPEC, usechroot = 0,
nocgi = 0, errno_save, nbindips = 0, i, j,
- nlfdret, *lfdret, listfd, maxlfd, dotls = 0, istls = 0,
- shuflen, wlen, shufpos, tlspipe[2], maxrecv, retl,
+ nlfdret, *lfdret, listfd, maxlfd, istls = 0,
+#ifdef ENABLE_TLS
+ dotls = 0, tlspipe[2], shufbuf[1025],
+ shuflen, wlen, shufpos,
+#endif /* ENABLE_TLS */
+ maxrecv, retl,
rlen = 0;
fd_set rfd;
char *port, *base, clienth[NI_MAXHOST], clientp[NI_MAXSERV],
*user = NULL, *group = NULL, **bindips = NULL,
- *ohost = NULL, *sport = NULL, *p, *certfile = NULL,
- *keyfile = NULL, shufbuf[1025], byte0, recvb[1025];
+ *ohost = NULL, *sport = NULL, *p,
+#ifdef ENABLE_TLS
+ *certfile = NULL, *keyfile = NULL,
+#endif /* ENABLE_TLS */
+ byte0, recvb[1025];
struct passwd *us = NULL;
struct group *gr = NULL;
+#ifdef ENABLE_TLS
struct tls_config *tlsconfig = NULL;
struct tls *tlsctx = NULL, *tlsclientctx;
+#endif /* ENABLE_TLS */
base = stdbase;
port = stdport;
@@ -478,11 +492,13 @@ main(int argc, char *argv[])
case 'n':
revlookup = 0;
break;
+#ifdef ENABLE_TLS
case 't':
dotls = 1;
keyfile = EARGF(usage());
certfile = EARGF(usage());
break;
+#endif /* ENABLE_TLS */
default:
usage();
} ARGEND;
@@ -493,6 +509,7 @@ main(int argc, char *argv[])
if (argc != 0)
usage();
+#ifdef ENABLE_TLS
if (dotls) {
if (tls_init() < 0) {
perror("tls_init");
@@ -519,6 +536,7 @@ main(int argc, char *argv[])
return 1;
}
}
+#endif /* ENABLE_TLS */
if (ohost == NULL) {
/* Do not use HOST_NAME_MAX, it is not defined on NetBSD. */
@@ -746,6 +764,7 @@ main(int argc, char *argv[])
if (recv(sock, &byte0, 1, MSG_PEEK) < 1)
return 1;
+#ifdef ENABLE_TLS
/*
* First byte is 0x16 == 22, which is the TLS
* Handshake first byte.
@@ -758,15 +777,19 @@ main(int argc, char *argv[])
if (tls_handshake(tlsclientctx) < 0)
return 1;
}
+#endif /* ENABLE_TLS */
maxrecv = sizeof(recvb) - 1;
do {
+#ifdef ENABLE_TLS
if (istls) {
retl = tls_read(tlsclientctx,
recvb+rlen, sizeof(recvb)-1-rl…
if (retl < 0)
fprintf(stderr, "tls_read fail…
- } else {
+ } else
+#endif /* ENABLE_TLS */
+ {
retl = read(sock, recvb+rlen,
sizeof(recvb)-1-rlen);
if (retl < 0)
@@ -780,6 +803,7 @@ main(int argc, char *argv[])
if (rlen <= 0)
return 1;
+#ifdef ENABLE_TLS
if (istls) {
if (pipe(tlspipe) < 0) {
perror("tls_pipe");
@@ -819,6 +843,7 @@ main(int argc, char *argv[])
return 0;
}
}
+#endif /* ENABLE_TLS */
handlerequest(sock, recvb, rlen, base,
ohost, sport, clienth,
@@ -855,11 +880,13 @@ main(int argc, char *argv[])
}
free(listfds);
+#ifdef ENABLE_TLS
if (dotls) {
tls_close(tlsctx);
tls_free(tlsctx);
tls_config_free(tlsconfig);
}
+#endif /* ENABLE_TLS */
return 0;
}
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.