head	1.7;
access;
symbols
	RELENG_9_1_0_RELEASE:1.5.2.1.4.2
	RELENG_9_1:1.5.2.1.0.4
	RELENG_9_1_BP:1.5.2.1
	RELENG_9_0_0_RELEASE:1.5.2.1.2.1
	RELENG_9_0:1.5.2.1.0.2
	RELENG_9_0_BP:1.5.2.1
	RELENG_9:1.5.0.2
	RELENG_9_BP:1.5;
locks; strict;
comment	@# @;


1.7
date	2012.11.17.01.54.40;	author svnexp;	state Exp;
branches;
next	1.6;

1.6
date	2012.01.31.05.49.49;	author kevlo;	state Exp;
branches;
next	1.5;

1.5
date	2011.09.16.09.37.13;	author nwhitehorn;	state Exp;
branches
	1.5.2.1;
next	1.4;

1.4
date	2011.09.07.00.45.15;	author bz;	state Exp;
branches;
next	1.3;

1.3
date	2011.07.28.03.01.22;	author bz;	state Exp;
branches;
next	1.2;

1.2
date	2011.06.02.14.25.27;	author bz;	state Exp;
branches;
next	1.1;

1.1
date	2011.05.29.21.24.20;	author bz;	state Exp;
branches;
next	;

1.5.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.5.2.1.2.1
	1.5.2.1.4.1;
next	1.5.2.2;

1.5.2.2
date	2012.11.17.11.37.43;	author svnexp;	state Exp;
branches;
next	1.5.2.3;

1.5.2.3
date	2014.03.31.02.01.46;	author svnexp;	state Exp;
branches;
next	;

1.5.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.5.2.1.2.2;

1.5.2.1.2.2
date	2012.11.17.08.37.39;	author svnexp;	state Exp;
branches;
next	;

1.5.2.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.5.2.1.4.2;

1.5.2.1.4.2
date	2012.11.17.08.48.31;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.7
log
@Switching exporter and resync
@
text
@#!/bin/sh
#-
# Copyright (c) 2011 Nathan Whitehorn
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD: head/usr.sbin/bsdinstall/scripts/netconfig_ipv4 230804 2012-01-31 05:49:49Z kevlo $

: ${DIALOG_OK=0}
: ${DIALOG_CANCEL=1}
: ${DIALOG_HELP=2}
: ${DIALOG_EXTRA=3}
: ${DIALOG_ITEM_HELP=4}
: ${DIALOG_ESC=255}

INTERFACE=$1
IFCONFIG_PREFIX="$2"
test -z "$IFCONFIG_PREFIX" || IFCONFIG_PREFIX="$2 "
case "${INTERFACE}" in
"")	dialog --backtitle 'FreeBSD Installer' --title 'Network Configuration' \
	    --msgbox 'No interface specified for IPv4 configuration.' 0 0
	exit 1
	;;
esac

dialog --backtitle 'FreeBSD Installer' --title 'Network Configuration' --yesno 'Would you like to use DHCP to configure this interface?' 0 0
if [ $? -eq $DIALOG_OK ]; then
	echo ifconfig_$INTERFACE=\"${IFCONFIG_PREFIX}DHCP\" >> $BSDINSTALL_TMPETC/._rc.conf.net

	if [ ! -z $BSDINSTALL_CONFIGCURRENT ]; then
		dialog --backtitle 'FreeBSD Installer' --infobox "Acquiring DHCP lease..." 0 0
		dhclient $INTERFACE 2>> $BSDINSTALL_LOG
		if [ $? -ne 0 ]; then
			dialog --backtitle 'FreeBSD Installer' --msgbox "DHCP lease acquisition failed." 0 0
			exec $0 ${INTERFACE} "${IFCONFIG_PREFIX}"
		fi
	fi
	exit 0
fi

IP_ADDRESS=`ifconfig $INTERFACE inet | awk '/inet/ {printf("%s\n", $2); }'`
NETMASK=`ifconfig $INTERFACE inet | awk '/inet/ {printf("%s\n", $4); }'`
ROUTER=`netstat -rn -f inet | awk '/default/ {printf("%s\n", $2);}'`

exec 3>&1
IF_CONFIG=$(dialog --backtitle 'FreeBSD Installer' --title 'Network Configuration' --form 'Static Network Interface Configuration' 0 0 0 \
	'IP Address' 1 0 "$IP_ADDRESS" 1 20 16 0 \
	'Subnet Mask' 2 0 "$NETMASK" 2 20 16 0 \
	'Default Router' 3 0 "$ROUTER" 3 20 16 0 \
2>&1 1>&3)
if [ $? -eq $DIALOG_CANCEL ]; then exit 1; fi
exec 3>&-

echo $INTERFACE $IF_CONFIG | 
    awk -v prefix="$IFCONFIG_PREFIX" '{
	printf("ifconfig_%s=\"%s\inet %s netmask %s\"\n", $1, prefix, $2, $3);
	printf("defaultrouter=\"%s\"\n", $4);
    }' >> $BSDINSTALL_TMPETC/._rc.conf.net

