luci-mod-network: avoid needlessly writing `none` RA flags
authorJo-Philipp Wich <jo@mein.io>
Wed, 27 Apr 2022 10:18:29 +0000 (12:18 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 27 Apr 2022 10:19:13 +0000 (12:19 +0200)
Fixes: #5725
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js

index f8c7c6a7ff443f5acdb60e84228084be7a13c01d..5b99ae17cd2d0f15f63ce497417a3d1d6b05fa57 100644 (file)
@@ -805,7 +805,14 @@ return view.extend({
                                                return flags.length ? flags : [ 'other-config' ];
                                        };
                                        so.remove = function(section_id) {
-                                               uci.set('dhcp', section_id, 'ra_flags', [ 'none' ]);
+                                               var existing = L.toArray(uci.get('dhcp', section_id, 'ra_flags'));
+                                               if (this.isActive(section_id)) {
+                                                       if (existing.length != 1 || existing[0] != 'none')
+                                                               uci.set('dhcp', section_id, 'ra_flags', [ 'none' ]);
+                                               }
+                                               else if (existing.length) {
+                                                       uci.unset('dhcp', section_id, 'ra_flags');
+                                               }
                                        };
 
                                        so = ss.taboption('ipv6-ra', form.Value, 'ra_maxinterval', _('Max <abbr title="Router Advertisement">RA</abbr> interval'), _('Maximum time allowed  between sending unsolicited <abbr title="Router Advertisement, ICMPv6 Type 134">RA</abbr>. Default is 600 seconds.'));