diff options
author | Test_User <hax@andrewyu.org> | 2024-06-14 02:51:58 -0400 |
---|---|---|
committer | Test_User <hax@andrewyu.org> | 2024-06-14 02:51:58 -0400 |
commit | 35c5a9f9adab04b821896978520af643ea8b697f (patch) | |
tree | ee474fe3e1b54f4e497e5dffa391fba6937d45f3 /openssl_network.c | |
parent | dadd3396cf719e1ce659926833efd1e17064f2d5 (diff) | |
download | haxircd-35c5a9f9adab04b821896978520af643ea8b697f.tar.gz haxircd-35c5a9f9adab04b821896978520af643ea8b697f.zip |
Basic channel tracking added
Diffstat (limited to 'openssl_network.c')
-rw-r--r-- | openssl_network.c | 11 |
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; } |