Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save steved/78b3a2c8059d5a6f512441bf06ad3100 to your computer and use it in GitHub Desktop.
Save steved/78b3a2c8059d5a6f512441bf06ad3100 to your computer and use it in GitHub Desktop.
diff --git a/src/checks.c b/src/checks.c
index 0668a76..dba45f0 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1349,14 +1349,15 @@ static void event_srv_chk_r(struct connection *conn)
*check->bi->data = '\0';
check->bi->i = 0;
- /* Close the connection... We absolutely want to perform a hard close
- * and reset the connection if some data are pending, otherwise we end
- * up with many TIME_WAITs and eat all the source port range quickly.
- * To avoid sending RSTs all the time, we first try to drain pending
- * data.
+ /* Close the connection... We still attempt to nicely close if,
+ * for instance, SSL needs to send a "close notify." Later, we perform
+ * a hard close and reset the connection if some data are pending,
+ * otherwise we end up with many TIME_WAITs and eat all the source port
+ * range quickly. To avoid sending RSTs all the time, we first try to
+ * drain pending data.
*/
__conn_data_stop_both(conn);
- conn_data_shutw_hard(conn);
+ conn_data_shutw(conn);
/* OK, let's not stay here forever */
if (check->result == CHK_RES_FAILED)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment