Y:\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)))