[PATCH 04/21] net: Add functions to get/set nameserver and domainname
Sascha Hauer
s.hauer at pengutronix.de
Mon Nov 27 07:18:38 PST 2017
On Sat, Nov 25, 2017 at 12:47:09AM +0100, Sam Ravnborg wrote:
> On Fri, Nov 24, 2017 at 09:12:20AM +0100, Sascha Hauer wrote:
> > It's more convenient to have getter/setter functions for
> > variables rather than using the detour around global vars
> > which use string matching and all kinds of overhead in the
> > background.
> >
> > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > ---
> > include/net.h | 4 ++++
> > net/dns.c | 8 ++------
> > net/net.c | 24 ++++++++++++++++++++++++
> > 3 files changed, 30 insertions(+), 6 deletions(-)
> >
> > diff --git a/include/net.h b/include/net.h
> > index 632b6d5410..0fcde2f0b3 100644
> > --- a/include/net.h
> > +++ b/include/net.h
> > @@ -218,8 +218,12 @@ void net_set_ip(IPaddr_t ip);
> > void net_set_serverip(IPaddr_t ip);
> > void net_set_netmask(IPaddr_t ip);
> > void net_set_gateway(IPaddr_t ip);
> > +void net_set_nameserver(IPaddr_t ip);
> > +void net_set_domainname(const char *name);
> > IPaddr_t net_get_ip(void);
> > IPaddr_t net_get_serverip(void);
> > +IPaddr_t net_get_nameserver(void);
> > +const char *net_get_domainname(void);
> >
> > /* Do the work */
> > void net_poll(void);
> > diff --git a/net/dns.c b/net/dns.c
> > index 69b8a24861..a8ce7a4484 100644
> > --- a/net/dns.c
> > +++ b/net/dns.c
> > @@ -202,7 +202,6 @@ static void dns_handler(void *ctx, char *packet, unsigned len)
> > IPaddr_t resolv(const char *host)
> > {
> > IPaddr_t ip;
> > - const char *ns;
> >
> > if (!string_to_ip(host, &ip))
> > return ip;
> > @@ -211,16 +210,13 @@ IPaddr_t resolv(const char *host)
> >
> > dns_state = STATE_INIT;
> >
> > - ns = getenv("global.net.nameserver");
> > - if (!ns || !*ns) {
> > + ip = net_get_nameserver();
> > + if (!ip) {
> > printk("%s: no nameserver specified in $net.nameserver\n",
> > __func__);
> Should this use pr_info - and not printk direct?
Yes, although this hasn't been touched in this patch. I added a patch to
this series changing this consitently for this file.
> > +void net_set_domainname(const char *name)
> > +{
> > + free(net_domainname);
> > + if (name)
> > + net_domainname = xstrdup(name);
>
> > + else
> > + net_domainname = xstrdup(name);
> Looks strange that we check name - and then the if and else clause is the same.
Yeah, indeed. Changed to xstrdup("") for the name == NULL case.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list