[klibc] [PATCH] ipconfig: Implement support -d ...:dns0:dns1 options
Dimitri John Ledkov
xnox at ubuntu.com
Thu Jun 13 02:21:27 PDT 2019
Whilst ip= command is documented to support dns0:dns1 options as
arguments 7 and 8, the -d parser in ipconfig does not. This breaks
bringing up static ip configuration with dns nameservers set in the
ip= command.
Testcase:
$ ip link add name dummy0 type dummy
$ sudo /usr/lib/klibc/bin/ipconfig -d 10.245.237.7::10.245.237.1:255.255.255.0:ottawa:dummy0:none:8.8.8.8:8.8.4.4
IP-Config: dummy0 hardware address 76:39:ca:27:9b:90 mtu 1500
IP-Config: dummy0 guessed broadcast address 10.245.237.255
IP-Config: dummy0 complete:
address: 10.245.237.7 broadcast: 10.245.237.255 netmask: 255.255.255.0
gateway: 10.245.237.1 dns0 : 8.8.8.8 dns1 : 8.8.4.4
host : ottawa
rootserver: 0.0.0.0 rootpath:
filename :
Signed-off-by: Dimitri John Ledkov <xnox at ubuntu.com>
---
usr/kinit/ipconfig/main.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/usr/kinit/ipconfig/main.c b/usr/kinit/ipconfig/main.c
index a454022e..2c905986 100644
--- a/usr/kinit/ipconfig/main.c
+++ b/usr/kinit/ipconfig/main.c
@@ -611,7 +611,7 @@ static int parse_device(struct netdev *dev, char *ip)
if ((cp = strchr(ip, ':'))) {
*cp++ = '\0';
}
- if (opt > 6) {
+ if (opt > 8) {
fprintf(stderr,
"%s: too many options for %s\n",
progname, dev->name);
@@ -647,6 +647,12 @@ static int parse_device(struct netdev *dev, char *ip)
case 6:
dev->caps = parse_proto(ip);
break;
+ case 7:
+ parse_addr(&dev->ip_nameserver[0], ip);
+ break;
+ case 8:
+ parse_addr(&dev->ip_nameserver[1], ip);
+ break;
}
}
}
--
2.20.1
More information about the klibc
mailing list