aboutsummaryrefslogtreecommitdiff
path: root/general_network.c
diff options
context:
space:
mode:
Diffstat (limited to 'general_network.c')
-rw-r--r--general_network.c48
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;