From dc0f2ce9ba97ebb47e05b80a511da6eb29818b63 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Tue, 23 Jul 2024 17:48:28 -0400 Subject: Merge old-molehole --- include/connect.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 include/connect.h (limited to 'include/connect.h') diff --git a/include/connect.h b/include/connect.h new file mode 100755 index 0000000..d733c5e --- /dev/null +++ b/include/connect.h @@ -0,0 +1,44 @@ +#ifndef _CONNECT_H_ +#define _CONNECT_H_ + +#include + +#include "config.h" +#include "url.h" + +/* Error codes */ +enum ConnectError { + ERR_GETADDRINFO = -1, + ERR_SOCKET = -2, + ERR_CONNECT = -3, + ERR_SSL_CTX = -4, + ERR_SSL_SSL = -5, +}; + +/** + * Holds all needed information to manage an open TLS connection. + */ +struct connection { + SSL *ssl; + int sockfd; + bool used; +}; + +/** + * Connect to molerat server. + * + * Sets `*ssl` in `struct config *conf` to the current active connection. + */ +int tls_connect(struct config *conf, struct url url); + +/** + * Disconnect and free open connection + */ +void tls_cleanup(struct connection *conn); + +/** + * Allocate a new instance of a `struct connection` + */ +struct connection *init_connection(void); + +#endif -- cgit v1.2.3