refactor: remove dependency injection for IPRoute in interface and bridge functions
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 7s

This commit is contained in:
2025-11-24 20:17:57 +01:00
parent cdebdde29c
commit ef81e259a7

View File

@@ -183,14 +183,14 @@ def parse_flags(flags_int: int) -> list[str]:
result.append(name) result.append(name)
return result return result
def iface_index(name: str, ip: IPRoute = Depends(get_iproute)) -> int: def iface_index(name: str, ip: IPRoute) -> int:
idx = ip.link_lookup(ifname=name) idx = ip.link_lookup(ifname=name)
if not idx: if not idx:
raise HTTPException(status_code=404, detail=f"Interface {name} not found") raise HTTPException(status_code=404, detail=f"Interface {name} not found")
return idx[0] return idx[0]
def bridge_exists(name: str, ip: IPRoute = Depends(get_iproute)) -> bool: def bridge_exists(name: str, ip: IPRoute) -> bool:
return bool(ip.link_lookup(ifname=name)) return bool(ip.link_lookup(ifname=name))
@@ -352,16 +352,16 @@ def full_state(
@router.post("/create") @router.post("/create")
def create_bridge(req: BridgeCreateRequest, ip: IPRoute = Depends(get_iproute)): def create_bridge(req: BridgeCreateRequest, ip: IPRoute = Depends(get_iproute)):
if bridge_exists(req.name): if bridge_exists(req.name, ip):
raise HTTPException(400, f"Bridge {req.name} already exists") raise HTTPException(400, f"Bridge {req.name} already exists")
# Bridge erzeugen # Bridge erzeugen
ip.link("add", ifname=req.name, kind="bridge") ip.link("add", ifname=req.name, kind="bridge")
br_idx = iface_index(req.name) br_idx = iface_index(req.name, ip)
# Interfaces hinzufügen # Interfaces hinzufügen
for iface in req.interfaces: for iface in req.interfaces:
idx = iface_index(iface) idx = iface_index(iface, ip)
ip.link("set", index=idx, master=br_idx) ip.link("set", index=idx, master=br_idx)
# Bridge aktivieren # Bridge aktivieren
@@ -376,10 +376,10 @@ def create_bridge(req: BridgeCreateRequest, ip: IPRoute = Depends(get_iproute)):
@router.post("/remove") @router.post("/remove")
def remove_bridge(req: BridgeRemoveRequest, ip: IPRoute = Depends(get_iproute)): def remove_bridge(req: BridgeRemoveRequest, ip: IPRoute = Depends(get_iproute)):
if not bridge_exists(req.name): if not bridge_exists(req.name, ip):
raise HTTPException(404, f"Bridge {req.name} not found") raise HTTPException(404, f"Bridge {req.name} not found")
br_idx = iface_index(req.name) br_idx = iface_index(req.name, ip)
# Bridge runterfahren # Bridge runterfahren
ip.link("set", index=br_idx, state="down") ip.link("set", index=br_idx, state="down")