From: Christoph Fritz <chf.fritz@googlemail.com>
To: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: barebox@lists.infradead.org
Subject: [PATCH 1/2][v2] net: add nameserver IPs to kernel-parameter ip=
Date: Sat, 22 Sep 2012 17:41:57 +0200 [thread overview]
Message-ID: <1348328517.25235.5.camel@mars> (raw)
In-Reply-To: <20120922114346.GT26553@game.jcrosoft.org>
Kernel-parameter "ip=" is used to assign network configuration.
With linux kernel 3.7 it is also possible to set nameserver IPs.
This patch adds two new variables (nameserver0 and nameserver1) to
barebox's $net configuration.
Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
---
net/dhcp.c | 2 +-
net/dns.c | 4 ++--
net/net.c | 18 +++++++++++++++++-
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/net/dhcp.c b/net/dhcp.c
index 768255e..118a5a6 100644
--- a/net/dhcp.c
+++ b/net/dhcp.c
@@ -211,7 +211,7 @@ struct dhcp_opt dhcp_options[] = {
}, {
.option = 6,
.handle = env_ip_handle,
- .barebox_var_name = "net.nameserver",
+ .barebox_var_name = "net.nameserver0",
}, {
.option = 12,
.copy_only_if_valid = 1,
diff --git a/net/dns.c b/net/dns.c
index eb96c57..e832f97 100644
--- a/net/dns.c
+++ b/net/dns.c
@@ -206,9 +206,9 @@ IPaddr_t resolv(char *host)
dns_state = STATE_INIT;
- ns = getenv("net.nameserver");
+ ns = getenv("net.nameserver0");
if (!ns || !*ns) {
- printk("%s: no nameserver specified in $net.nameserver\n",
+ printk("%s: no nameserver specified in $net.nameserver0\n",
__func__);
return 0;
}
diff --git a/net/net.c b/net/net.c
index 3ac098f..171e644 100644
--- a/net/net.c
+++ b/net/net.c
@@ -669,6 +669,21 @@ static struct device_d net_device = {
.id = DEVICE_ID_SINGLE,
};
+static int net_set_namesrv(struct device_d *dev, struct param_d *param, const char *val)
+{
+ IPaddr_t ip;
+
+ if (!val)
+ return -EINVAL;
+
+ if (string_to_ip(val, &ip))
+ return -EINVAL;
+
+ dev_param_set_generic(dev, param, val);
+
+ return 0;
+}
+
static int net_init(void)
{
int i;
@@ -677,7 +692,8 @@ static int net_init(void)
NetRxPackets[i] = net_alloc_packet();
register_device(&net_device);
- dev_add_param(&net_device, "nameserver", NULL, NULL, 0);
+ dev_add_param(&net_device, "nameserver0", net_set_namesrv, NULL, 0);
+ dev_add_param(&net_device, "nameserver1", net_set_namesrv, NULL, 0);
dev_add_param(&net_device, "domainname", NULL, NULL, 0);
return 0;
--
1.7.2.5
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2012-09-22 15:42 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-22 10:58 [PATCH 1/2] net: add nameserver IPs to kernel-parameter ip= Christoph Fritz
2012-09-22 11:43 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-22 15:41 ` Christoph Fritz [this message]
2012-09-22 18:24 ` [PATCH 1/2][v2] " Jean-Christophe PLAGNIOL-VILLARD
2012-09-22 18:27 ` [PATCH 1/1] net: add multiple nameserver support Jean-Christophe PLAGNIOL-VILLARD
2012-09-22 19:25 ` Christoph Fritz
2012-09-22 20:16 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-23 12:11 ` [PATCH] " Christoph Fritz
2012-09-23 13:29 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-23 13:57 ` Christoph Fritz
2012-12-10 11:23 ` Christoph Fritz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1348328517.25235.5.camel@mars \
--to=chf.fritz@googlemail.com \
--cc=barebox@lists.infradead.org \
--cc=plagnioj@jcrosoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.