From e21cbee0b171d8f59f317da26b0955d90dad4490 Mon Sep 17 00:00:00 2001
From: joris <joris.dauphin@gmail.com>
Date: Mon, 13 Aug 2012 14:37:39 +0200
Subject: [PATCH] Clean up.

---
 src/include/net_lowlevel.h |   4 +-
 src/network/lowlevel.cpp   | 168 ++++++++++++++++---------------------
 2 files changed, 74 insertions(+), 98 deletions(-)

diff --git a/src/include/net_lowlevel.h b/src/include/net_lowlevel.h
index 35420a2f6..1fddd02b4 100644
--- a/src/include/net_lowlevel.h
+++ b/src/include/net_lowlevel.h
@@ -134,9 +134,9 @@ extern unsigned long NetResolveHost(const std::string &host);
 /// Get local IP from network file descriptor
 extern int NetSocketAddr(const Socket sock);
 /// Open a UDP Socket port.
-extern Socket NetOpenUDP(char *addr, int port);
+extern Socket NetOpenUDP(const char *addr, int port);
 /// Open a TCP Socket port.
-extern Socket NetOpenTCP(char *addr, int port);
+extern Socket NetOpenTCP(const char *addr, int port);
 /// Close a UDP socket port.
 extern void NetCloseUDP(Socket sockfd);
 /// Close a TCP socket port.
