]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/misc-progs/wirelessctrl.c
Allow also ip/netmask for blue access.
[people/pmueller/ipfire-2.x.git] / src / misc-progs / wirelessctrl.c
index bfd4527041fe437c5658998b8851eb87aa66b8d1..12b954baa3f8509ae088fa7990694fd2f2f6dc63 100644 (file)
@@ -101,6 +101,9 @@ int main(void)
                                                        exit(0);
                                }
 
+                               if ((fd = fopen(CONFIG_ROOT "/wireless/nodrop", "r")))
+                                       return 0;
+
                                /* register exit handler to ensure the block rule is always present */
                                atexit(exithandler);
 
@@ -148,7 +151,7 @@ int main(void)
 
                                                        /* both specified, added security */
                                                        if ((strlen(macaddress) == 17) &&
-                                                                       (VALID_IP(ipaddress))) {
+                                                                       (VALID_IP_AND_MASK(ipaddress))) {
                                                                        snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -m mac --mac-source %s -s %s -i %s -j ACCEPT", macaddress, ipaddress, blue_dev);
                                                                        safe_system(command);
                                                                        snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -m mac --mac-source %s -s %s -i %s ! -o %s -j ACCEPT", macaddress, ipaddress, blue_dev, green_dev);
@@ -167,7 +170,7 @@ int main(void)
                                                                                                        safe_system(command);
                                                                        }
 
-                                                                       if (VALID_IP(ipaddress)) {
+                                                                       if (VALID_IP_AND_MASK(ipaddress)) {
                                                                                                        snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSINPUT -s %s -i %s -j ACCEPT", ipaddress, blue_dev);
                                                                                                        safe_system(command);
                                                                                                        snprintf(command, STRING_SIZE-1, "/sbin/iptables -A WIRELESSFORWARD -s %s -i %s ! -o %s -j ACCEPT", ipaddress, blue_dev, green_dev);