diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-16 11:34:41 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-16 11:34:41 +0200 |
commit | 86b9eb2105578eaecba52ca419c8670a51b70e99 (patch) | |
tree | a90d0574b4fee0842e51e42d5647bbc398102e4e /net | |
parent | 239a8523369472c4c6bb9a0649f2eb5977121dbe (diff) | |
parent | abe4560c8add1c58a944b36e8ea51b10968f4d7b (diff) | |
download | barebox-86b9eb2105578eaecba52ca419c8670a51b70e99.tar.gz barebox-86b9eb2105578eaecba52ca419c8670a51b70e99.tar.xz |
Merge branch 'work/dns' into next
Diffstat (limited to 'net')
-rw-r--r-- | net/dhcp.c | 6 | ||||
-rw-r--r-- | net/dns.c | 8 | ||||
-rw-r--r-- | net/eth.c | 2 | ||||
-rw-r--r-- | net/net.c | 28 | ||||
-rw-r--r-- | net/tftp.c | 3 |
5 files changed, 24 insertions, 23 deletions
diff --git a/net/dhcp.c b/net/dhcp.c index 0116ba423e..8569917a78 100644 --- a/net/dhcp.c +++ b/net/dhcp.c @@ -170,7 +170,7 @@ struct dhcp_opt dhcp_options[] = { }, { .option = 6, .handle = env_ip_handle, - .barebox_var_name = "nameserver", + .barebox_var_name = "net.nameserver", }, { .option = 12, .handle = env_str_handle, @@ -178,7 +178,7 @@ struct dhcp_opt dhcp_options[] = { }, { .option = 15, .handle = env_str_handle, - .barebox_var_name = "domainname", + .barebox_var_name = "net.domainname", }, { .option = 17, .handle = env_str_handle, @@ -697,9 +697,7 @@ BAREBOX_CMD_START(dhcp) BAREBOX_CMD_END BAREBOX_MAGICVAR(bootfile, "bootfile returned from DHCP request"); -BAREBOX_MAGICVAR(nameserver, "Nameserver returned from DHCP request"); BAREBOX_MAGICVAR(hostname, "hostname returned from DHCP request"); -BAREBOX_MAGICVAR(domainname, "domainname returned from DHCP request"); BAREBOX_MAGICVAR(rootpath, "rootpath returned from DHCP request"); BAREBOX_MAGICVAR(dhcp_vendor_id, "vendor id to send to the DHCP server"); BAREBOX_MAGICVAR(dhcp_client_uuid, "cliend uuid to send to the DHCP server"); @@ -77,7 +77,7 @@ static int dns_send(char *name) header->nauth = 0; header->nother = 0; - domain = getenv("domainname"); + domain = getenv("net.domainname"); if (!strchr(name, '.') && domain && *domain) fullname = asprintf(".%s.%s.", name, domain); @@ -97,7 +97,7 @@ static int dns_send(char *name) dotptr = s; } while (*(dotptr + 1)); *dotptr = 0; -//memory_display(fullname, 0, strlen(fullname), 1); + strcpy(header->data, fullname); p = header->data + strlen(fullname); @@ -205,11 +205,11 @@ IPaddr_t resolv(char *host) dns_state = STATE_INIT; - ip = getenv_ip_dns("nameserver", 0); + ip = getenv_ip("net.nameserver"); if (!ip) return 0; - debug("resolving host %s via nameserver %s\n", host, getenv("nameserver")); + debug("resolving host %s via nameserver %s\n", host, ip_to_string(ip)); dns_con = net_udp_new(ip, DNS_PORT, dns_handler, NULL); if (IS_ERR(dns_con)) @@ -198,7 +198,7 @@ int eth_register(struct eth_device *edev) } strcpy(edev->dev.name, "eth"); - edev->dev.id = -1; + edev->dev.id = DEVICE_ID_DYNAMIC; if (edev->parent) dev_add_child(edev->parent, &edev->dev); @@ -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; } diff --git a/net/tftp.c b/net/tftp.c index fc33c94583..ca12638353 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -273,7 +273,6 @@ static void tftp_handler(void *ctx, char *packet, unsigned len) static int do_tftpb(int argc, char *argv[]) { char *localfile, *remotefile, *file1, *file2; - char ip1[16]; int opt; struct stat s; unsigned long flags; @@ -328,7 +327,7 @@ static int do_tftpb(int argc, char *argv[]) printf("TFTP %s server %s ('%s' -> '%s')\n", tftp_push ? "to" : "from", - ip_to_string(net_get_serverip(), ip1), + ip_to_string(net_get_serverip()), file1, file2); init_progression_bar(tftp_push ? s.st_size : 0); |