Skip to content
This repository was archived by the owner on Jan 23, 2024. It is now read-only.

Commit ed5672d

Browse files
committed
Add DNS support
Includes: - IP4LL support for setting link local addresses if no dhcp server is found but dhcp is specified - configurations explicitly set in cmdline will not be overriden by dhcp supplied values, such as binit_net_nss or binit_net_gw
1 parent 43c5828 commit ed5672d

File tree

4 files changed

+43
-8
lines changed

4 files changed

+43
-8
lines changed

README.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ binit_net_route=<addr/cidr>
7474
Optional static on-link route(s) to add (can be given multiple times).
7575
binit_net_gw=<addr>
7676
Optional gateway config, if you want to connect via WAN. If ``binit_net_addr`` is set to ``dhcp``, it will be configured automatically.
77+
binit_net_ns=<addr>
78+
Optional dns servers. (can be given multiple times for multiple dns servers). Will override settings for dhcp assigned nameservers if binit_net_addr is set to dhcp.
79+
binit_net_domain=<domain>
80+
Optional dns search domain. This overrides what is set by dhcp.
7781
rw
7882
Mount rootfs in read-write. Default: read-only.
7983
mdev

sourceroot/bin/autoip-query

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
# A simple plug for zcap for better-initramfs.
44
# Does what dhcp-query would do if dhcp-query fails
5-
65
exec > /dhcp-query-result
76

87
case "$1" in
98
config)
109
printf 'binit_net_addr=%s\n' "${ip}"
11-
;;
10+
;;
1211
esac

sourceroot/bin/dhcp-query

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,25 @@ exec > /dhcp-query-result
88
case "$1" in
99
'renew'|'bound')
1010
printf 'binit_net_addr=%s\n' "${ip}/${mask}"
11-
printf 'binit_net_gw=%s\n' "${router}"
1211

13-
echo -n > /etc/resolv.conf
14-
[ -n "$domain" ] && echo search $domain >> /etc/resolv.conf
15-
for i in $dns ; do
16-
echo nameserver $i >> /etc/resolv.conf
17-
done
12+
# binit_net_nss, binit_net_domain, and binit_net_gw override dhcp
13+
14+
if [ -n "${router}" ]; then
15+
if [ -z "${binit_net_gw}" ]; then
16+
printf 'binit_net_gw="%s"\n' "${router}"
17+
fi
18+
fi
19+
20+
if [ -n "${domain}" ]; then
21+
if [ -z "${binit_net_domain}" ]; then
22+
printf 'binit_net_domain="%s"\n' "${domain}"
23+
fi
24+
fi
25+
26+
if [ -n "${dns}" ]; then
27+
if [ -z "${binit_net_nss}" ]; then
28+
printf 'binit_net_nss="%s"\n' "${dns}"
29+
fi
30+
fi
1831
;;
1932
esac

sourceroot/functions.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ process_commandline_options() {
148148
ro|rw)
149149
root_rw_ro=$i
150150
;;
151+
binit_net_ns\=*)
152+
# support multiple binit_net_ns=.
153+
binit_net_nss="${binit_net_nss} ${i#*=}"
154+
;;
151155
binit_net_route\=*)
152156
# support multiple binit_net_route=.
153157
binit_net_routes="${binit_net_routes} ${i#*=}"
@@ -397,6 +401,21 @@ SetupNetwork() {
397401
einfo "Setting default routing via '${binit_net_gw}' ..."
398402
run ip route add default via "${binit_net_gw}" dev "${binit_net_if}"
399403
fi
404+
405+
if [ -n "${binit_net_domain}" ]; then
406+
einfo "Setting search domain to ${binit_net_domain} ..."
407+
printf 'search %s\n' "${binit_net_domain}" >> /etc/resolv.conf
408+
fi
409+
410+
if [ -n "${binit_net_nss}" ]; then
411+
einfo "Adding nameservers: ${binit_net_nss} ..."
412+
set -f
413+
for i in ${binit_net_nss}; do
414+
printf 'nameserver %s\n' "${i}" >> /etc/resolv.conf
415+
done
416+
set +f
417+
fi
418+
400419
}
401420

402421
setup_sshd() {

0 commit comments

Comments
 (0)