diff --git a/src/sock/tcp.h b/src/sock/tcp.h index 76fd021..4eafd9a 100644 --- a/src/sock/tcp.h +++ b/src/sock/tcp.h @@ -27,10 +27,16 @@ #endif #include + +#include +#include + #include "util/ipaddr.h" +#include "util/thread.h" #define GLV_TCP_FLAG_TYPE 1 -#define GLV_TCP_FLAG_NBIO 2 +#define GLV_TCP_FLAG_TLS 2 +#define GLV_TCP_FLAG_NBIO 4 #define GLV_TCP_RECV_APPEND 1 #define GLV_TCP_RECV_BLOCK 2 @@ -41,7 +47,7 @@ typedef struct { uint32_t flags; } glv_tcp_t; -glv_tcp_t* glv_tcp_create_server(); +glv_tcp_t* glv_tcp_create_server(uint16_t port); glv_tcp_t* glv_tcp_create_client(); int glv_tcp_send(glv_tcp_t* sock, const char* data, unsigned int length); diff --git a/src/sock/tcp_bsd.c b/src/sock/tcp_bsd.c index 5dff4ab..9e89976 100644 --- a/src/sock/tcp_bsd.c +++ b/src/sock/tcp_bsd.c @@ -1,6 +1,8 @@ #ifndef _WIN32 #include "tcp.h" +glv_tcp_t* glv_tcp_create_server(uint16_t port) { +} #endif \ No newline at end of file diff --git a/src/sock/tcp_ssl.c b/src/sock/tcp_ssl.c new file mode 100644 index 0000000..0e66615 --- /dev/null +++ b/src/sock/tcp_ssl.c @@ -0,0 +1,35 @@ +#include "tcp.h" + +struct { + SSL_CTX* server; + glv_mutex_t server_mtx; + + SSL_CTX* client; + glv_mutex_t client_mtx; +} _ssl_ctx; + +static int ssl_init() { + static int is_inited = 0; + if(is_inited) + return 1; + + SSL_load_error_strings(); + OpenSSL_add_ssl_algorithms(); + + _ssl_ctx.server = SSL_CTX_new(SSLv23_server_method()); + if(!_ssl_ctx.server) + return 0; + + _ssl_ctx.client = SSL_CTX_new(SSLv23_client_method()); + if(!_ssl_ctx.client) + return 0; + + SSL_CTX_set_ecdh_auto(_ssl_ctx.server, 1); + SSL_CTX_set_ecdh_auto(_ssl_ctx.client, 1); + + int success = 0; + success |= SSL_CTX_use_certificate_file( + _ssl_ctx.server, + + ); +} \ No newline at end of file diff --git a/src/util/ini.c b/src/util/ini.c new file mode 100644 index 0000000..7710f9b --- /dev/null +++ b/src/util/ini.c @@ -0,0 +1,5 @@ +// +// Created by alec on 2/7/2019. +// + +#include "ini.h" diff --git a/src/util/ini.h b/src/util/ini.h new file mode 100644 index 0000000..b1bebfa --- /dev/null +++ b/src/util/ini.h @@ -0,0 +1,6 @@ +#ifndef GLV_UTIL_INI_H +#define GLV_UTIL_INI_H + + + +#endif