Pārlūkot izejas kodu

fix(bfd): align session columns parsing, add local_address in peer modal & bump v1.8.16

Proxmox Router 1 dienu atpakaļ
vecāks
revīzija
0a15c574b6

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.8.15
+1.8.16

BIN
bin/debtik


BIN
bin/debtik-arm64


BIN
bin/debtik-cli


BIN
bin/debtik-cli-arm64


+ 10 - 7
internal/dynamicrouting/manager.go

@@ -3302,14 +3302,17 @@ func (m *Manager) GetBFDSessions() []BFDSession {
 				Interface: fields[1],
 				State:     fields[2],
 			}
-			if len(fields) >= 4 {
-				sess.Since = fields[3]
-			}
-			if len(fields) >= 5 {
-				sess.Interval = fields[4]
-			}
 			if len(fields) >= 6 {
-				sess.Timeout = fields[5]
+				sess.Timeout = fields[len(fields)-1]
+				sess.Interval = fields[len(fields)-2]
+				sess.Since = strings.Join(fields[3:len(fields)-2], " ")
+			} else {
+				if len(fields) >= 4 {
+					sess.Since = fields[3]
+				}
+				if len(fields) >= 5 {
+					sess.Interval = fields[4]
+				}
 			}
 			list = append(list, sess)
 		}

+ 7 - 0
internal/web/static/app.js

@@ -20091,6 +20091,7 @@ function renderBfdPeers() {
         <td class="py-1.5 px-3 text-slate-400 italic">${escapeHtml(p.comment || '')}</td>
         <td class="py-1.5 px-3 font-mono font-semibold text-amber-300">${escapeHtml(p.address || '')}</td>
         <td class="py-1.5 px-3 font-mono text-slate-300">${escapeHtml(p.interface || 'auto')}</td>
+        <td class="py-1.5 px-3 font-mono text-cyan-300">${escapeHtml(p.local_address || 'auto')}</td>
         <td class="py-1.5 px-3 text-slate-400">${p.multihop ? 'yes' : 'no'}</td>
       </tr>
     `;
@@ -20224,6 +20225,8 @@ function openBfdPeerModal() {
   }
   document.getElementById('modal-bfd-peer-address').value = '';
   document.getElementById('modal-bfd-peer-interface').value = '';
+  const localAddrEl = document.getElementById('modal-bfd-peer-local-address');
+  if (localAddrEl) localAddrEl.value = '';
   document.getElementById('modal-bfd-peer-comment').value = '';
   document.getElementById('modal-bfd-peer-enabled').checked = true;
   document.getElementById('modal-bfd-peer-multihop').checked = false;
@@ -20241,6 +20244,8 @@ function openEditBfdPeerModal(id) {
   }
   document.getElementById('modal-bfd-peer-address').value = p.address || '';
   document.getElementById('modal-bfd-peer-interface').value = p.interface || '';
+  const localAddrEl = document.getElementById('modal-bfd-peer-local-address');
+  if (localAddrEl) localAddrEl.value = p.local_address || '';
   document.getElementById('modal-bfd-peer-comment').value = p.comment || '';
   document.getElementById('modal-bfd-peer-enabled').checked = !p.disabled;
   document.getElementById('modal-bfd-peer-multihop').checked = !!p.multihop;
@@ -20254,10 +20259,12 @@ function closeBfdPeerModal() {
 async function submitBfdPeer(e) {
   e.preventDefault();
   const id = document.getElementById('modal-bfd-peer-id').value;
+  const localAddr = document.getElementById('modal-bfd-peer-local-address')?.value.trim() || '';
   const payload = {
     id: id || undefined,
     address: document.getElementById('modal-bfd-peer-address').value.trim(),
     interface: document.getElementById('modal-bfd-peer-interface').value.trim(),
+    local_address: localAddr,
     comment: document.getElementById('modal-bfd-peer-comment').value.trim(),
     disabled: !document.getElementById('modal-bfd-peer-enabled').checked,
     multihop: document.getElementById('modal-bfd-peer-multihop').checked

+ 6 - 1
internal/web/static/index.html

@@ -4181,6 +4181,7 @@
                       <th class="py-2 px-3">Comment</th>
                       <th class="py-2 px-3">Neighbor Address</th>
                       <th class="py-2 px-3">Interface</th>
+                      <th class="py-2 px-3">Local Address</th>
                       <th class="py-2 px-3">Multihop</th>
                     </tr>
                   </thead>
@@ -12081,6 +12082,10 @@
           <input type="text" id="modal-bfd-peer-interface" list="bfd-peer-iface-datalist" placeholder="Optional e.g. eth0" class="w-full bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-white font-mono">
           <datalist id="bfd-peer-iface-datalist"></datalist>
         </div>
+        <div>
+          <label class="block font-semibold text-slate-300 mb-1">Local Address (Required for Multihop)</label>
+          <input type="text" id="modal-bfd-peer-local-address" placeholder="Optional e.g. 192.168.1.254" class="w-full bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-white font-mono">
+        </div>
         <div>
           <label class="block font-semibold text-slate-300 mb-1">Comment</label>
           <input type="text" id="modal-bfd-peer-comment" placeholder="Optional notes" class="w-full bg-slate-800 border border-slate-700 rounded-lg px-3 py-2 text-white">
@@ -13678,6 +13683,6 @@
   </div>
 
   <datalist id="fw-addrlist-datalist"></datalist>
-  <script src="app.js?v=24.0"></script>
+  <script src="app.js?v=25.0"></script>
 </body>
 </html>