udp: add more error checking to udp_bind()

This commit is contained in:
Jaroslav Kysela 2014-10-15 11:31:12 +02:00
parent b7c8a30862
commit d239e65363

View file

@ -181,7 +181,12 @@ udp_bind ( const char *subsystem, const char *name,
}
/* Mark reuse address */
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))) {
tvherror(subsystem, "%s - failed to reuse address for socket [%s]",
name, strerror(errno));
udp_close(uc);
return UDP_FATAL_ERROR;
}
/* Bind to interface */
ifindex = udp_ifindex_required(uc) ? udp_get_ifindex(ifname) : 0;
@ -260,7 +265,11 @@ udp_bind ( const char *subsystem, const char *name,
}
addrlen = sizeof(uc->ip);
getsockname(fd, (struct sockaddr *)&uc->ip, &addrlen);
if (getsockname(fd, (struct sockaddr *)&uc->ip, &addrlen)) {
tvherror(subsystem, "%s - cannot obtain socket name [%s]",
name, strerror(errno));
goto error;
}
/* Increase RX buffer size */
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &rxsize, sizeof(rxsize)) == -1)