From: Andre Noll <maan@systemlinux.org>
Date: Sun, 8 Sep 2013 04:37:30 +0000 (+0000)
Subject: net: makesock(): Combine code for passive sockets.
X-Git-Tag: v0.5.2~11^2~7
X-Git-Url: https://git.tuebingen.mpg.de/?a=commitdiff_plain;h=88bdd8c140222998d4ec31812cbf8ef108baa910;p=paraslash.git

net: makesock(): Combine code for passive sockets.

Make use of  the fact that

	if (a && b)
		foo;
	if (a)
		bar;
	else
		baz;

is equivalent to

	if (a) {
		if (b)
			foo;
		bar;
	} else
		baz;

but the second form is easier to read, IMHO.
---

diff --git a/net.c b/net.c
index a95f145a..dfbbc1ee 100644
--- a/net.c
+++ b/net.c
@@ -441,21 +441,21 @@ static int makesock_addrinfo(unsigned l4type, bool passive, struct addrinfo *ai,
 			goto get_next_dst;
 		sockfd = ret;
 		flowopt_setopts(sockfd, fo);
-		/*
-		 * Reuse the address on passive sockets to avoid failure on
-		 * restart (protocols using listen()) and when creating
-		 * multiple listener instances (UDP multicast).
-		 */
-		if (passive && setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR,
-						  &on, sizeof(on)) == -1) {
-			ret = -ERRNO_TO_PARA_ERROR(errno);
-			close(sockfd);
-			PARA_ERROR_LOG("can not set SO_REUSEADDR: %s\n",
-				para_strerror(-ret));
-			break;
-		}
-
 		if (passive) {
+			/*
+			 * Reuse the address on passive sockets to avoid
+			 * failure on restart (protocols using listen()) and
+			 * when creating multiple listener instances (UDP
+			 * multicast).
+			 */
+			if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &on,
+					sizeof(on)) == -1) {
+				ret = -ERRNO_TO_PARA_ERROR(errno);
+				close(sockfd);
+				PARA_ERROR_LOG("can not set SO_REUSEADDR: %s\n",
+					para_strerror(-ret));
+				break;
+			}
 			if (bind(sockfd, src->ai_addr, src->ai_addrlen) < 0) {
 				close(sockfd);
 				goto get_next_src;