Blob Blame History Raw
diff -Nur ./nispor-1.1.1.old/src/lib/ifaces/bridge.rs nispor-1.1.1/src/lib/ifaces/bridge.rs
--- ./nispor-1.1.1.old/src/lib/ifaces/bridge.rs	2021-06-19 01:48:56.000000000 +0800
+++ nispor-1.1.1/src/lib/ifaces/bridge.rs	2022-01-07 12:33:10.492882827 +0800
@@ -363,7 +363,12 @@
     data: &[u8],
 ) -> Result<(), NisporError> {
     if let Some(ref mut port_info) = iface_state.bridge_port {
-        port_info.vlans = parse_af_spec_bridge_info(data)?;
+        if let Some(cur_vlans) = parse_af_spec_bridge_info(data)? {
+            match port_info.vlans.as_mut() {
+                Some(vlans) => vlans.extend(cur_vlans),
+                None => port_info.vlans = Some(cur_vlans),
+            };
+        }
     }
     Ok(())
 }
diff -Nur ./nispor-1.1.1.old/src/lib/ifaces/iface.rs nispor-1.1.1/src/lib/ifaces/iface.rs
--- ./nispor-1.1.1.old/src/lib/ifaces/iface.rs	2021-06-19 01:48:56.000000000 +0800
+++ nispor-1.1.1/src/lib/ifaces/iface.rs	2022-01-07 12:32:26.818695643 +0800
@@ -417,7 +417,6 @@
         for nla in &nl_msg.nlas {
             if let Nla::AfSpecBridge(data) = nla {
                 parse_bridge_vlan_info(&mut iface_state, data)?;
-                break;
             }
         }
     }