rendered paste bodyY:\PROJECTS\ditto>diff -Nurp Client.cpp Client_fixed.cpp
--- Client.cpp 2006-11-04 08:00:37.689250000 +0300
+++ Client_fixed.cpp 2006-11-04 07:58:47.517375000 +0300
@@ -232,19 +232,22 @@ BOOL CClient::OpenConnection(const TCHAR
else
{
addr = inet_addr(csServerNameA);
- hp = gethostbyaddr((char*)&addr,sizeof(addr),AF_INET);
}
- if(hp == NULL)
+ if(hp == NULL && (addr == 0 || addr == INADDR_NONE))
{
LogSendRecieveInfo("ERROR - if(hp==NULL)");
closesocket(m_Connection);
m_Connection = NULL;
return FALSE;
- }
+ }
+ else if((addr == 0 || addr == INADDR_NONE))
+ {
+ addr = *(unsigned int*)hp->h_addr;
+ }
- server.sin_addr.s_addr = *((unsigned long*)hp->h_addr);
+ server.sin_addr.s_addr = addr;
server.sin_family = AF_INET;
server.sin_port = htons((u_short) g_Opt.m_lPort);
if(connect(m_Connection, (struct sockaddr*)&server, sizeof(server)))