raop: Fix loop searching for port number

do...while not reachable, loop should try different ports in case EADDRINUSE is returned
Coverity ID: #1398161

Signed-off-by: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
This commit is contained in:
Peter Meerwald-Stadler 2017-02-22 15:02:43 +01:00
parent ad9c8603b0
commit df9cda67d2

View file

@ -799,13 +799,16 @@ static int open_bind_udp_socket(pa_raop_client *c, uint16_t *actual_port) {
} }
do { do {
*sa_port = htons(port); int ret;
if (bind(fd, sa, salen) < 0 && errno != EADDRINUSE) { *sa_port = htons(port);
pa_log("bind_socket() failed: %s", pa_cstrerror(errno)); ret = bind(fd, sa, salen);
if (!ret)
break;
if (ret < 0 && errno != EADDRINUSE) {
pa_log("bind() failed: %s", pa_cstrerror(errno));
goto fail; goto fail;
} }
break;
} while (++port > 0); } while (++port > 0);
pa_log_debug("Socket bound to port %d (SOCK_DGRAM)", port); pa_log_debug("Socket bound to port %d (SOCK_DGRAM)", port);