From f5564607a134c328895cebda2a24ad34e91fd4f1 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 22 Jan 2016 20:48:58 +0100 Subject: [PATCH] Native fixed UDP broadcast --- app/src/main/jni/netguard/netguard.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/jni/netguard/netguard.c b/app/src/main/jni/netguard/netguard.c index 4de7df9f..5c347042 100644 --- a/app/src/main/jni/netguard/netguard.c +++ b/app/src/main/jni/netguard/netguard.c @@ -934,6 +934,16 @@ jboolean handle_udp(const struct arguments *args, const uint8_t *buffer, uint16_ return 0; } else { + // Check for broacast + uint32_t broadcast = INADDR_BROADCAST; + if (memcmp(&iphdr->saddr, &broadcast, sizeof(broadcast)) == 0) { + log_android(ANDROID_LOG_WARN, "UDP broadcast"); + int on = 1; + if (setsockopt(u->socket, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on))) + log_android(ANDROID_LOG_ERROR, "UDP setsockopt error %d: %s", + errno, strerror(errno)); + } + protect_socket(args, u->socket); if (last == NULL) @@ -943,7 +953,6 @@ jboolean handle_udp(const struct arguments *args, const uint8_t *buffer, uint16_ cur = u; } - } char source[40];