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 } |