@@ -2111,22 +2111,22 @@
}
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
@@ -528,14 +528,24 @@
}
}
-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
{