| 164 | } |
| 165 | |
| 166 | void InitMTSockets() { |
| 167 | #ifdef WIN32 |
| 168 | WSADATA ws_data; |
| 169 | WORD ver = MAKEWORD(1, 1); |
| 170 | #endif |
| 171 | int rcode; |
| 172 | uint32_t ip; |
| 173 | #ifdef WIN32 |
| 174 | int error = WSAStartup(ver, &ws_data); |
| 175 | if (error != 0) { |
| 176 | DLLmprintf(0, "There was an error initializing networking! Error=%d\n", error); |
| 177 | return; |
| 178 | } else |
| 179 | #endif |
| 180 | { |
| 181 | DLLmprintf(0, "Network initted successfully!\n"); |
| 182 | } |
| 183 | |
| 184 | { |
| 185 | static HOSTENT lhe; |
| 186 | memset(&sockaddr, 0, sizeof(SOCKADDR_IN)); |
| 187 | gtrackaddr.sin_family = AF_INET; |
| 188 | gtrackaddr.sin_addr.s_addr = INADDR_ANY; |
| 189 | gtrackaddr.sin_port = 0; |
| 190 | |
| 191 | gtrackaddr.sin_family = AF_INET; |
| 192 | // This would be a good place to resolve the IP based on a domain name |
| 193 | DLLmprintf(0, "Looking up hostname: %s.\n", GAMETRACKERNAME); |
| 194 | |
| 195 | DLLnw_Asyncgethostbyname(&ip, NW_AGHBN_LOOKUP, GAMETRACKERNAME); |
| 196 | |
| 197 | do { |
| 198 | rcode = DLLnw_Asyncgethostbyname(&ip, NW_AGHBN_READ, GAMETRACKERNAME); |
| 199 | |
| 200 | if (!*DLLDedicated_server) { |
| 201 | if (99 == DLLPollUI()) { |
| 202 | return; |
| 203 | } |
| 204 | } |
| 205 | } while (rcode == 0); |
| 206 | |
| 207 | if (rcode != 1) { |
| 208 | DLLmprintf(0, "Unable to gethostbyname(\"%s\").\n", GAMETRACKERNAME); |
| 209 | DLLmprintf(0, "WSAGetLastError() returned %d.\n", WSAGetLastError()); |
| 210 | DLLnw_Asyncgethostbyname(nullptr, NW_AGHBN_CANCEL, nullptr); |
| 211 | return; |
| 212 | } |
| 213 | |
| 214 | memcpy(>rackaddr.sin_addr.s_addr, &ip, 4); //&iaddr, 4); |
| 215 | gtrackaddr.sin_port = htons(GAMEPORT); |
| 216 | InitGameTrackerClient(GT_D3TNG); |
| 217 | } |
| 218 | { |
| 219 | |
| 220 | memset(&sockaddr, 0, sizeof(SOCKADDR_IN)); |
| 221 | sockaddr.sin_family = AF_INET; |
| 222 | sockaddr.sin_addr.s_addr = INADDR_ANY; |
| 223 | sockaddr.sin_port = 0; // htons(REGPORT); |
no test coverage detected