From cd44fcf470dc20f0a789eea53bcec2105ad52a9c 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 3641a4e59..896a05d17 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 { @@ -681,8 +686,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; + } } } }