From 6ac80e99092feb31223507a9f5b32c296125b86b Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 11 Feb 2026 16:07:47 +0100 Subject: [PATCH] Change stream_buf_read_setup_dowork parameter to struct steam_buf This methods only ever access sock->stream_buf so make the method simpler by just having a parameter sb. Change-Id: I3deb7cd75db3cb280fa8d9c637cd3bde3881d6e3 Signed-off-by: Arne Schwabe Acked-by: Frank Lichtenheld Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1483 Message-Id: <20260211150747.113906-1-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35595.html Signed-off-by: Gert Doering --- src/openvpn/socket.c | 18 +++++++++--------- src/openvpn/socket.h | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c index d97b7703d..033444e39 100644 --- a/src/openvpn/socket.c +++ b/src/openvpn/socket.c @@ -2111,22 +2111,22 @@ stream_buf_get_next(struct stream_buf *sb, struct buffer *buf) } bool -stream_buf_read_setup_dowork(struct link_socket *sock) +stream_buf_read_setup_dowork(struct stream_buf *sb) { - if (sock->stream_buf.residual.len && !sock->stream_buf.residual_fully_formed) + if (sb->residual.len && !sb->residual_fully_formed) { - ASSERT(buf_copy(&sock->stream_buf.buf, &sock->stream_buf.residual)); - ASSERT(buf_init(&sock->stream_buf.residual, 0)); - sock->stream_buf.residual_fully_formed = stream_buf_added(&sock->stream_buf, 0); + ASSERT(buf_copy(&sb->buf, &sb->residual)); + ASSERT(buf_init(&sb->residual, 0)); + sb->residual_fully_formed = stream_buf_added(sb, 0); dmsg(D_STREAM_DEBUG, "STREAM: RESIDUAL FULLY FORMED [%s], len=%d", - sock->stream_buf.residual_fully_formed ? "YES" : "NO", sock->stream_buf.residual.len); + sb->residual_fully_formed ? "YES" : "NO", sb->residual.len); } - if (!sock->stream_buf.residual_fully_formed) + if (!sb->residual_fully_formed) { - stream_buf_set_next(&sock->stream_buf); + stream_buf_set_next(sb); } - return !sock->stream_buf.residual_fully_formed; + return !sb->residual_fully_formed; } static bool diff --git a/src/openvpn/socket.h b/src/openvpn/socket.h index 850064dfb..3f46dc6c6 100644 --- a/src/openvpn/socket.h +++ b/src/openvpn/socket.h @@ -528,14 +528,24 @@ link_socket_set_outgoing_addr(struct link_socket_info *info, const struct link_s } } -bool stream_buf_read_setup_dowork(struct link_socket *sock); +/** + * Will try to check if the buffers in stream form a + * full packet. Will return true if further reads are + * required and false otherwise. (full packet is ready) + * + * With UDP we always return true as there is no reassembly. + * + * @param sb the stream buffer that should be worked on + * @return true if more reads are required. + */ +bool stream_buf_read_setup_dowork(struct stream_buf *sb); static inline bool stream_buf_read_setup(struct link_socket *sock) { if (link_socket_connection_oriented(sock)) { - return stream_buf_read_setup_dowork(sock); + return stream_buf_read_setup_dowork(&sock->stream_buf); } else { -- 2.47.3