Merge pull request #19378 from Faless/udp_bcast

Set SO_BROADCAST socket option for UDP sockets.
This commit is contained in:
Max Hilbrunner 2018-06-05 12:54:39 +02:00 committed by GitHub
commit 6a69f92370
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -124,6 +124,13 @@ static int _socket_create(IP::Type &p_type, int type, int protocol) {
WARN_PRINT("Unable to set/unset IPv4 address mapping over IPv6");
}
}
if (protocol == IPPROTO_UDP && p_type != IP::TYPE_IPV6) {
// Enable broadcasting for UDP sockets if it's not IPv6 only (IPv6 has no broadcast option).
int broadcast = 1;
if (setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (char *)&broadcast, sizeof(broadcast)) != 0) {
WARN_PRINT("Error when enabling broadcasting");
}
}
return sockfd;
}