]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Allow the application to provide channel send/receive buffers.
[meshlink] / src / meshlink.c
index 009839314cba71ca319455d657896c4d8bcd9cd1..1f1b3dfd8d9d5b5728e7a3cb49572bbcea894c41 100644 (file)
@@ -4052,8 +4052,14 @@ void meshlink_set_channel_accept_cb(meshlink_handle_t *mesh, meshlink_channel_ac
 }
 
 void meshlink_set_channel_sndbuf(meshlink_handle_t *mesh, meshlink_channel_t *channel, size_t size) {
-       (void)mesh;
+       meshlink_set_channel_sndbuf_storage(mesh, channel, NULL, size);
+}
+
+void meshlink_set_channel_rcvbuf(meshlink_handle_t *mesh, meshlink_channel_t *channel, size_t size) {
+       meshlink_set_channel_rcvbuf_storage(mesh, channel, NULL, size);
+}
 
+void meshlink_set_channel_sndbuf_storage(meshlink_handle_t *mesh, meshlink_channel_t *channel, void *buf, size_t size) {
        if(!channel) {
                meshlink_errno = MESHLINK_EINVAL;
                return;
@@ -4063,13 +4069,11 @@ void meshlink_set_channel_sndbuf(meshlink_handle_t *mesh, meshlink_channel_t *ch
                abort();
        }
 
-       utcp_set_sndbuf(channel->c, size);
+       utcp_set_sndbuf(channel->c, buf, size);
        pthread_mutex_unlock(&mesh->mutex);
 }
 
-void meshlink_set_channel_rcvbuf(meshlink_handle_t *mesh, meshlink_channel_t *channel, size_t size) {
-       (void)mesh;
-
+void meshlink_set_channel_rcvbuf_storage(meshlink_handle_t *mesh, meshlink_channel_t *channel, void *buf, size_t size) {
        if(!channel) {
                meshlink_errno = MESHLINK_EINVAL;
                return;
@@ -4079,7 +4083,7 @@ void meshlink_set_channel_rcvbuf(meshlink_handle_t *mesh, meshlink_channel_t *ch
                abort();
        }
 
-       utcp_set_rcvbuf(channel->c, size);
+       utcp_set_rcvbuf(channel->c, buf, size);
        pthread_mutex_unlock(&mesh->mutex);
 }