equal
deleted
inserted
replaced
189 uint32 seed[2]; |
189 uint32 seed[2]; |
190 } FutureSeeds; |
190 } FutureSeeds; |
191 |
191 |
192 // remember some future seeds that the server sent to us. |
192 // remember some future seeds that the server sent to us. |
193 static FutureSeeds _future_seed[8]; |
193 static FutureSeeds _future_seed[8]; |
194 static int _num_future_seed; |
194 static uint _num_future_seed; |
195 |
195 |
196 static SOCKET _listensocket; // tcp socket |
196 static SOCKET _listensocket; // tcp socket |
197 |
197 |
198 static SOCKET _udp_client_socket; // udp server socket |
198 static SOCKET _udp_client_socket; // udp server socket |
199 static SOCKET _udp_server_socket; // udp client socket |
199 static SOCKET _udp_server_socket; // udp client socket |
681 default: |
681 default: |
682 error("unknown packet type"); |
682 error("unknown packet type"); |
683 } |
683 } |
684 } |
684 } |
685 |
685 |
686 assert(size>=0 && size < sizeof(cs->buf)); |
686 assert(size < sizeof(cs->buf)); |
687 |
687 |
688 memcpy(cs->buf, network_buffer + pos, size); |
688 memcpy(cs->buf, network_buffer + pos, size); |
689 } |
689 } |
690 |
690 |
691 cs->buflen = size; |
691 cs->buflen = size; |
1305 |
1305 |
1306 sendto(udp,(char *) &packet,sizeof(packet),0,(struct sockaddr *) &recv,sizeof(recv)); |
1306 sendto(udp,(char *) &packet,sizeof(packet),0,(struct sockaddr *) &recv,sizeof(recv)); |
1307 } |
1307 } |
1308 |
1308 |
1309 |
1309 |
1310 bool NetworkUDPSearchGame(byte ** _network_detected_serverip, unsigned short * _network_detected_serverport) { |
1310 bool NetworkUDPSearchGame(const byte ** _network_detected_serverip, unsigned short * _network_detected_serverport) { |
1311 struct UDPPacket packet; |
1311 struct UDPPacket packet; |
1312 int timeout=3000; |
1312 int timeout=3000; |
1313 |
1313 |
1314 NetworkGameListClear(); |
1314 NetworkGameListClear(); |
1315 |
1315 |
1334 DEBUG(misc,0) ("[NET][UDP] server found on %s", *_network_detected_serverip); |
1334 DEBUG(misc,0) ("[NET][UDP] server found on %s", *_network_detected_serverip); |
1335 } |
1335 } |
1336 |
1336 |
1337 } |
1337 } |
1338 |
1338 |
1339 return (_network_detected_serverport>0); |
1339 return (*_network_detected_serverport>0); |
1340 |
1340 |
1341 } |
1341 } |
1342 |
1342 |
1343 |
1343 |
1344 // *************************** // |
1344 // *************************** // |
1476 |
1476 |
1477 } |
1477 } |
1478 |
1478 |
1479 /* *************************************************** */ |
1479 /* *************************************************** */ |
1480 |
1480 |
1481 bool NetworkCoreConnectGame(byte* b, unsigned short port) |
1481 bool NetworkCoreConnectGame(const byte* b, unsigned short port) |
1482 { |
1482 { |
1483 if (!_network_available) return false; |
1483 if (!_network_available) return false; |
1484 |
1484 |
1485 if (strcmp((char *) b,"auto")==0) { |
1485 if (strcmp(b,"auto")==0) { |
1486 // do autodetect |
1486 // do autodetect |
1487 NetworkUDPSearchGame(&b, &port); |
1487 NetworkUDPSearchGame(&b, &port); |
1488 } |
1488 } |
1489 |
1489 |
1490 if (port==0) { |
1490 if (port==0) { |