Set SO_BROADCAST socket option for UDP sockets.

This commit is contained in:
Fabio Alessandrelli 2018-06-02 20:08:33 +02:00
parent 6e32a2886f
commit 69817232ff

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