From c1a1e38de032694712dbd90ef5c8cbb64b5894da Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Sat, 25 Aug 2018 06:38:28 +0800
Subject: [PATCH] LWS_WITH_STATS: only report ssl accept delay we have a start
 time for

---
 lib/tls/mbedtls/ssl.c | 2 +-
 lib/tls/openssl/ssl.c | 2 +-
 lib/tls/tls-server.c  | 4 +++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/tls/mbedtls/ssl.c b/lib/tls/mbedtls/ssl.c
index da25a271..e0e134c5 100644
--- a/lib/tls/mbedtls/ssl.c
+++ b/lib/tls/mbedtls/ssl.c
@@ -75,7 +75,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)
 	}
 #endif
 #if defined(LWS_WITH_STATS)
-	if (!wsi->seen_rx) {
+	if (!wsi->seen_rx && wsi->accept_start_us) {
                 lws_stats_atomic_bump(wsi->context, pt,
                 		      LWSSTATS_MS_SSL_RX_DELAY,
 				time_in_microseconds() - wsi->accept_start_us);
diff --git a/lib/tls/openssl/ssl.c b/lib/tls/openssl/ssl.c
index eb55b093..59250fbc 100644
--- a/lib/tls/openssl/ssl.c
+++ b/lib/tls/openssl/ssl.c
@@ -216,7 +216,7 @@ lws_ssl_capable_read(struct lws *wsi, unsigned char *buf, int len)
 	}
 #endif
 #if defined(LWS_WITH_STATS)
-	if (!wsi->seen_rx) {
+	if (!wsi->seen_rx && wsi->accept_start_us) {
                 lws_stats_atomic_bump(wsi->context, pt, LWSSTATS_MS_SSL_RX_DELAY,
 				time_in_microseconds() - wsi->accept_start_us);
                 lws_stats_atomic_bump(wsi->context, pt, LWSSTATS_C_SSL_CONNS_HAD_RX, 1);
diff --git a/lib/tls/tls-server.c b/lib/tls/tls-server.c
index 1f727cf7..95ff4eff 100644
--- a/lib/tls/tls-server.c
+++ b/lib/tls/tls-server.c
@@ -312,6 +312,7 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd)
 		/* normal SSL connection processing path */
 
 #if defined(LWS_WITH_STATS)
+		/* only set this the first time around */
 		if (!wsi->accept_start_us)
 			wsi->accept_start_us = time_in_microseconds();
 #endif
@@ -340,7 +341,8 @@ lws_server_socket_service_ssl(struct lws *wsi, lws_sockfd_type accept_fd)
 		lws_stats_atomic_bump(wsi->context, pt,
 				      LWSSTATS_C_SSL_CONNECTIONS_ACCEPTED, 1);
 #if defined(LWS_WITH_STATS)
-		lws_stats_atomic_bump(wsi->context, pt,
+		if (wsi->accept_start_us)
+			lws_stats_atomic_bump(wsi->context, pt,
 				      LWSSTATS_MS_SSL_CONNECTIONS_ACCEPTED_DELAY,
 				      time_in_microseconds() - wsi->accept_start_us);
 		wsi->accept_start_us = time_in_microseconds();
-- 
GitLab