network.c
changeset 175 d6cccece959a
parent 173 df7c566d219f
child 177 71fec20dd4a8
equal deleted inserted replaced
174:bd79fb899824 175:d6cccece959a
   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) {