0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 03:52:28 +02:00

Extract read_incoming_tls_plaintext into its own function

This makes the tls_process_state function a bit easier to read
and allows extending the read_incoming_tls_plaintext function
later without making tls_process_state even longer.

Patch v2: fix compile error.

Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Message-Id: <20220503112900.933975-1-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg24268.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Arne Schwabe 2022-05-03 13:29:00 +02:00 committed by Gert Doering
parent 3f5626891e
commit 413877f522

View File

@ -2613,6 +2613,32 @@ control_packet_needs_wkc(const struct key_state *ks)
}
static bool
read_incoming_tls_plaintext(struct key_state *ks, struct buffer *buf,
interval_t *wakeup, bool *state_change)
{
ASSERT(buf_init(buf, 0));
int status = key_state_read_plaintext(&ks->ks_ssl, buf, TLS_CHANNEL_BUF_SIZE);
update_time();
if (status == -1)
{
msg(D_TLS_ERRORS, "TLS Error: TLS object -> incoming plaintext read error");
return false;
}
if (status == 1)
{
*state_change = true;
dmsg(D_TLS_DEBUG, "TLS -> Incoming Plaintext");
/* More data may be available, wake up again asap to check. */
*wakeup = 0;
}
return true;
}
static bool
tls_process_state(struct tls_multi *multi,
struct tls_session *session,
@ -2705,24 +2731,10 @@ tls_process_state(struct tls_multi *multi,
struct buffer *buf = &ks->plaintext_read_buf;
if (!buf->len)
{
int status;
ASSERT(buf_init(buf, 0));
status = key_state_read_plaintext(&ks->ks_ssl, buf, TLS_CHANNEL_BUF_SIZE);
update_time();
if (status == -1)
if (!read_incoming_tls_plaintext(ks, buf, wakeup, &state_change))
{
msg(D_TLS_ERRORS, "TLS Error: TLS object -> incoming plaintext read error");
goto error;
}
if (status == 1)
{
state_change = true;
dmsg(D_TLS_DEBUG, "TLS -> Incoming Plaintext");
/* More data may be available, wake up again asap to check. */
*wakeup = 0;
}
}
/* Send Key */