summaryrefslogtreecommitdiff
path: root/src/network/core/host.cpp
diff options
context:
space:
mode:
authorglx <glx@openttd.org>2008-08-04 13:54:10 +0000
committerglx <glx@openttd.org>2008-08-04 13:54:10 +0000
commit0f109390299073f805846675a9be1fd710f8644f (patch)
treef585675c447b201eb53f9ad050884f1a29e95989 /src/network/core/host.cpp
parent7a50ae28d54559a2c28c7b133f0c854cceb061ba (diff)
downloadopenttd-0f109390299073f805846675a9be1fd710f8644f.tar.xz
(svn r13990) -Fix (r13988): win32 compilation failed
Diffstat (limited to 'src/network/core/host.cpp')
-rw-r--r--src/network/core/host.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/network/core/host.cpp b/src/network/core/host.cpp
index e1469e069..87f92d1fd 100644
--- a/src/network/core/host.cpp
+++ b/src/network/core/host.cpp
@@ -7,6 +7,7 @@
#include "../../stdafx.h"
#include "../../debug.h"
#include "os_abstraction.h"
+#include "../../core/alloc_func.hpp"
/**
* Internal implementation for finding the broadcast IPs.
@@ -117,15 +118,15 @@ static int NetworkFindBroadcastIPsInternal(uint32 *broadcast, int limit) // Win3
if (sock == INVALID_SOCKET) return 0;
DWORD len = 0;
- INTERFACE_INFO ifo[MAX_INTERFACES];
- memset(&ifo[0], 0, sizeof(ifo));
- if ((WSAIoctl(sock, SIO_GET_INTERFACE_LIST, NULL, 0, &ifo[0], sizeof(ifo), &len, NULL, NULL)) != 0) {
+ INTERFACE_INFO *ifo = AllocaM(INTERFACE_INFO, limit);
+ memset(ifo, 0, limit * sizeof(*ifo));
+ if ((WSAIoctl(sock, SIO_GET_INTERFACE_LIST, NULL, 0, &ifo[0], limit * sizeof(*ifo), &len, NULL, NULL)) != 0) {
closesocket(sock);
- return;
+ return 0;
}
int index = 0;
- for (int j = 0; j < len / sizeof(*ifo) && index != limit; j++) {
+ for (uint j = 0; j < len / sizeof(*ifo) && index != limit; j++) {
if (ifo[j].iiFlags & IFF_LOOPBACK) continue;
if (!(ifo[j].iiFlags & IFF_BROADCAST)) continue;