network_udp.c
changeset 4034 091963647651
parent 4026 f6faccd92b1c
child 4035 f468417d21b9
equal deleted inserted replaced
4033:f108c895d7b6 4034:091963647651
   470 // Broadcast to all ips
   470 // Broadcast to all ips
   471 static void NetworkUDPBroadCast(SOCKET udp)
   471 static void NetworkUDPBroadCast(SOCKET udp)
   472 {
   472 {
   473 	int i;
   473 	int i;
   474 	struct sockaddr_in out_addr;
   474 	struct sockaddr_in out_addr;
   475 	byte *bcptr;
       
   476 	uint32 bcaddr;
       
   477 	Packet *p;
   475 	Packet *p;
   478 
   476 
   479 	// Init the packet
   477 	// Init the packet
   480 	p = NetworkSend_Init(PACKET_UDP_CLIENT_FIND_SERVER);
   478 	p = NetworkSend_Init(PACKET_UDP_CLIENT_FIND_SERVER);
   481 
   479 
   482 	// Go through all the ips on this pc
       
   483 	i = 0;
   480 	i = 0;
   484 	while (_network_ip_list[i] != 0) {
   481 	while (_broadcast_list[i] != 0) {
   485 		bcaddr = _network_ip_list[i];
       
   486 		bcptr = (byte *)&bcaddr;
       
   487 		// Make the address a broadcast address
       
   488 		bcptr[3] = 255;
       
   489 
       
   490 		DEBUG(net, 6)("[NET][UDP] Broadcasting to %s", inet_ntoa(*(struct in_addr *)&bcaddr));
       
   491 
       
   492 		out_addr.sin_family = AF_INET;
   482 		out_addr.sin_family = AF_INET;
   493 		out_addr.sin_port = htons(_network_server_port);
   483 		out_addr.sin_port = htons(_network_server_port);
   494 		out_addr.sin_addr.s_addr = bcaddr;
   484 		out_addr.sin_addr.s_addr = _broadcast_list[i];
       
   485 
       
   486 		DEBUG(net, 6)("[NET][UDP] Broadcasting to %s", inet_ntoa(out_addr.sin_addr));
   495 
   487 
   496 		NetworkSendUDP_Packet(udp, p, &out_addr);
   488 		NetworkSendUDP_Packet(udp, p, &out_addr);
   497 
   489 
   498 		i++;
   490 		i++;
   499 	}
   491 	}