diff --git a/src/network/lowlevel.cpp b/src/network/lowlevel.cpp
index 2939c7d7f..b8dc59bf5 100644
--- a/src/network/lowlevel.cpp
+++ b/src/network/lowlevel.cpp
@@ -203,15 +203,10 @@ int NetSetNonBlocking(Socket sockfd)
 */
 unsigned long NetResolveHost(const std::string &host)
 {
-	unsigned long addr;
-
 	if (!host.empty()) {
-		addr = inet_addr(host.c_str()); // try dot notation
+		unsigned long addr = inet_addr(host.c_str()); // try dot notation
 		if (addr == INADDR_NONE) {
-			struct hostent *he;
-
-			he = 0;
-			he = gethostbyname(host.c_str());
+			struct hostent *he = gethostbyname(host.c_str());
 			if (he) {
 				addr = 0;
 				Assert(he->h_length == 4);
@@ -239,12 +234,10 @@ unsigned long NetResolveHost(const std::string &host)
 int NetSocketAddr(const Socket sock)
 {
 	INTERFACE_INFO localAddr[MAX_LOC_IP];  // Assume there will be no more than MAX_LOC_IP interfaces
-	DWORD bytesReturned;
-	SOCKADDR_IN *pAddrInet;
-	u_long SetFlags;
 	int nif = 0;
 
 	if (sock != static_cast<Socket>(-1)) {
+		DWORD bytesReturned;
 		int wsError = WSAIoctl(sock, SIO_GET_INTERFACE_LIST, NULL, 0, &localAddr,
 							   sizeof(localAddr), &bytesReturned, NULL, NULL);
 		if (wsError == SOCKET_ERROR) {
@@ -252,16 +245,16 @@ int NetSocketAddr(const Socket sock)
 		}
 
 		// parse interface information
-		int numLocalAddr = (bytesReturned / sizeof(INTERFACE_INFO));
+		const int numLocalAddr = (bytesReturned / sizeof(INTERFACE_INFO));
 		for (int i = 0; i < numLocalAddr; ++i) {
-			SetFlags = localAddr[i].iiFlags;
+			u_long SetFlags = localAddr[i].iiFlags;
 			if ((SetFlags & IFF_UP) == 0) {
 				continue;
 			}
 			if ((SetFlags & IFF_LOOPBACK)) {
 				continue;
 			}
-			pAddrInet = (SOCKADDR_IN *)&localAddr[i].iiAddress;
+			SOCKADDR_IN *pAddrInet = (SOCKADDR_IN *)&localAddr[i].iiAddress;
 			NetLocalAddrs[nif] = pAddrInet->sin_addr.s_addr;
 			++nif;
 			if (nif == MAX_LOC_IP) {
@@ -278,76 +271,71 @@ int NetSocketAddr(const Socket sock)
 // trouble..
 int NetSocketAddr(const Socket sock)
 {
+	if (sock == static_cast<Socket>(-1)) {
+		return 0;
+	}
+	ifc.ifc_len = sizeof(buf);
+	ifc.ifc_buf = buf;
+	if (ioctl(sock, SIOCGIFCONF, (char *)&ifc) < 0) {
+		DebugPrint("SIOCGIFCONF - errno %d\n" _C_ errno);
+		return 0;
+	}
+	// with some inspiration from routed..
 	char buf[4096];
-	char *cp;
-	char *cplim;
 	struct ifconf ifc;
-	struct ifreq ifreq;
-	struct ifreq *ifr;
-	struct sockaddr_in *sap;
-	struct sockaddr_in sa;
 	int nif = 0;
+	struct ifreq *ifr = ifc.ifc_req;
+	char *cplim = buf + ifc.ifc_len; // skip over if's with big ifr_addr's
 
-	if (sock != static_cast<Socket>(-1)) {
-		ifc.ifc_len = sizeof(buf);
-		ifc.ifc_buf = buf;
-		if (ioctl(sock, SIOCGIFCONF, (char *)&ifc) < 0) {
-			DebugPrint("SIOCGIFCONF - errno %d\n" _C_ errno);
-			return 0;
+	for (char *cp = buf; cp < cplim;
+		cp += sizeof(ifr->ifr_name) + sizeof(ifr->ifr_ifru)) {
+		struct ifreq ifr = (struct ifreq *)cp;
+		ifreq = *ifr;
+		if (ioctl(sock, SIOCGIFFLAGS, (char *)&ifreq) < 0) {
+			DebugPrint("%s: SIOCGIFFLAGS - errno %d\n" _C_
+					   ifr->ifr_name _C_ errno);
+			continue;
 		}
-		// with some inspiration from routed..
-		ifr = ifc.ifc_req;
-		cplim = buf + ifc.ifc_len; // skip over if's with big ifr_addr's
-		for (cp = buf; cp < cplim;
-			 cp += sizeof(ifr->ifr_name) + sizeof(ifr->ifr_ifru)) {
-			ifr = (struct ifreq *)cp;
-			ifreq = *ifr;
-			if (ioctl(sock, SIOCGIFFLAGS, (char *)&ifreq) < 0) {
-				DebugPrint("%s: SIOCGIFFLAGS - errno %d\n" _C_
+		if ((ifreq.ifr_flags & IFF_UP) == 0 || ifr->ifr_addr.sa_family == AF_UNSPEC) {
+			continue;
+		}
+		// argh, this'll have to change sometime
+		if (ifr->ifr_addr.sa_family != AF_INET) {
+			continue;
+		}
+		if (ifreq.ifr_flags & IFF_LOOPBACK) {
+			continue;
+		}
+		struct sockaddr_in *sap = (struct sockaddr_in *)&ifr->ifr_addr;
+		struct sockaddr_in sa = *sap;
+		NetLocalAddrs[nif] = sap->sin_addr.s_addr;
+		if (ifreq.ifr_flags & IFF_POINTOPOINT) {
+			if (ioctl(sock, SIOCGIFDSTADDR, (char *)&ifreq) < 0) {
+				DebugPrint("%s: SIOCGIFDSTADDR - errno %d\n" _C_
 						   ifr->ifr_name _C_ errno);
+				// failed to obtain dst addr - ignore
 				continue;
 			}
-			if ((ifreq.ifr_flags & IFF_UP) == 0 || ifr->ifr_addr.sa_family == AF_UNSPEC) {
+			if (ifr->ifr_addr.sa_family == AF_UNSPEC) {
 				continue;
 			}
-			// argh, this'll have to change sometime
-			if (ifr->ifr_addr.sa_family != AF_INET) {
+		}
+		// avoid p-t-p links with common src
+		if (nif) {
+			int i;
+			for (i = 0; i < nif; ++i) {
+				if (sa.sin_addr.s_addr == NetLocalAddrs[i]) {
+					i = -1;
+					break;
+				}
+			}
+			if (i == -1) {
 				continue;
 			}
-			if (ifreq.ifr_flags & IFF_LOOPBACK) {
-				continue;
-			}
-			sap = (struct sockaddr_in *)&ifr->ifr_addr;
-			sa = *sap;
-			NetLocalAddrs[nif] = sap->sin_addr.s_addr;
-			if (ifreq.ifr_flags & IFF_POINTOPOINT) {
-				if (ioctl(sock, SIOCGIFDSTADDR, (char *)&ifreq) < 0) {
-					DebugPrint("%s: SIOCGIFDSTADDR - errno %d\n" _C_
-							   ifr->ifr_name _C_ errno);
-					// failed to obtain dst addr - ignore
-					continue;
-				}
-				if (ifr->ifr_addr.sa_family == AF_UNSPEC) {
-					continue;
-				}
-			}
-			// avoid p-t-p links with common src
-			if (nif) {
-				int i;
-				for (i = 0; i < nif; ++i) {
-					if (sa.sin_addr.s_addr == NetLocalAddrs[i]) {
-						i = -1;
-						break;
-					}
-				}
-				if (i == -1) {
-					continue;
-				}
-			}
-			++nif;
-			if (nif == MAX_LOC_IP) {
-				break;
-			}
+		}
+		++nif;
+		if (nif == MAX_LOC_IP) {
+			break;
 		}
 	}
 	return nif;
@@ -369,12 +357,11 @@ int NetSocketAddr(const Socket sock)
 **
 **  @return If success the socket fildes, -1 otherwise.
 */
-Socket NetOpenUDP(char *addr, int port)
+Socket NetOpenUDP(const char *addr, int port)
 {
-	Socket sockfd;
-
 	// open the socket
-	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+	Socket sockfd = socket(AF_INET, SOCK_DGRAM, 0);
+
 	if (sockfd == INVALID_SOCKET) {
 		return static_cast<Socket>(-1);
 	}
@@ -409,18 +396,16 @@ Socket NetOpenUDP(char *addr, int port)
 **
 **  @return If success the socket fildes, -1 otherwise
 */
-Socket NetOpenTCP(char *addr, int port)
+Socket NetOpenTCP(const char *addr, int port)
 {
-	Socket sockfd;
+	Socket sockfd = socket(AF_INET, SOCK_STREAM, 0);
 
-	sockfd = socket(AF_INET, SOCK_STREAM, 0);
 	if (sockfd == INVALID_SOCKET) {
 		return static_cast<Socket>(-1);
 	}
 	// bind local port
 	if (port) {
 		struct sockaddr_in sock_addr;
-		int opt;
 
 		memset(&sock_addr, 0, sizeof(sock_addr));
 		sock_addr.sin_family = AF_INET;
@@ -431,7 +416,7 @@ Socket NetOpenTCP(char *addr, int port)
 		}
 		sock_addr.sin_port = htons(port);
 
-		opt = 1;
+		int opt = 1;
 		setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (setsockopttype)&opt, sizeof(opt));
 
 		if (bind(sockfd, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) < 0) {
@@ -459,9 +444,7 @@ int NetConnectTCP(Socket sockfd, unsigned long addr, int port)
 {
 	struct sockaddr_in sa;
 #ifndef __BEOS__
-	int opt;
-
-	opt = 1;
+	int opt = 1;
 	setsockopt(sockfd, SOL_SOCKET, SO_KEEPALIVE, (setsockopttype)&opt, sizeof(opt));
 	opt = 0;
 	setsockopt(sockfd, SOL_SOCKET, SO_LINGER, (setsockopttype)&opt, sizeof(opt));
@@ -592,12 +575,11 @@ int NetSocketSetSocketReady(SocketSet *set, Socket socket)
 */
 int NetRecvUDP(Socket sockfd, void *buf, int len)
 {
-	socklen_t n;
-	int l;
 	struct sockaddr_in sock_addr;
+	socklen_t n = sizeof(struct sockaddr_in);
+	const int l = recvfrom(sockfd, (recvfrombuftype)buf, len, 0, (struct sockaddr *)&sock_addr, &n);
 
-	n = sizeof(struct sockaddr_in);
-	if ((l = recvfrom(sockfd, (recvfrombuftype)buf, len, 0, (struct sockaddr *)&sock_addr, &n)) < 0) {
+	if (l < 0) {
 		PrintFunction();
 		fprintf(stdout, "Could not read from UDP socket\n");
 		return -1;
@@ -623,10 +605,8 @@ int NetRecvUDP(Socket sockfd, void *buf, int len)
 */
 int NetRecvTCP(Socket sockfd, void *buf, int len)
 {
-	int ret;
-
 	NetLastSocket = sockfd;
-	ret = recv(sockfd, (recvbuftype)buf, len, 0);
+	int ret = recv(sockfd, (recvbuftype)buf, len, 0);
 	if (ret > 0) {
 		return ret;
 	}
@@ -657,16 +637,13 @@ int NetRecvTCP(Socket sockfd, void *buf, int len)
 int NetSendUDP(Socket sockfd, unsigned long host, int port,
 			   const void *buf, int len)
 {
-	int n;
 	struct sockaddr_in sock_addr;
 
-	n = sizeof(struct sockaddr_in);
+	const int n = sizeof(struct sockaddr_in);
 	sock_addr.sin_addr.s_addr = host;
 	sock_addr.sin_port = port;
 	sock_addr.sin_family = AF_INET;
 
-	// if (MyRand() % 7) { return 0; }
-
 	return sendto(sockfd, (sendtobuftype)buf, len, 0, (struct sockaddr *)&sock_addr, n);
 }
 
@@ -706,9 +683,8 @@ int NetListenTCP(Socket sockfd)
 Socket NetAcceptTCP(Socket sockfd)
 {
 	struct sockaddr_in sa;
-	socklen_t len;
+	socklen_t len = sizeof(struct sockaddr_in);
 
-	len = sizeof(struct sockaddr_in);
 	NetLastSocket = accept(sockfd, (struct sockaddr *)&sa, &len);
 	NetLastHost = sa.sin_addr.s_addr;
 	NetLastPort = sa.sin_port;