]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.sbin/pc-sysinstall/backend-query/enable-net.sh
MFV r331695, 331700: 9166 zfs storage pool checkpoint
[FreeBSD/FreeBSD.git] / usr.sbin / pc-sysinstall / backend-query / enable-net.sh
1 #!/bin/sh
2 #-
3 # SPDX-License-Identifier: BSD-2-Clause-FreeBSD
4 #
5 # Copyright (c) 2010 iXsystems, Inc.  All rights reserved.
6 # Copyright (c) 2011 The FreeBSD Foundation
7 # All rights reserved.
8 #
9 # Portions of this software were developed by Bjoern Zeeb
10 # under sponsorship from the FreeBSD Foundation.
11 #
12 # Redistribution and use in source and binary forms, with or without
13 # modification, are permitted provided that the following conditions
14 # are met:
15 # 1. Redistributions of source code must retain the above copyright
16 #    notice, this list of conditions and the following disclaimer.
17 # 2. Redistributions in binary form must reproduce the above copyright
18 #    notice, this list of conditions and the following disclaimer in the
19 #    documentation and/or other materials provided with the distribution.
20 #
21 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
22 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
25 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 # SUCH DAMAGE.
32 #
33 # $FreeBSD$
34
35 # Script which enables networking with specified options
36 ###########################################################################
37
38 . ${PROGDIR}/backend/functions.sh
39 . ${PROGDIR}/conf/pc-sysinstall.conf
40 . ${BACKEND}/functions-networking.sh
41 . ${BACKEND}/functions-parse.sh
42
43
44 NIC="$1"
45 IP="$2"
46 NETMASK="$3"
47 DNS="$4"
48 GATEWAY="$5"
49 MIRRORFETCH="$6"
50 IPV6="$7"
51 IPV6GATE="$8"
52 IPV6DNS="$9"
53
54 if [ -z "${NIC}" ]
55 then
56   echo "ERROR: Usage enable-net <nic> <ip> <netmask> <dns> <gateway> <ipv6> " \
57         "<ipv6gateway> <ipv6dns>"
58   exit 150
59 fi
60
61 if [ "$NIC" = "AUTO-DHCP" ]
62 then
63   enable_auto_dhcp
64 elif [ "$NIC" = "IPv6-SLAAC" ]
65 then
66   enable_auto_slaac
67   # In addition, if static values were defined, add them as well.
68   # We might not get DNS information from RAs, for example.
69   if [ -n "${IPV6}" ]; then
70     VAL=""
71     get_first_wired_nic
72     if [ -n "${VAL}" ]; then
73       ifconfig ${VAL} inet6 ${IPV6} alias
74     fi
75   fi
76   # Append only here.
77   if [ -n "${IPV6DNS}" ]; then
78     echo "nameserver ${IPV6DNS}" >>/etc/resolv.conf
79   fi
80   # Do not 
81   if [ -n "${IPV6GATE}" ]; then
82     # Check if we have a default route already to not overwrite.
83     if ! route -n get -inet6 default > /dev/null 2>&1 ; then
84       route add -inet6 default ${IPV6GATE}
85     fi
86   fi
87 else
88   echo "Enabling NIC: $NIC"
89   if [ -n "${IP}" ]; then
90     ifconfig ${NIC} inet ${IP} ${NETMASK}
91   fi
92   if [ -n "${IPV6}" ]; then
93     ifconfig ${NIC} inet6 ${IPV6} alias
94   fi
95
96   # Keep default from IPv4-only support times and clear the resolv.conf file.
97   : > /etc/resolv.conf
98   if [ -n "${DNS}" ]; then
99     echo "nameserver ${DNS}" >>/etc/resolv.conf
100   fi
101   if [ -n "${IPV6DNS}" ]; then
102     echo "nameserver ${IPV6DNS}" >>/etc/resolv.conf
103   fi
104
105   if [ -n "${GATE}" ]; then
106     route add -inet default ${GATE}
107   fi
108   if [ -n "${IPV6GATE}" ]; then
109     route add -inet6 default ${IPV6GATE}
110   fi
111 fi
112
113 case ${MIRRORFETCH} in
114   ON|on|yes|YES) fetch -o /tmp/mirrors-list.txt ${MIRRORLIST} >/dev/null 2>/dev/null;;
115   *) ;;
116 esac