summaryrefslogtreecommitdiffstats
path: root/net/net.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-04-16 11:34:41 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-16 11:34:41 +0200
commit86b9eb2105578eaecba52ca419c8670a51b70e99 (patch)
treea90d0574b4fee0842e51e42d5647bbc398102e4e /net/net.c
parent239a8523369472c4c6bb9a0649f2eb5977121dbe (diff)
parentabe4560c8add1c58a944b36e8ea51b10968f4d7b (diff)
downloadbarebox-86b9eb2105578eaecba52ca419c8670a51b70e99.tar.gz
barebox-86b9eb2105578eaecba52ca419c8670a51b70e99.tar.xz
Merge branch 'work/dns' into next
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/net/net.c b/net/net.c
index c6bc8a15f4..c803c48a38 100644
--- a/net/net.c
+++ b/net/net.c
@@ -85,8 +85,10 @@ uint16_t net_checksum(unsigned char *ptr, int len)
return xsum & 0xffff;
}
-char *ip_to_string (IPaddr_t x, char *s)
+char *ip_to_string (IPaddr_t x)
{
+ static char s[sizeof("xxx.xxx.xxx.xxx")];
+
x = ntohl (x);
sprintf (s, "%d.%d.%d.%d",
(int) ((x >> 24) & 0xff),
@@ -127,7 +129,7 @@ int string_to_ip(const char *s, IPaddr_t *ip)
return 0;
}
-IPaddr_t getenv_ip_dns(const char *name, int dns)
+IPaddr_t getenv_ip(const char *name)
{
IPaddr_t ip;
const char *var = getenv(name);
@@ -138,17 +140,14 @@ IPaddr_t getenv_ip_dns(const char *name, int dns)
if (!string_to_ip(var, &ip))
return ip;
- if (!dns)
- return 0;
-
return resolv((char*)var);
}
int setenv_ip(const char *name, IPaddr_t ip)
{
- char str[sizeof("xxx.xxx.xxx.xxx")];
+ const char *str;
- ip_to_string(ip, str);
+ str = ip_to_string(ip);
setenv(name, str);
@@ -157,11 +156,7 @@ int setenv_ip(const char *name, IPaddr_t ip)
void print_IPaddr (IPaddr_t x)
{
- char tmp[16];
-
- ip_to_string (x, tmp);
-
- puts (tmp);
+ puts(ip_to_string(x));
}
int string_to_ethaddr(const char *str, char *enetaddr)
@@ -668,6 +663,11 @@ out:
return ret;
}
+static struct device_d net_device = {
+ .name = "net",
+ .id = DEVICE_ID_SINGLE,
+};
+
static int net_init(void)
{
int i;
@@ -675,6 +675,10 @@ static int net_init(void)
for (i = 0; i < PKTBUFSRX; i++)
NetRxPackets[i] = net_alloc_packet();
+ register_device(&net_device);
+ dev_add_param(&net_device, "nameserver", NULL, NULL, 0);
+ dev_add_param(&net_device, "domainname", NULL, NULL, 0);
+
return 0;
}