]> git.meshlink.io Git - utcp/commitdiff
Add functions to get the amount of bytes in the send and receive buffers.
authorGuus Sliepen <guus@sliepen.org>
Sun, 17 Mar 2019 19:54:19 +0000 (20:54 +0100)
committerGuus Sliepen <guus@sliepen.org>
Sun, 17 Mar 2019 19:54:19 +0000 (20:54 +0100)
utcp_get_sendq() returns the amount of bytes in the send buffer, which
corresponds to the amount of bytes not yet ACKed by the peer.

utcp_get_recvq() returns the amount of bytes in the receive buffer,
which may or may not have been acked already, but have not been read by
the application.

utcp.c
utcp.h

diff --git a/utcp.c b/utcp.c
index 9fb68aecd323dd2019171df1b86199c37af71544..4875f8405ef7799aa5a935b3d1910a88d668f2a6 100644 (file)
--- a/utcp.c
+++ b/utcp.c
@@ -1930,6 +1930,14 @@ void utcp_set_rcvbuf(struct utcp_connection *c, size_t size) {
        }
 }
 
+size_t utcp_get_sendq(struct utcp_connection *c) {
+       return c->sndbuf.used;
+}
+
+size_t utcp_get_recvq(struct utcp_connection *c) {
+       return c->rcvbuf.used;
+}
+
 bool utcp_get_nodelay(struct utcp_connection *c) {
        return c ? c->nodelay : false;
 }
diff --git a/utcp.h b/utcp.h
index fe4c7205e726bd0c3a18f76d122e5e9d9f7e43a2..5d646762437cafe093796d787d78ee45bd0e5532 100644 (file)
--- a/utcp.h
+++ b/utcp.h
@@ -99,6 +99,9 @@ extern size_t utcp_get_rcvbuf(struct utcp_connection *connection);
 extern void utcp_set_rcvbuf(struct utcp_connection *connection, size_t size);
 extern size_t utcp_get_rcvbuf_free(struct utcp_connection *connection);
 
+extern size_t utcp_get_sendq(struct utcp_connection *connection);
+extern size_t utcp_get_recvq(struct utcp_connection *connection);
+
 extern bool utcp_get_nodelay(struct utcp_connection *connection);
 extern void utcp_set_nodelay(struct utcp_connection *connection, bool nodelay);