From dcee9c8106ed4df38f082b54589d8a0b42aa4b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Wed, 21 Feb 2018 09:53:47 +0100 Subject: [PATCH] Error handling for failing writes with SSL --- lib/mysql_data_stream.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/mysql_data_stream.cpp b/lib/mysql_data_stream.cpp index f086708ee..761313be2 100644 --- a/lib/mysql_data_stream.cpp +++ b/lib/mysql_data_stream.cpp @@ -546,8 +546,13 @@ int MySQL_Data_Stream::write_to_net() { //} //bytes_io += n; } else { - shut_soft(); - return -1; + int myds_errno=errno; + if (n==0 || (n==-1 && myds_errno != EINTR && myds_errno != EAGAIN)) { + shut_soft(); + return 0; + } else { + return -1; + } } } } else { @@ -690,8 +695,13 @@ int MySQL_Data_Stream::write_to_net_poll() { rc = n; // and continue } } else { - shut_soft(); - return -1; + int myds_errno=errno; + if (n==0 || (n==-1 && myds_errno != EINTR && myds_errno != EAGAIN)) { + shut_soft(); + return 0; + } else { + return -1; + } } } }