Hi, I'm trying to use ifstated to switch between my laptops wireless and wired interface. Currently it works when I don't have cable plugged in but once I plug in the cable the ifstated starts to switch between wired and wireless states and won't stay in wired state.
So it seems the em0.link.down condition gets triggered in wired state but why? The dhclient seems to run so the em0 should have IP and so it should be up. Timo daemon: Dec 24 10:43:29 phobos ifstated[31262]: changing state to wired Dec 24 10:43:29 phobos dhclient[2004]: iwn0 down; exiting Dec 24 10:43:33 phobos dhclient[22725]: DHCPREQUEST on em0 to 255.255.255.255 Dec 24 10:43:33 phobos dhclient[22725]: DHCPACK from 192.168.0.254 (00:1e:ab:0a:a4:a3) Dec 24 10:43:33 phobos dhclient[22725]: bound to 192.168.0.105 -- renewal in 43200 seconds. Dec 24 10:43:33 phobos ifstated[31262]: changing state to wireless Dec 24 10:43:33 phobos dhclient[5042]: em0 down; exiting Dec 24 10:43:37 phobos dhclient[9581]: DHCPREQUEST on iwn0 to 255.255.255.255 Dec 24 10:43:37 phobos dhclient[9581]: DHCPACK from 192.168.0.254 (00:1e:ab:0a:a4:a3) Dec 24 10:43:37 phobos dhclient[9581]: bound to 192.168.0.106 -- renewal in 43200 seconds. Dec 24 10:44:29 phobos dhclient[9921]: DHCPREQUEST on iwn0 to 255.255.255.255 Dec 24 10:44:31 phobos findnwid: attached to network TW-EAV510v4A4A3 on interface iwn0 ... ifstated.conf: nwid = '"[[ $(ifconfig iwn0 | sed -n \'/status/s/.*status: //p\') == \'active\' ]]" every 2' init-state wired state wireless { init { run "ifconfig em0 down" run "ifconfig iwn0 up" run "dhclient iwn0" } # check if we have active wireless network # if not, re-check for networks if ! $nwid && em0.link.down run "/usr/local/bin/findnwid iwn0" if em0.link.up set-state wired } state wired { init { run "ifconfig iwn0 down" run "ifconfig em0 up" run "dhclient em0" } if em0.link.down set-state wireless }