If port 0 is provided for binding, bind the socket to the next free port from the...
authorAdrian Bondrescu <adi.bondrescu@gmail.com>
Sun, 8 Jul 2012 18:04:00 +0000 (21:04 +0300)
committerAdrian Bondrescu <adi.bondrescu@gmail.com>
Sun, 8 Jul 2012 18:04:00 +0000 (21:04 +0300)
src/kernel/mptp.c

index 94c5263..a2ec2bc 100644 (file)
@@ -97,6 +97,8 @@ static int mptp_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
 
        log_debug("Bind received port=%u (network order)\n", mptp_addr->dests[0].port);
        port = ntohs(mptp_addr->dests[0].port);
+       if (port == 0)
+               port = get_next_free_port();
 
        if (unlikely(port == 0 || port >= MAX_MPTP_PORT)) {
                log_error("Invalid value for sockaddr port (%u)\n", port);