Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.user > #199443

Re: processing order for configuration files in /etc/network/interfaces.d

From Reco <recoverym4n@gmail.com>
Newsgroups linux.debian.user
Subject Re: processing order for configuration files in /etc/network/interfaces.d
Date 2018-08-27 18:30 +0200
Message-ID <wrsyR-o9-3@gated-at.bofh.it> (permalink)
References (5 earlier) <wrprj-74C-5@gated-at.bofh.it> <wrpUm-7dM-17@gated-at.bofh.it> <wrr06-7Pn-17@gated-at.bofh.it> <wrrW9-8nE-1@gated-at.bofh.it> <wrsfv-hF-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


	Hi.

On Mon, Aug 27, 2018 at 12:01:23PM -0400, Greg Wooledge wrote:
> On Mon, Aug 27, 2018 at 06:41:25PM +0300, Reco wrote:
> > Last sentence says to me that wordexp output should be always sorted.
> 
> This only tells us that it *reads* the config files in glob-sorted order.
> And peeking into the actual source code of ifupdown, yes, it appears to
> do this.  (File config.c starting at line 436, in the stretch source.)
> It even uses wordexp() as advertised.
> 
> What's less clear to me at this moment is what happens *after* the
> interface configuration file(s) have been read into memory.
> 
> Moving over to main.c, it looks like it reads the interfaces (line 639),
> and that function was called from line 1190.  After line 1190, it loops
> over the "target_iface" array, and processes them in the order they appear
> in that array.
> 
> So... next question is how they get packed into that array.
> 
> Returning to the select_interfaces function, it looks like the ordering
> is created by a call to find_allowup.
> 
> And... this is where I stopped reading, because it got confusing.  Maybe
> someone else can take a stab at deciphering that part.

select_interfaces() is called on "ifup -a" invocation.
read_interfaces() is called by it.
read_interfaces() calls read_interfaces_defn().
read_interfaces_defn() parses "iface" and "source" directives, and calls
read_interfaces_defn() once again on each file specified by "source" in
order defined by wordexp(3).

Therefore defn[] array should be filled in this order (assuming that one
specifies "source" only at /e/n/i):

1) any interface definition at /e/n/i in order encountered, until
"source" directive.
2) any interface definition provided by "source" directive in order
defined by wordexp(3).
3) any interface definition at /e/n/i in order encountered, after the
"source" directive.

I'd use ltrace(1) to check it, but building test environment is
something that I lack the time to do.

Reco

Back to linux.debian.user | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

processing order for configuration files in /etc/network/interfaces.d Martin T <m4rtntns@gmail.com> - 2018-08-23 16:40 +0200
  Re: processing order for configuration files in  /etc/network/interfaces.d <tomas@tuxteam.de> - 2018-08-23 17:10 +0200
    Re: processing order for configuration files in /etc/network/interfaces.d Martin T <m4rtntns@gmail.com> - 2018-08-26 14:50 +0200
      Re: processing order for configuration files in  /etc/network/interfaces.d David Wright <deblis@lionunicorn.co.uk> - 2018-08-26 16:50 +0200
        Re: processing order for configuration files in /etc/network/interfaces.d Martin T <m4rtntns@gmail.com> - 2018-08-26 20:40 +0200
          Re: processing order for configuration files in  /etc/network/interfaces.d Zenaan Harkness <zenaan@freedbms.net> - 2018-08-27 04:40 +0200
          Re: processing order for configuration files in  /etc/network/interfaces.d <tomas@tuxteam.de> - 2018-08-27 10:20 +0200
            Re: processing order for configuration files in  /etc/network/interfaces.d Greg Wooledge <wooledg@eeg.ccf.org> - 2018-08-27 15:10 +0200
              Re: processing order for configuration files in  /etc/network/interfaces.d <tomas@tuxteam.de> - 2018-08-27 15:30 +0200
              Re: processing order for configuration files in  /etc/network/interfaces.d Reco <recoverym4n@gmail.com> - 2018-08-27 15:40 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d <tomas@tuxteam.de> - 2018-08-27 16:50 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d Reco <recoverym4n@gmail.com> - 2018-08-27 17:50 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d <tomas@tuxteam.de> - 2018-08-27 17:50 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d Greg Wooledge <wooledg@eeg.ccf.org> - 2018-08-27 18:10 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d Reco <recoverym4n@gmail.com> - 2018-08-27 18:30 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d David Wright <deblis@lionunicorn.co.uk> - 2018-08-27 18:50 +0200
                Re: processing order for configuration files in  /etc/network/interfaces.d Reco <recoverym4n@gmail.com> - 2018-08-27 19:40 +0200
          Re: processing order for configuration files in  /etc/network/interfaces.d David Wright <deblis@lionunicorn.co.uk> - 2018-08-28 15:30 +0200
  Re: processing order for configuration files in  /etc/network/interfaces.d Badiane Ka <badiane_ka@yahoo.com> - 2018-08-29 17:50 +0200

csiph-web