diff options
| -rw-r--r-- | distrib/miniroot/install.sub | 19 | ||||
| -rw-r--r-- | etc/netstart | 40 | ||||
| -rw-r--r-- | etc/rc | 7 | ||||
| -rw-r--r-- | share/man/man5/Makefile | 4 | ||||
| -rw-r--r-- | share/man/man5/mygate.5 | 86 | ||||
| -rw-r--r-- | share/man/man5/myname.5 | 51 | ||||
| -rw-r--r-- | share/man/man8/diskless.8 | 9 | ||||
| -rw-r--r-- | share/man/man8/netstart.8 | 8 |
8 files changed, 141 insertions, 83 deletions
diff --git a/distrib/miniroot/install.sub b/distrib/miniroot/install.sub index 31f861cafaf..558e8601c80 100644 --- a/distrib/miniroot/install.sub +++ b/distrib/miniroot/install.sub @@ -1,5 +1,5 @@ #!/bin/ksh -# $OpenBSD: install.sub,v 1.1155 2020/09/22 15:38:59 florian Exp $ +# $OpenBSD: install.sub,v 1.1156 2020/11/29 20:14:06 deraadt Exp $ # # Copyright (c) 1997-2015 Todd Miller, Theo de Raadt, Ken Westerback # Copyright (c) 2015, Robert Peichaer <rpe@openbsd.org> @@ -2441,15 +2441,16 @@ enable_network() { # /mnt/etc/mygate, if it exists, contains the address(es) of my # default gateway(s). Use for ipv4 if no interfaces configured via # dhcp. Use for ipv6 if no interfaces configured via autoconf. - ! $V4_DHCPCONF && stripcom /mnt/etc/mygate | + stripcom /mnt/etc/mygate | while read _gw; do - [[ $_gw == @(*:*) ]] && continue - route -qn add -host default $_gw && break - done - ! $V6_AUTOCONF && stripcom /mnt/etc/mygate | - while read _gw; do - [[ $_gw == !(*:*) ]] && continue - route -qn add -host -inet6 default $_gw && break + [[ $_gw == '!'* ]] && continue + if [[ $_gw != @(*:*) ]]; then + $V4_DHCPCONF && continue + route -qn add -host default $_gw + elif [[ $_gw == @(*:*) ]]; then + $V6_AUTOCONF && continue + route -qn add -host -inet6 default $_gw + fi done route -qn add -net 127 127.0.0.1 -reject >/dev/null diff --git a/etc/netstart b/etc/netstart index d70021d62f3..77ba43ccce4 100644 --- a/etc/netstart +++ b/etc/netstart @@ -1,6 +1,6 @@ #!/bin/sh - # -# $OpenBSD: netstart,v 1.207 2020/11/08 16:51:43 jmc Exp $ +# $OpenBSD: netstart,v 1.208 2020/11/29 20:14:06 deraadt Exp $ # Turn off Strict Bourne shell mode. set +o sh @@ -177,27 +177,32 @@ ifmstart() { # Usage: defaultroute defaultroute() { local _cmd; + set -o noglob - ! $V4_DHCPCONF && stripcom /etc/mygate | + stripcom /etc/mygate | while read gw; do - [[ $gw == @(*:*) ]] && continue - _cmd="route -qn add -host default $gw" - if $PRINT_ONLY; then - print -r -- "$_cmd" && break - else - $_cmd && break - fi - done - ! $V6_AUTOCONF && stripcom /etc/mygate | - while read gw; do - [[ $gw == !(*:*) ]] && continue - _cmd="route -qn add -host -inet6 default $gw" + case $gw in + '!'*) + _cmd=$(print -- "$gw" | sed 's/\$if/'$_if'/g') + _cmd="${_cmd#!}" + ;; + *) + if [[ $gw != @(*:*) ]]; then + $V4_DHCPCONF && continue + _cmd="route -qn add -host default $gw" + elif [[ $gw == @(*:*) ]]; then + $V6_AUTOCONF && continue + _cmd="route -qn add -host -inet6 default $gw" + fi + ;; + esac if $PRINT_ONLY; then - print -r -- "$_cmd" && break + print -r -- "$_cmd" else - $_cmd && break + $_cmd fi done + set +o noglob } # Make sure the invoking user has the right privileges. Check for presence of @@ -241,9 +246,6 @@ fi # Otherwise, process with the complete network initialization. -# /etc/myname contains my symbolic name. -[[ -f /etc/myname ]] && hostname "$(stripcom /etc/myname)" - # Set the address for the loopback interface. Bringing the interface up, # automatically invokes the IPv6 address ::1. ifconfig lo0 inet 127.0.0.1/8 @@ -1,4 +1,4 @@ -# $OpenBSD: rc,v 1.543 2020/01/24 06:17:37 tedu Exp $ +# $OpenBSD: rc,v 1.544 2020/11/29 20:14:06 deraadt Exp $ # System startup script run by init on autoboot or after single-user. # Output and error are redirected to console by init, and the console is the @@ -301,6 +301,11 @@ export HOME=/ export INRC=1 export PATH=/sbin:/bin:/usr/sbin:/usr/bin +# /etc/myname contains my symbolic name. +if [[ -f /etc/myname ]]; then + hostname "$(stripcom /etc/myname)" +fi + # Must set the domainname before rc.conf, so YP startup choices can be made. if [[ -s /etc/defaultdomain ]]; then domainname "$(stripcom /etc/defaultdomain)" diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile index abc05b618a5..4a54fd3ae6e 100644 --- a/share/man/man5/Makefile +++ b/share/man/man5/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.57 2018/11/21 09:26:02 jmc Exp $ +# $OpenBSD: Makefile,v 1.58 2020/11/29 20:14:06 deraadt Exp $ # $NetBSD: Makefile,v 1.14 1995/05/11 23:13:15 cgd Exp $ MAN= acct.5 ar.5 bsd.port.mk.5 bsd.port.arch.mk.5 bsd.regress.mk.5 \ @@ -6,7 +6,7 @@ MAN= acct.5 ar.5 bsd.port.mk.5 bsd.port.arch.mk.5 bsd.regress.mk.5 \ defaultdomain.5 dir.5 disktab.5 elf.5 ethers.5 fbtab.5 files.conf.5 \ fs.5 fstab.5 genassym.cf.5 group.5 hostname.if.5 hosts.5 installurl.5 \ intro.5 login.conf.5 mandoc.db.5 mixerctl.conf.5 \ - mk.conf.5 moduli.5 motd.5 myname.5 netgroup.5 passwd.5 \ + mk.conf.5 moduli.5 motd.5 mygate.5 myname.5 netgroup.5 passwd.5 \ pf.conf.5 pf.os.5 port-modules.5 printcap.5 protocols.5 \ ranlib.5 remote.5 resolv.conf.5 rpc.5 ruby-module.5 \ services.5 shells.5 \ diff --git a/share/man/man5/mygate.5 b/share/man/man5/mygate.5 new file mode 100644 index 00000000000..fff85259331 --- /dev/null +++ b/share/man/man5/mygate.5 @@ -0,0 +1,86 @@ +.\" $OpenBSD: mygate.5,v 1.1 2020/11/29 20:14:06 deraadt Exp $ +.\" +.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: November 29 2020 $ +.Dt MYGATE 5 +.Os +.Sh NAME +.Nm mygate +.Nd default gateway +.Sh DESCRIPTION +The +.Nm mygate +file is read by +.Xr netstart 8 +at system startup time. +.Pp +.Pa /etc/mygate , +if it exists, +contains the address of the gateway host. +The gateway is added to the routing tables by the +.Xr route 8 +utility. +If +.Pa /etc/mygate +does not exist, no default gateway is added to the routing tables. +The file may contain gateway addresses for both IPv4 and IPv6 networks +in dotted quad notation for v4 +.Pq e.g. 192.0.2.1 +or in colon notation for v6 +.Pq e.g. 2001:db8::1 . +Each address must be specified on a separate line. +If more than one address of a specific family is found, +only the first is used \- all other addresses of that family are ignored. +.Pp +.Pa /etc/mygate +is processed after all interfaces have been configured. +If any +.Xr hostname.if 5 +files contain +.Dq dhcp +directives, +IPv4 entries in +.Pa /etc/mygate +will be ignored. +If they contain +.Dq autoconf +directives, +IPv6 entries will be ignored. +.Pp +Additionally, arbitrary shell commands can be executed during processing +of this file, using +.Ar \&! Ns Ar command +directives similar to +.Xr hostname.if 5 . +This is useful for doing additional configuration after all interfaces +are configured by +.Xr netstart 8 . +.Pp +Empty lines and lines beginning with +.Sq # +are ignored. +.Sh FILES +.Bl -tag -width "/etc/mygate" -compact +.It Pa /etc/mygate +Default gateway address(es). +.El +.Sh SEE ALSO +.Xr hostname.if 5 , +.Xr netstart 8 , +.Xr route 8 +.Sh HISTORY +This manual page first appeared in +.Ox 3.4 . diff --git a/share/man/man5/myname.5 b/share/man/man5/myname.5 index 6234c637a14..a2dbdabc457 100644 --- a/share/man/man5/myname.5 +++ b/share/man/man5/myname.5 @@ -1,4 +1,4 @@ -.\" $OpenBSD: myname.5,v 1.9 2017/07/13 19:16:33 jmc Exp $ +.\" $OpenBSD: myname.5,v 1.10 2020/11/29 20:14:06 deraadt Exp $ .\" .\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org> .\" @@ -14,18 +14,16 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: July 13 2017 $ +.Dd $Mdocdate: November 29 2020 $ .Dt MYNAME 5 .Os .Sh NAME -.Nm myname , mygate -.Nd default hostname and gateway +.Nm myname +.Nd default hostname .Sh DESCRIPTION The .Nm myname -and -.Nm mygate -files are read by +file is read by .Xr netstart 8 at system startup time. .Pp @@ -50,48 +48,14 @@ See .Xr hostname 7 for a description of hostname resolution. .Pp -.Pa /etc/mygate , -if it exists, -contains the address of the gateway host. -The gateway is added to the routing tables by the -.Xr route 8 -utility. -If -.Pa /etc/mygate -does not exist, no default gateway is added to the routing tables. -The file may contain gateway addresses for both IPv4 and IPv6 networks: -in dotted quad notation for v4 -.Pq e.g. 192.0.2.1 -or in colon notation for v6 -.Pq e.g. 2001:db8::1 . -Each address must be specified on a separate line. -If more than one address of a specific family is found, -only the first is used \- all other addresses of that family are ignored. -.Pp -.Pa /etc/mygate -is processed after all interfaces have been configured. -If any -.Xr hostname.if 5 -files contain -.Dq dhcp -directives, -IPv4 entries in -.Pa /etc/mygate -will be ignored. -If they contain -.Dq autoconf -directives, -IPv6 entries will be ignored. .Pp Empty lines and lines beginning with .Sq # -in either file are ignored. +are ignored. .Sh FILES .Bl -tag -width "/etc/myname" -compact .It Pa /etc/myname Default hostname. -.It Pa /etc/mygate -Default gateway address(es). .El .Sh SEE ALSO .Xr hostname 1 , @@ -99,8 +63,7 @@ Default gateway address(es). .Xr hosts 5 , .Xr resolv.conf 5 , .Xr hostname 7 , -.Xr netstart 8 , -.Xr route 8 +.Xr netstart 8 .Sh HISTORY This manual page first appeared in .Ox 3.4 . diff --git a/share/man/man8/diskless.8 b/share/man/man8/diskless.8 index def171b393a..b0a30683882 100644 --- a/share/man/man8/diskless.8 +++ b/share/man/man8/diskless.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: diskless.8,v 1.69 2017/06/11 14:03:46 schwarze Exp $ +.\" $OpenBSD: diskless.8,v 1.70 2020/11/29 20:14:06 deraadt Exp $ .\" $NetBSD: diskless.8,v 1.7.4.1 1996/05/30 18:58:10 cgd Exp $ .\" .\" @@ -27,7 +27,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: June 11 2017 $ +.Dd $Mdocdate: November 29 2020 $ .Dt DISKLESS 8 .Os .Sh NAME @@ -395,7 +395,9 @@ Interface-specific configuration file. .It Pa /etc/hosts Host name database. .It Pa /etc/myname -Default hostname and gateway. +Default hostname. +.It Pa /etc/mygate +Default gateway. .It Pa /etc/rbootd.conf Configuration file for HP Remote Boot Daemon. .It Pa /tftpboot @@ -411,6 +413,7 @@ Location of boot programs loaded by the HP Boot ROM. .Xr fstab 5 , .Xr hostname.if 5 , .Xr hosts 5 , +.Xr mygate 5 , .Xr myname 5 , .Xr dhcpd 8 , .Xr mopd 8 , diff --git a/share/man/man8/netstart.8 b/share/man/man8/netstart.8 index 0c0d7038ddd..91183376edd 100644 --- a/share/man/man8/netstart.8 +++ b/share/man/man8/netstart.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: netstart.8,v 1.24 2020/11/03 06:46:23 jmc Exp $ +.\" $OpenBSD: netstart.8,v 1.25 2020/11/29 20:14:06 deraadt Exp $ .\" .\" Copyright (c) 2002, Miodrag Vallat. .\" All rights reserved. @@ -25,7 +25,7 @@ .\" .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 .\" -.Dd $Mdocdate: November 3 2020 $ +.Dd $Mdocdate: November 29 2020 $ .Dt NETSTART 8 .Os .Sh NAME @@ -58,8 +58,6 @@ performs the following operations, in the sequence given: .Pp .Bl -bullet -compact -offset indent .It -Set the machine's name. -.It Configure the loopback interface. .It Configure all physical interfaces. @@ -108,7 +106,7 @@ without actually configuring the interface. .Xr multicast 4 , .Xr defaultdomain 5 , .Xr hostname.if 5 , -.Xr myname 5 , +.Xr mygate 5 , .Xr ifconfig 8 , .Xr rc 8 , .Xr rc.conf 8 |
