From 3519eb154ff0efe376cb940c52d640ac34bd3f5c Mon Sep 17 00:00:00 2001 From: cxl Date: Mon, 8 Sep 2008 09:04:16 +0000 Subject: [PATCH] git-svn-id: svn://ultimatepp.org/upp/trunk@407 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Web/socket.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/uppsrc/Web/socket.cpp b/uppsrc/Web/socket.cpp index fd3762c95..d1141ad7f 100644 --- a/uppsrc/Web/socket.cpp +++ b/uppsrc/Web/socket.cpp @@ -161,6 +161,12 @@ bool Socket::Data::OpenServer(int port, bool nodelay, int listen_count, bool blo return true; } +Mutex& GetHostByNameMutex() +{ + static StaticCriticalSection m; + return m; +} + bool Socket::Data::OpenClient(const char *host, int port, bool nodelay, dword *my_addr, int timeout, bool block) { SLOG("Socket::Data::OpenClient(" << host << ':' << port << ", timeout " << timeout << ", block " << block << ')'); @@ -171,7 +177,7 @@ bool Socket::Data::OpenClient(const char *host, int port, bool nodelay, dword *m sockaddr_in addr; { - CriticalSection::Lock __(host_lock); + CriticalSection::Lock __(GetHostByNameMutex()); Socket::Init(); hostent *he = gethostbyname(host); if(!he) {