if [ ! -z $BSDINSTALL_CONFIGCURRENT ]; then
	. $BSDINSTALL_TMPETC/._rc.conf.net
	ifconfig $INTERFACE `eval echo \\\$ifconfig_$INTERFACE`
	if [ -n "${defaultrouter}" ]; then
		route delete -inet default
		route add -inet default $defaultrouter
	fi
fi

@


1.6
log
@SVN rev 230804 on 2012-01-31 05:49:49Z by kevlo

Fix a whitespace nit

Reviewed by:	bz
@
text
@d27 1
a27 1
# $FreeBSD$
@


1.5
log
@SVN rev 225612 on 2011-09-16 09:37:13Z by nwhitehorn

Fix WPA setup broken by changes to shell argument passing inside the
installer network configuration.

PR:		bin/159558
Approved by:	re (kib)
@
text
@d76 1
a76 1
	printf("ifconfig_%s=\"%s inet %s netmask %s\"\n", $1, prefix, $2, $3);
@


1.5.2.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.5.2.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d27 1
a27 1
# $FreeBSD: stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv4 225612 2011-09-16 09:37:13Z nwhitehorn $
@


1.5.2.3
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/263956
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a3 1
# Copyright (c) 2013 Devin Teske
d27 1
a27 8
# $FreeBSD: stable/9/usr.sbin/bsdinstall/scripts/netconfig_ipv4 263956 2014-03-31 01:04:40Z dteske $
#
############################################################ INCLUDES

BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
f_dprintf "%s: loading includes..." "$0"
f_include $BSDCFG_SHARE/dialog.subr
d29 6
a34 1
############################################################ MAIN
d52 1
a52 1
		err=$( dhclient $INTERFACE 2>&1 )
a53 1
			f_dprintf "%s" "$err"
d76 1
a76 1
	printf("ifconfig_%s=\"%s\inet %s netmask %s\"\n", $1, prefix, $2, $3);
a88 3
################################################################################
# END
################################################################################
@


1.5.2.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.5.2.1.4.2
log
@Switch importer
@
text
@d27 1
a27 1
# $FreeBSD: releng/9.1/usr.sbin/bsdinstall/scripts/netconfig_ipv4 225612 2011-09-16 09:37:13Z nwhitehorn $
@


1.5.2.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.5.2.1.2.2
log
@Switch importer
@
text
@d27 1
a27 1
# $FreeBSD: releng/9.0/usr.sbin/bsdinstall/scripts/netconfig_ipv4 225612 2011-09-16 09:37:13Z nwhitehorn $
@


1.4
log
@SVN rev 225429 on 2011-09-07 00:45:15Z by bz

Fix two problems:
1) if no default gateway is given the route command will fail
   and the script will abort with an error leading to an endless
   loop unless configuration is cancelled or changed. [1]
2) In the IPv6 case add -inet6 to not alter the legacy IP default
   route.

Reported by:	Oleg Ginzburg (olevole olevole.ru) [1]
Tested by:	Oleg Ginzburg (olevole olevole.ru) [1]
Approved by:	re (kib)
@
text
@d38 1
@


1.3
log
@SVN rev 224470 on 2011-07-28 03:01:22Z by bz

To inet or not two inet.  Unbreak static IPv4 configuration.  If you tried
you were stuck in an endless loop.

Reported by:	kensmith
Approved by:	re (kib) for BETA1
Pointy hat to:	bz - wonder why I had not tested legacy IP thoroughly..
@
text
@d82 4
a85 2
	route delete -inet default
	route add -inet default $defaultrouter
@


1.2
log
@SVN rev 222619 on 2011-06-02 14:25:27Z by bz

Write the multi step netconfig to a temporary file and only move that
to the final name if netconfig was completely finished.  This fixes
reentrance problems even better than r222611.

Suggested by:	nwhitehorn
Reviewed by:	nwhitehorn
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
@
text
@d81 1
a81 1
	ifconfig $INTERFACE inet `eval echo \\\$ifconfig_$INTERFACE`
@


1.1
log
@SVN rev 222468 on 2011-05-29 21:24:20Z by bz

Split netconfig into three parts:
- netconfig - what auto will call which in turn will check for
  IPv4 and IPv6 to be available and ask the user to configure it
  by calling
- netconfig_ipv4 doing DHCP and static IPv4 addresses, and
- netconfig_ipv6 doing rtsol and static IPv6 addresses,
and then checking, querying and updating resolv.conf upon return.
Both DHCP and rtsol (in the future) might update resolv.conf already so
we seed ourselves from that file if available.

Reviewed by:	nwhitehorn
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
@
text
@d47 1
a47 1
	echo ifconfig_$INTERFACE=\"${IFCONFIG_PREFIX}DHCP\" >> $BSDINSTALL_TMPETC/rc.conf.net
d77 1
a77 1
    }' >> $BSDINSTALL_TMPETC/rc.conf.net
d80 1
a80 1
	. $BSDINSTALL_TMPETC/rc.conf.net
@

