Commit 2e021726 authored by fallenstardust's avatar fallenstardust

revert BeginRefreshHost()

parent 670359ae
......@@ -4164,11 +4164,19 @@ void DuelClient::BeginRefreshHost() {
remotes.clear();
hosts.clear();
event_base* broadev = event_base_new();
#ifdef _IRR_ANDROID_PLATFORM_
//get local ip address in android style
int ipaddr = android::getLocalAddr(mainGame->appMain);
if (ipaddr == -1) {
return;
}
#else
char hname[256];
gethostname(hname, 256);
hostent* host = gethostbyname(hname);
if(!host)
return;
#endif
SOCKET reply = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sockaddr_in reply_addr;
memset(&reply_addr, 0, sizeof(reply_addr));
......@@ -4193,6 +4201,20 @@ void DuelClient::BeginRefreshHost() {
sockTo.sin_port = htons(7920);
HostRequest hReq;
hReq.identifier = NETWORK_CLIENT_ID;
#ifdef _IRR_ANDROID_PLATFORM_
local.sin_addr.s_addr = ipaddr;
SOCKET sSend = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (sSend == INVALID_SOCKET)
return;
int opt = TRUE;
setsockopt(sSend, SOL_SOCKET, SO_BROADCAST, (const char*) &opt, sizeof opt);
if (bind(sSend, (sockaddr*) &local, sizeof(sockaddr)) == SOCKET_ERROR) {
closesocket(sSend);
return;
}
sendto(sSend, (const char*) &hReq, sizeof(HostRequest), 0, (sockaddr*) &sockTo, sizeof(sockaddr));
closesocket(sSend);
#else
for(int i = 0; i < 8; ++i) {
if(host->h_addr_list[i] == 0)
break;
......@@ -4211,6 +4233,7 @@ void DuelClient::BeginRefreshHost() {
sendto(sSend, (const char*)&hReq, sizeof(HostRequest), 0, (sockaddr*)&sockTo, sizeof(sockaddr));
closesocket(sSend);
}
#endif
}
int DuelClient::RefreshThread(event_base* broadev) {
event_base_dispatch(broadev);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment