Create interfaces before processing the hostname.if file in ifstart().
authorrpe <rpe@openbsd.org>
Sun, 18 Feb 2018 00:43:16 +0000 (00:43 +0000)
committerrpe <rpe@openbsd.org>
Sun, 18 Feb 2018 00:43:16 +0000 (00:43 +0000)
This ensures, that IPv6 is configured for dynamically created network
interfaces like 'vlan' which would otherwise not yet exist at the time
parse_hn_line() checks for IPv6 capability of an interface before
applying the inet6 configuration from the hostname.if.

Found out, tested and OK naddy

distrib/miniroot/install.sub

index e534a9a..4cf38bf 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/ksh
-#      $OpenBSD: install.sub,v 1.1061 2018/02/17 19:05:41 rpe Exp $
+#      $OpenBSD: install.sub,v 1.1062 2018/02/18 00:43:16 rpe Exp $
 #
 # Copyright (c) 1997-2015 Todd Miller, Theo de Raadt, Ken Westerback
 # Copyright (c) 2015, Robert Peichaer <rpe@openbsd.org>
@@ -2312,6 +2312,9 @@ ifstart() {
        local _if=$1 _hn=/mnt/etc/hostname.$1 _cmds _i=0 _line
        set -A _cmds
 
+       # Create interface if it does not yet exist.
+       { ifconfig $_if || ifconfig $_if create; } >/dev/null 2>&1 || return
+
        ((NIFS++))
 
        # Parse the hostname.if(5) file and fill _cmds array with interface