staging: usbip: use local variable while setting up socket

Using a simple integer makes the code easier to read and removes the
need to blank out array elements in case of errors.

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Anthony Foiani 2013-07-08 00:52:41 -06:00 committed by Greg Kroah-Hartman
parent 04948a3469
commit 2568dd1b6b

View file

@ -348,36 +348,33 @@ static int listen_all_addrinfo(struct addrinfo *ai_head, int sockfdlist[])
int ret, nsockfd = 0;
for (ai = ai_head; ai && nsockfd < MAXSOCKFD; ai = ai->ai_next) {
sockfdlist[nsockfd] = socket(ai->ai_family, ai->ai_socktype,
ai->ai_protocol);
if (sockfdlist[nsockfd] < 0)
int sock = socket(ai->ai_family, ai->ai_socktype,
ai->ai_protocol);
if (sock < 0)
continue;
usbip_net_set_reuseaddr(sockfdlist[nsockfd]);
usbip_net_set_nodelay(sockfdlist[nsockfd]);
usbip_net_set_reuseaddr(sock);
usbip_net_set_nodelay(sock);
if (sockfdlist[nsockfd] >= FD_SETSIZE) {
close(sockfdlist[nsockfd]);
sockfdlist[nsockfd] = -1;
if (sock >= FD_SETSIZE) {
close(sock);
continue;
}
ret = bind(sockfdlist[nsockfd], ai->ai_addr, ai->ai_addrlen);
ret = bind(sock, ai->ai_addr, ai->ai_addrlen);
if (ret < 0) {
close(sockfdlist[nsockfd]);
sockfdlist[nsockfd] = -1;
close(sock);
continue;
}
ret = listen(sockfdlist[nsockfd], SOMAXCONN);
ret = listen(sock, SOMAXCONN);
if (ret < 0) {
close(sockfdlist[nsockfd]);
sockfdlist[nsockfd] = -1;
close(sock);
continue;
}
log_addrinfo(ai);
nsockfd++;
sockfdlist[nsockfd++] = sock;
}
if (nsockfd == 0)