Commit 2568dd1b authored by Anthony Foiani's avatar Anthony Foiani Committed by Greg Kroah-Hartman

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: default avatarAnthony Foiani <anthony.foiani@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 04948a34
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment