diff options
author | Test_User <hax@andrewyu.org> | 2024-06-19 03:41:14 -0400 |
---|---|---|
committer | Test_User <hax@andrewyu.org> | 2024-06-19 03:41:14 -0400 |
commit | 991d1d37474726ae5dc910da9705485f7b193e18 (patch) | |
tree | e6d01a7a65dd8f916f400f1b083909c58a304d71 /general_network.c | |
parent | 9c16070679fea6ac5625546d4ba5af0f638e6636 (diff) | |
download | haxircd-991d1d37474726ae5dc910da9705485f7b193e18.tar.gz haxircd-991d1d37474726ae5dc910da9705485f7b193e18.zip |
Some improvements and openssl send buffering
Diffstat (limited to 'general_network.c')
-rw-r--r-- | general_network.c | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/general_network.c b/general_network.c index a400a5a..2cdbb43 100644 --- a/general_network.c +++ b/general_network.c @@ -52,6 +52,12 @@ #ifdef USE_PLAINTEXT_BUFFERED #include "networks/plaintext_buffered.h" #endif +#ifdef USE_GNUTLS_BUFFERED +#include "networks/gnutls_buffered.h" +#endif +#ifdef USE_OPENSSL_BUFFERED +#include "networks/openssl_buffered.h" +#endif #ifdef USE_PROTOCOLS #include "protocols.h" @@ -105,16 +111,6 @@ struct network networks[NUM_NET_TYPES] = { .close = plaintext_close, }, #endif -#ifdef USE_PLAINTEXT_BUFFERED - [NET_TYPE_PLAINTEXT_BUFFERED] = { - .send = plaintext_buffered_send, - .recv = plaintext_buffered_recv, - .connect = plaintext_buffered_connect, - .accept = plaintext_buffered_accept, - .shutdown = plaintext_buffered_shutdown, - .close = plaintext_buffered_close, - }, -#endif #ifdef USE_GNUTLS [NET_TYPE_GNUTLS] = { .send = gnutls_send, @@ -135,6 +131,36 @@ struct network networks[NUM_NET_TYPES] = { .close = openssl_close, }, #endif +#ifdef USE_PLAINTEXT_BUFFERED + [NET_TYPE_PLAINTEXT_BUFFERED] = { + .send = plaintext_buffered_send, + .recv = plaintext_buffered_recv, + .connect = plaintext_buffered_connect, + .accept = plaintext_buffered_accept, + .shutdown = plaintext_buffered_shutdown, + .close = plaintext_buffered_close, + }, +#endif +#ifdef USE_GNUTLS_BUFFERED + [NET_TYPE_GNUTLS_BUFFERED] = { + .send = gnutls_buffered_send, + .recv = gnutls_buffered_recv, + .connect = gnutls_buffered_connect, + .accept = gnutls_buffered_accept, + .shutdown = gnutls_buffered_shutdown, + .close = gnutls_buffered_close, + }, +#endif +#ifdef USE_OPENSSL_BUFFERED + [NET_TYPE_OPENSSL_BUFFERED] = { + .send = openssl_buffered_send, + .recv = openssl_buffered_recv, + .connect = openssl_buffered_connect, + .accept = openssl_buffered_accept, + .shutdown = openssl_buffered_shutdown, + .close = openssl_buffered_close, + }, +#endif }; struct table server_list = {0}; @@ -470,6 +496,7 @@ int set_channel(struct string from, struct string name, size_t timestamp, size_t return -1; channel->channel_ts = timestamp; + channel->channel_ts_str = (struct string){.data = malloc(0), .len = 0}; if (set_table_index(&channel_list, name, channel) != 0) goto set_channel_free_channel; @@ -504,6 +531,7 @@ int set_channel(struct string from, struct string name, size_t timestamp, size_t goto set_channel_free_ts_str; #endif + free(channel->channel_ts_str.data); channel->channel_ts_str = ts_str; channel->channel_ts = timestamp; |