From 39cf6a800074fa90976bfce8d4971d93437d03d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Thu, 6 Feb 2020 10:09:39 +0200 Subject: [PATCH] MXS-2860: Update last_read only on successful reads This prevents empty or failed reads from updating the last_read flag which in turn gives us the correct connection idle time when network errors occur. --- server/core/dcb.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/core/dcb.cc b/server/core/dcb.cc index a60149d5f..27abc23f8 100644 --- a/server/core/dcb.cc +++ b/server/core/dcb.cc @@ -635,11 +635,11 @@ int dcb_read(DCB* dcb, else { GWBUF* buffer; - dcb->last_read = mxs_clock(); buffer = dcb_basic_read(dcb, bytes_available, maxbytes, nreadtotal, &nsingleread); if (buffer) { + dcb->last_read = mxs_clock(); nreadtotal += nsingleread; MXS_DEBUG("Read %d bytes from dcb %p in state %s fd %d.", nsingleread, @@ -789,19 +789,19 @@ static int dcb_read_SSL(DCB* dcb, GWBUF** head) dcb_drain_writeq(dcb); } - dcb->last_read = mxs_clock(); buffer = dcb_basic_read_SSL(dcb, &nsingleread); if (buffer) { + dcb->last_read = mxs_clock(); nreadtotal += nsingleread; *head = gwbuf_append(*head, buffer); while (buffer) { - dcb->last_read = mxs_clock(); buffer = dcb_basic_read_SSL(dcb, &nsingleread); if (buffer) { + dcb->last_read = mxs_clock(); nreadtotal += nsingleread; /*< Append read data to the gwbuf */ *head = gwbuf_append(*head, buffer);