#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