#include #include "curl/curl.h" #include "curl/easy.h" #include "types.h" #include "util.h" struct WSResult* recv_from_socket(CURL* http_handle, int buffer_size) { size_t nread; char* buffer = malloc(buffer_size); CURLcode res = curl_easy_recv(http_handle, buffer, buffer_size, &nread); struct WSResult* result = malloc(sizeof(struct WSResult)); result->buffer_size = nread; result->buffer = buffer; result->res = (int) res; result->closed = (nread == 0); return result; } int send_to_socket(CURL* http_handle, const char* data, int data_len) { size_t sent; CURLcode res = curl_easy_send(http_handle, data, data_len, &sent); return (int) res; } void tls_socket_set_options(CURL* http_handle, int verbose) { struct RequestInfo *request_info = get_request_info(http_handle); curl_easy_setopt(http_handle, CURLOPT_CONNECT_ONLY, 1L); curl_easy_setopt(http_handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_easy_setopt(http_handle, CURLOPT_SSL_ENABLE_ALPN, 0L); curl_easy_setopt(http_handle, CURLOPT_VERBOSE, (long) verbose); }