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 <thomas@archlinux.org> 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