udp: add more error checking to udp_bind()
This commit is contained in:
parent
b7c8a30862
commit
d239e65363
1 changed files with 11 additions and 2 deletions
13
src/udp.c
13
src/udp.c
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue