aboutsummaryrefslogtreecommitdiff
path: root/openssl_network.c
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2024-06-14 02:51:58 -0400
committerTest_User <hax@andrewyu.org>2024-06-14 02:51:58 -0400
commit35c5a9f9adab04b821896978520af643ea8b697f (patch)
treeee474fe3e1b54f4e497e5dffa391fba6937d45f3 /openssl_network.c
parentdadd3396cf719e1ce659926833efd1e17064f2d5 (diff)
downloadhaxircd-35c5a9f9adab04b821896978520af643ea8b697f.tar.gz
haxircd-35c5a9f9adab04b821896978520af643ea8b697f.zip
Basic channel tracking added
Diffstat (limited to 'openssl_network.c')
-rw-r--r--openssl_network.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/openssl_network.c b/openssl_network.c
index 5584a12..ca59c82 100644
--- a/openssl_network.c
+++ b/openssl_network.c
@@ -69,6 +69,9 @@ int init_openssl_network(void) {
}
int openssl_send(void *handle, struct string msg) {
+ if (msg.len == 0)
+ return 0;
+
struct openssl_handle *openssl_handle = handle;
pthread_mutex_lock(&(openssl_handle->mutex));
@@ -112,8 +115,12 @@ int openssl_send(void *handle, struct string msg) {
return 0;
openssl_send_error_unlock:
- openssl_handle->valid = 0;
- pthread_mutex_unlock(&(openssl_handle->mutex));
+ if (openssl_handle->valid) {
+ pthread_mutex_unlock(&(openssl_handle->mutex));
+ openssl_shutdown(handle);
+ } else {
+ pthread_mutex_unlock(&(openssl_handle->mutex));
+ }
return 1;
}