Revision
14882
Author
brian
Date
2009-09-16 08:55:23 -0500 (Wed, 16 Sep 2009)

Log Message

 FSCORE-440 

Modified Paths

Diff

Modified: freeswitch/trunk/src/switch_utils.c (14881 => 14882)


--- freeswitch/trunk/src/switch_utils.c	2009-09-16 04:22:24 UTC (rev 14881)
+++ freeswitch/trunk/src/switch_utils.c	2009-09-16 13:55:23 UTC (rev 14882)
@@ -831,6 +831,7 @@
 	INTERFACE_INFO interfaces[20];
 	unsigned long bytes;
 	int interface_count, x;
+	int r = -1;
 
 	*mask = 0;
 
@@ -839,7 +840,8 @@
 	}
 
 	if (WSAIoctl(sock, SIO_GET_INTERFACE_LIST, 0, 0, &interfaces, sizeof(interfaces), &bytes, 0, 0) == SOCKET_ERROR) {
-		return -1;
+		r = -1;
+		goto end;
 	}
 
     interface_count = bytes / sizeof(INTERFACE_INFO);
@@ -850,11 +852,14 @@
 		if (addr->sin_addr.s_addr == me->sin_addr.s_addr) {
 			struct sockaddr_in *netmask = (struct sockaddr_in *) & (interfaces[x].iiNetmask);
 			*mask = netmask->sin_addr.s_addr;
+			r = 0;
 			break;
 		}
     }
 
-	return 0;
+end:
+	closesocket(sock);
+	return r;
 }
 
 #else