]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Allow the application to provide channel send/receive buffers.
[meshlink] / src / meshlink.c
index fd8e2f9889f646d66e51f322eab7343abe49371f..1540df37344ace42cc87c70cc07160401fd914e7 100644 (file)
@@ -4055,6 +4055,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) {
+       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(!mesh || !channel) {
                meshlink_errno = MESHLINK_EINVAL;
                return;
@@ -4064,11 +4072,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 meshlink_set_channel_rcvbuf_storage(meshlink_handle_t *mesh, meshlink_channel_t *channel, void *buf, size_t size) {
        if(!mesh || !channel) {
                meshlink_errno = MESHLINK_EINVAL;
                return;
@@ -4078,7 +4086,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);
 }