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

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
Loading
Loading
Loading
Loading
+12 −15
Original line number Diff line number Diff line
@@ -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,
		int sock = socket(ai->ai_family, ai->ai_socktype,
				  ai->ai_protocol);
		if (sockfdlist[nsockfd] < 0)
		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)