From 196d22d7c3421e74074f8fc856d6fb8b826eb4d9 Mon Sep 17 00:00:00 2001 From: bloqaudio Date: Fri, 16 Oct 2026 10:43:08 -0500 Subject: [PATCH] web: keep LLDP lines from piling up in the saved configuration Save to flash merges the running log into the startup configuration. Neither its toggle nor its overwrite rules knew "lldp on|off", so every switch of LLDP added another line: four switches left four lines. "port lldp permit|block" fell under the rule for "port ", so setting a port's speed dropped its LLDP setting from the saved configuration, and the other way round. "lldp on|off" is now a toggle, and a per-port LLDP setting replaces only an earlier per-port LLDP setting of that port. --- html/app.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/html/app.js b/html/app.js index 626e522c..db525237 100644 --- a/html/app.js +++ b/html/app.js @@ -2264,14 +2264,14 @@ var CONF_OVERWRITE=[ /^ntp\s+server\b/,/^ntp\s+interval\b/,/^ntp\s+timezone\b/,/^ntp\s+dst\b/, /^vlan\s+\d{1,4}\s+mgmt$/,/^vlan\s+\d{1,4}(?!\s+mgmt\b)/, /^pvid\s+\d{1,2}\b/, - /^port\s+\d{1,2}(?!\s+name\b)/,/^port\s+\d{1,2}\s+name\b/, + /^port\s+\d{1,2}(?!\s+(name|lldp)\b)/,/^port\s+\d{1,2}\s+name\b/, /^mirror\b/, /^lag\s+\d\b/,/^laghash\s+\d\b/,/^isolate\s+\d{1,2}\b/, /^stp\s+(prio|hello|maxage|fwd|txhold|version)\b/, /^stp\s+(port\s+\d{1,2}|lag\s+[1-4])\s+(edge|cost|prio|guard|filter|p2p)\b/, /^igmp\b/,/^mtu\s+\d{1,2}\b/,/^storm\s+\d{1,2}\s+(bcast|mcast|ucast|umcast)\b/, ]; -var CONF_TOGGLE=[/^(syslog)\s+(on|off)$/,/^(ntp)\s+(on|off)$/,/^(stp)\s+(on|off)$/,/^(stp\s+(port\s+\d{1,2}|lag\s+[1-4]))\s+(on|off)$/]; +var CONF_TOGGLE=[/^(syslog)\s+(on|off)$/,/^(ntp)\s+(on|off)$/,/^(stp)\s+(on|off)$/,/^(lldp)\s+(on|off)$/,/^(stp\s+(port\s+\d{1,2}|lag\s+[1-4]))\s+(on|off)$/]; function mergeConf(base,texts){ var conf=base.slice(); function drop(rx){conf=conf.filter(function(c){return!rx.test(c)})} @@ -2289,6 +2289,7 @@ function mergeConf(base,texts){ } if((m=line.match(/^lag (\d) lacp off$/))){drop(new RegExp("^lag "+m[1]+" lacp( |$)"));return;} if(line==="mirror off"){drop(/^mirror /);return;} + if((m=line.match(/^(port \d{1,2} lldp) (permit|block)$/))){drop(new RegExp("^"+m[1]+" (permit|block)$"));conf.push(line);return;} if(!isConfCmd(line))return; if((m=line.match(/^ingress (.+)$/))){ if(/^[tua]$/.test(m[1])){drop(/^ingress /);conf.push(line);return;} @@ -2321,7 +2322,7 @@ function mergeConf(base,texts){ var key=line.match(rx)[0]; conf=conf.filter(function(item){ return!(item===key||(item.indexOf(key+" ")===0 - &&!/\smgmt$/.test(item)&&item.indexOf(key+" name ")!==0)); + &&!/\smgmt$/.test(item)&&item.indexOf(key+" name ")!==0&&item.indexOf(key+" lldp ")!==0)); }); break; }