On Mon, May 06, 2013 at 07:23:58PM +0200, Jouke Witteveen wrote: > On Mon, May 6, 2013 at 10:22 AM, Thomas Bächler <[email protected]> wrote: > > I have this profile: > > > > Interface=vmnet > > Connection=bridge > > BindsToInterfaces=() > > IP=static > > SkipNoCarrier=yes > > Address=('1.2.3.4/5') > > > > While it seems to work fine, systemd prints these messages: > > > > Starting network profile 'vmnet'... > > Cannot find device "on" > > Usage: ip addr {add|change|replace} IFADDR dev STRING [ LIFETIME ] > > [ CONFFLAG-LIST ] > > ip addr del IFADDR dev STRING > > ip addr {show|save|flush} [ dev STRING ] [ scope SCOPE-ID ] > > [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] [up] > > ip addr {showdump|restore} > > IFADDR := PREFIX | ADDR peer PREFIX > > [ broadcast ADDR ] [ anycast ADDR ] > > [ label STRING ] [ scope SCOPE-ID ] > > SCOPE-ID := [ host | link | global | NUMBER ] > > FLAG-LIST := [ FLAG-LIST ] FLAG > > FLAG := [ permanent | dynamic | secondary | primary | > > tentative | deprecated | dadfailed | temporary | > > CONFFLAG-LIST ] > > CONFFLAG-LIST := [ CONFFLAG-LIST ] CONFFLAG > > CONFFLAG := [ home | nodad ] > > LIFETIME := [ valid_lft LFT ] [ preferred_lft LFT ] > > LFT := forever | SECONDS > > interface does not exist! > > Started network profile 'vmnet' > > > > This is most likely related to netctl not handling the empty > > BindsToInterfaces properly. > > > > You are right. This (arrays in Bash) is pretty tricky. I believe it is > fixed now. If so, the fix will land in netctl 1.1. > > Thanks, > - Jouke
The problem is that you're declaring it initially as a string, and then expecting it to be an array. You simply cannot interchange the types without encountering unwanted behavior like this. Note that you're still doing this in src/netctl.in:112. I'll also point out that your -v check allows people to create profiles that do not bind to any interfaces since it checks for the definition and not the existence of a value -- are you sure you want this? d
