mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-09-08 06:31:58 +00:00
allows multicast to be used as a subscription server
This commit is contained in:
@@ -195,6 +195,25 @@ int bind_to_udp(char *socket_name, int multicast, int broadcast) {
|
||||
uws_addr.sin_family = AF_INET;
|
||||
uws_addr.sin_port = htons(atoi(udp_port + 1));
|
||||
|
||||
#ifdef UWSGI_MULTICAST
|
||||
if (!broadcast && !multicast) {
|
||||
char quad[4];
|
||||
char *first_part = strchr(socket_name, '.');
|
||||
if (first_part-socket_name < 4) {
|
||||
memset(quad, 0, 4);
|
||||
memcpy(quad, socket_name, first_part-socket_name);
|
||||
if (atoi(quad) >= 224 && atoi(quad) <= 239) {
|
||||
multicast = 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (!broadcast) {
|
||||
#endif
|
||||
if (!strcmp(socket_name, "255.255.255.255")) {
|
||||
broadcast = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (broadcast) {
|
||||
uws_addr.sin_addr.s_addr = INADDR_BROADCAST;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user