]> git.meshlink.io Git - meshlink/blobdiff - src/meshlink.c
Never automatically try to bind to ports >= 32768.
[meshlink] / src / meshlink.c
index a5bf2c90ac3f6f33916d8eafceadb98a24f56ebd..a1a2ec407c87477a9e77e204b700b5f944afdb52 100644 (file)
@@ -651,7 +651,7 @@ static bool try_bind(meshlink_handle_t *mesh, int port) {
 
 int check_port(meshlink_handle_t *mesh) {
        for(int i = 0; i < 1000; i++) {
-               int port = 0x1000 + prng(mesh, 0x8000);
+               int port = 0x1000 + prng(mesh, 0x7000);
 
                if(try_bind(mesh, port)) {
                        free(mesh->myport);
@@ -4515,7 +4515,7 @@ bool meshlink_channel_aio_send(meshlink_handle_t *mesh, meshlink_channel_t *chan
 
        /* Ensure the poll callback is set, and call it right now to push data if possible */
        utcp_set_poll_cb(channel->c, channel_poll);
-       size_t todo = MIN(len, utcp_get_rcvbuf_free(channel->c));
+       size_t todo = MIN(len, utcp_get_sndbuf_free(channel->c));
 
        if(todo) {
                channel_poll(channel->c, todo);
@@ -4560,7 +4560,7 @@ bool meshlink_channel_aio_fd_send(meshlink_handle_t *mesh, meshlink_channel_t *c
 
        /* Ensure the poll callback is set, and call it right now to push data if possible */
        utcp_set_poll_cb(channel->c, channel_poll);
-       size_t left = utcp_get_rcvbuf_free(channel->c);
+       size_t left = utcp_get_sndbuf_free(channel->c);
 
        if(left) {
                channel_poll(channel->c, left);