luci-mod-network: repair DHCP relay validation logic
authorPaul Donald <newtwen@gmail.com>
Wed, 24 Jan 2024 23:42:38 +0000 (00:42 +0100)
committerPaul Donald <newtwen@gmail.com>
Thu, 25 Jan 2024 00:27:50 +0000 (01:27 +0100)
change && to || so as not to backtrace if only one was empty/null.

Signed-off-by: Paul Donald <newtwen@gmail.com>
(cherry picked from commit 754b36d05ac26e1ddc68d8726e01faa38f9fe948)

modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js

index c46919fe699a3a66e839302a9c9f12187e8d0f3d..a123f9b342472043e9247c3a66eb3ef1086c42e5 100644 (file)
@@ -394,21 +394,24 @@ return view.extend({
                        var m = this.section.formvalue(section, 'local_addr'),
                            n = this.section.formvalue(section, 'server_addr'),
                            p;
-                       if (n != null && n != '')
-                           p = n.split('#');
+
+                       if (!m || !n) {
+                               return _('Both "Relay from" and "Relay to address" must be specified.');
+                       }
+                       else {
+                               p = n.split('#');
                                if (p.length > 1 && !/^[0-9]+$/.test(p[1]))
                                        return _('Expected port number.');
                                else
                                        n = p[0];
 
-                       if ((m == null || m == '') && (n == null || n == ''))
-                               return _('Both "Relay from" and "Relay to address" must be specified.');
-
-                       if ((validation.parseIPv6(m) && validation.parseIPv6(n)) ||
-                               validation.parseIPv4(m) && validation.parseIPv4(n))
-                               return true;
-                       else
-                               return _('Address families of "Relay from" and "Relay to address" must match.')
+                               if ((validation.parseIPv6(m) && validation.parseIPv6(n)) ||
+                                       validation.parseIPv4(m) && validation.parseIPv4(n))
+                                       return true;
+                               else
+                                       return _('Address families of "Relay from" and "Relay to address" must match.')
+                       }
+                       return true;
                };
 
                so = ss.option(widgets.NetworkSelect, 'interface', _('Only accept replies via'));