who me? I am not developer Blackhive sad that.
ConAddr ca;
ca.addrStr1 = "login1.l2mid.com";
ca.addr1 = 0;
ca.addrStr2 = "login2.l2mid.com";
ca.addr2 = 0;
m_Template.push_back(ca);
ConAddr ca2;
ca2.addrStr1 = "login3.l2mid.com";
ca2.addr1 = 0;
ca2.addrStr2 = "login4.l2mid.com";
ca2.addr2 = 0;
m_Template.push_back(ca2);
VIRTUALIZER_END;
}
struct ConnectData
{
UINT addr;
UINT port;
bool valid;
ConnectData() : addr(0), port(0), valid(0) {};
ConnectData(UINT a, UINT p) : addr(a), port(p), valid(false) {};
};
bool CanConnect(UINT addrVal, UINT port)
{
bool valid = false;
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(s != INVALID_SOCKET)
{
SOCKADDR_IN sockAddr;
memset(&sockAddr,0, sizeof(sockAddr));
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(port);
sockAddr.sin_addr.S_un.S_addr = addrVal;
typedef int (WSAAPI * _fcon)(IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen);
HMODULE hW = GetModuleHandle(L"Ws2_32.dll");
if(hW)
{
_fcon fCon = (_fcon)GetProcAddress(hW, "connect");
if(fCon)
{
int result = fCon(s,(SOCKADDR *)&sockAddr, sizeof(SOCKADDR_IN));
if(result == 0)
{
valid = true;
}else
{
valid = false;
}
}
}
closesocket(s);
}
return valid;
}