mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
When an interface has been handed off to a container it lives in another netns, so `ip neigh/addr flush dev FOO` fails on the host. The failure aborts dagger, and since interfaces_change() runs before containers_change() in change_cb(), the container delete path is never reached -- the stale container keeps the interface trapped in its netns, breaking the next reconfiguration. Guard both the neighbor and address flush exit scripts with `if_nametoindex(ifname)` -- true exactly when the interface is in the host netns, false for both "in a container" and "already gone". This replaces the pre-existing `!cni_find(ifname) && if_nametoindex( ifname)` guard at the addr site: cni_find() added no information for this check and would popen(container find) for nothing when the interface had been deleted entirely. Also harden wrap() in /usr/sbin/container so a stale setup pidfile doesn't short-circuit Finit's stop attempt -- kill the setup PID and still ask podman to stop the container. Fixes #1493 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>