#pragma once #include "tfe_future.h" struct ssl_client_hello { int version; char* sni; char* cipher_suites; }; struct ssl_client_hello* ssl_get_peek_result(future_result_t* result); void ssl_free_peek_result(struct ssl_client_hello* client_hello); void ssl_async_peek_client_hello(struct future* future, evutil_socket_t fd, struct event_base *evbase); void ssl_async_connect_origin(struct future* future, const struct ssl_client_hello* client_hello, evutil_socket_t fd, const char* sni, struct event_base *evbase); struct ssl_downstream * ssl_downstream_create(); void ssl_upstream_free(struct ssl_upstream * p); void ssl_downstream_free(struct ssl_downstream * p);