]> git.ipfire.org Git - thirdparty/openvpn.git/commit
Check for more data in control channel
authorSteffan Karger <steffan.karger@fox-it.com>
Thu, 4 Jan 2018 12:07:50 +0000 (13:07 +0100)
committerDavid Sommerseth <davids@openvpn.net>
Wed, 7 Mar 2018 22:10:09 +0000 (23:10 +0100)
commit8f15fa94dd9d7c4ce2dfe3378bd6311e2ad121ba
tree7ebce24eeac837395fc150b9a4b43ea27d5e91cb
parent0533bd715bc3865019a718fbe512f86e0a907103
Check for more data in control channel

If control channel packets arrive quickly after each other, or out of
order, there might be more data available than we can read in one
tls_process() call.  If that happened, and no further control channel
packet arrived (e.g. because the last two packets arrived out-of-order),
we would wait for 16 second ("coarse timer") before we would read the
remaining data.  To avoid that, always schedule ourself again if there
was control channel data, to check whether more data is available.

For mbedtls, we could implement a slightly more elegant "is there more
data?" function, instead of blindly rescheduling.  But I can't find a way
to implement that for OpenSSL, and the current solution is very simple and
still has quite low overhead.

Signed-off-by: Steffan Karger <steffan.karger@fox-it.com>
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <1515067670-13094-1-git-send-email-steffan.karger@fox-it.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg16151.html
Signed-off-by: David Sommerseth <davids@openvpn.net>
(cherry picked from commit b00d56e1b0cf4d71dc4944ef14ea7eca2fc8c519)
src/openvpn/ssl.c