diff options
author | Luke Bratch <luke@bratch.co.uk> | 2019-05-12 22:47:29 +0100 |
---|---|---|
committer | Luke Bratch <luke@bratch.co.uk> | 2019-05-12 22:47:29 +0100 |
commit | 8869477885718844d368b48774f926489385e3b3 (patch) | |
tree | c08db28e2933eb5204d8a807f814572e3d617cb3 /sockets.c | |
parent | cceee6b8e23138e5a16e6aef23759a8c60ef872e (diff) |
Make using TLS for clients connecting to the bouncer optional.
Diffstat (limited to 'sockets.c')
-rw-r--r-- | sockets.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -165,3 +165,23 @@ void configure_context(SSL_CTX *ctx, char *certfile, char *keyfile) { exit(EXIT_FAILURE); } } + +// Read from a socket, whether or not using TLS +int sockread(SSL *fd, char *buf, int bufsize, int tls) { + if (tls) { + return SSL_read(fd, buf, bufsize); + } else { + // Cast the supposed SSL *fd to a long int if we're not using TLS + return recv((long int)fd, buf, bufsize, 0); + } +} + +// Write to a socket, whether or not using TLS +int socksend(SSL *fd, char *buf, int bufsize, int tls) { + if (tls) { + return SSL_write(fd, buf, bufsize); + } else { + // Cast the supposed SSL *fd to a long int if we're not using TLS + return send((long int)fd, buf, bufsize, 0); + } +} |