diff options
| author | oy <Tom_Adams@web.de> | 2011-03-28 20:11:28 +0200 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-28 20:11:28 +0200 |
| commit | 34a9ca20a75db36d63549a8a9dfe2cc5e21f338d (patch) | |
| tree | c183c859ea5c61f332c01dc95fd29ddb6c900fe0 /src/engine/client | |
| parent | 63d2019b1913f6d467901022d460edfea62b2c6f (diff) | |
| download | zcatch-34a9ca20a75db36d63549a8a9dfe2cc5e21f338d.tar.gz zcatch-34a9ca20a75db36d63549a8a9dfe2cc5e21f338d.zip | |
added ipv6 support from the old lua branch
Diffstat (limited to 'src/engine/client')
| -rw-r--r-- | src/engine/client/client.cpp | 28 | ||||
| -rw-r--r-- | src/engine/client/serverbrowser.cpp | 6 |
2 files changed, 12 insertions, 22 deletions
diff --git a/src/engine/client/client.cpp b/src/engine/client/client.cpp index 198f5f1a..a39bfb5b 100644 --- a/src/engine/client/client.cpp +++ b/src/engine/client/client.cpp @@ -692,20 +692,8 @@ void CClient::Connect(const char *pAddress) m_pConsole->Print(IConsole::OUTPUT_LEVEL_STANDARD, "client", aBuf); ServerInfoRequest(); - str_copy(aBuf, m_aServerAddressStr, sizeof(aBuf)); - for(int k = 0; aBuf[k]; k++) - { - if(aBuf[k] == ':') - { - Port = str_toint(aBuf+k+1); - aBuf[k] = 0; - break; - } - } - - // TODO: IPv6 support - if(net_host_lookup(aBuf, &m_ServerAddress, NETTYPE_IPV4) != 0) + if(net_host_lookup(m_aServerAddressStr, &m_ServerAddress, NETTYPE_ALL) != 0) { char aBufMsg[256]; str_format(aBufMsg, sizeof(aBufMsg), "could not find the address of %s, connecting to localhost", aBuf); @@ -714,7 +702,8 @@ void CClient::Connect(const char *pAddress) } m_RconAuthed = 0; - m_ServerAddress.port = Port; + if(m_ServerAddress.port == 0) + m_ServerAddress.port = Port; m_NetClient.Connect(&m_ServerAddress); SetState(IClient::STATE_CONNECTING); @@ -1119,9 +1108,7 @@ void CClient::ProcessConnlessPacket(CNetChunk *pPacket) Info.m_NumPlayers < 0 || Info.m_NumPlayers > Info.m_NumClients || Info.m_MaxPlayers < 0 || Info.m_MaxPlayers > Info.m_MaxClients) return; - str_format(Info.m_aAddress, sizeof(Info.m_aAddress), "%d.%d.%d.%d:%d", - pPacket->m_Address.ip[0], pPacket->m_Address.ip[1], pPacket->m_Address.ip[2], - pPacket->m_Address.ip[3], pPacket->m_Address.port); + net_addr_str(&pPacket->m_Address, Info.m_aAddress, sizeof(Info.m_aAddress)); for(int i = 0; i < Info.m_NumClients; i++) { @@ -1868,7 +1855,12 @@ void CClient::Run() { NETADDR BindAddr; mem_zero(&BindAddr, sizeof(BindAddr)); - m_NetClient.Open(BindAddr, 0); + BindAddr.type = NETTYPE_ALL; + if(!m_NetClient.Open(BindAddr, 0)) + { + dbg_msg("client", "couldn't start network"); + return; + } } // connect to the server if wanted diff --git a/src/engine/client/serverbrowser.cpp b/src/engine/client/serverbrowser.cpp index d4efe975..55d25f8a 100644 --- a/src/engine/client/serverbrowser.cpp +++ b/src/engine/client/serverbrowser.cpp @@ -492,12 +492,10 @@ void CServerBrowser::Refresh(int Type) mem_copy(Buffer, SERVERBROWSE_GETINFO, sizeof(SERVERBROWSE_GETINFO)); Buffer[sizeof(SERVERBROWSE_GETINFO)] = m_CurrentToken; + /* do the broadcast version */ Packet.m_ClientID = -1; mem_zero(&Packet, sizeof(Packet)); - Packet.m_Address.ip[0] = 255; - Packet.m_Address.ip[1] = 255; - Packet.m_Address.ip[2] = 255; - Packet.m_Address.ip[3] = 255; + Packet.m_Address.type = NETTYPE_ALL|NETTYPE_LINK_BROADCAST; Packet.m_Flags = NETSENDFLAG_CONNLESS; Packet.m_DataSize = sizeof(Buffer); Packet.m_pData = Buffer; |