unetmsg: add timeout for outgoing auth requests
authorFelix Fietkau <nbd@nbd.name>
Sun, 4 Jan 2026 10:07:33 +0000 (10:07 +0000)
committerFelix Fietkau <nbd@nbd.name>
Mon, 5 Jan 2026 11:43:40 +0000 (12:43 +0100)
Add a 10-second timeout for outgoing auth requests to prevent
connections from getting stuck when the remote peer goes silent
after the hello handshake but before responding to auth.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/services/unetmsg/files/usr/share/ucode/unetmsg/unetmsgd-remote.uc

index 63be3cbab04f513b1032e03b5dab66674a8da48f..8901869ee27afacd08ef4c298d7b403b7ebb54a0 100644 (file)
@@ -307,6 +307,8 @@ function network_open_channel(net, name, peer)
                if (!network_auth_valid(sock_data.name, sock_data.id, msg.token))
                        return;
 
+               if (sock_data.timer)
+                       sock_data.timer.cancel();
                sock_data.auth = true;
                core.dbg(`Outgoing connection to ${name} established\n`);
 
@@ -344,6 +346,9 @@ function network_open_channel(net, name, peer)
                        data_cb: auth_data_cb,
                        cb: auth_cb,
                });
+               sock_data.timer = uloop.timer(10 * 1000, () => {
+                       network_tx_socket_close(sock_data);
+               });
 
                return 0;
        };