aboutsummaryrefslogtreecommitdiff
path: root/networks
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2024-06-19 03:59:17 -0400
committerTest_User <hax@andrewyu.org>2024-06-19 04:00:31 -0400
commit1fccd7a7bca5a980706b098d0b75f6c99edab63d (patch)
tree2ea3b51bc17b5b083a1f099bc7b804a7ea322662 /networks
parent991d1d37474726ae5dc910da9705485f7b193e18 (diff)
downloadhaxircd-1fccd7a7bca5a980706b098d0b75f6c99edab63d.tar.gz
haxircd-1fccd7a7bca5a980706b098d0b75f6c99edab63d.zip
Don't send more than half the buffer at a time
Diffstat (limited to 'networks')
-rw-r--r--networks/openssl_buffered.c2
-rw-r--r--networks/plaintext_buffered.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/networks/openssl_buffered.c b/networks/openssl_buffered.c
index f929145..6959d33 100644
--- a/networks/openssl_buffered.c
+++ b/networks/openssl_buffered.c
@@ -124,6 +124,8 @@ void * openssl_buffered_send_thread(void *handle) {
if (read_buffer_index + len > OPENSSL_BUFFERED_LEN)
len = OPENSSL_BUFFERED_LEN - read_buffer_index;
+ if (len > OPENSSL_BUFFERED_LEN/2 && OPENSSL_BUFFERED_LEN > 1)
+ len = OPENSSL_BUFFERED_LEN/2;
struct pollfd pollfd = {
.fd = info->fd,
diff --git a/networks/plaintext_buffered.c b/networks/plaintext_buffered.c
index 99bd085..6f5016c 100644
--- a/networks/plaintext_buffered.c
+++ b/networks/plaintext_buffered.c
@@ -108,6 +108,8 @@ void * plaintext_buffered_send_thread(void *handle) {
if (read_buffer_index + len > PLAINTEXT_BUFFERED_LEN)
len = PLAINTEXT_BUFFERED_LEN - read_buffer_index;
+ if (len > PLAINTEXT_BUFFERED_LEN/2 && PLAINTEXT_BUFFERED_LEN > 1)
+ len = PLAINTEXT_BUFFERED_LEN/2;
ssize_t res;
do {