diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-15 13:43:04 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-15 13:43:04 +0100 |
commit | a9d1b2dbf4a6808bd0d2e841e32802f5bffb362a (patch) | |
tree | f5af1f80e4a215d1a5829aa5ea4f4458c4de61af /net/net.c | |
parent | 53227ec3c16fe50d7a3ca4020d3cb98878eeaa18 (diff) | |
parent | 92a1e1b0f19aedcc1ec7b4e34f6597b4340cf96a (diff) | |
download | barebox-a9d1b2dbf4a6808bd0d2e841e32802f5bffb362a.tar.gz barebox-a9d1b2dbf4a6808bd0d2e841e32802f5bffb362a.tar.xz |
Merge branch 'for-next/net'
Diffstat (limited to 'net/net.c')
-rw-r--r-- | net/net.c | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -44,7 +44,7 @@ unsigned char *NetRxPackets[PKTBUFSRX]; /* Receive packets */ static unsigned int net_ip_id; -IPaddr_t net_serverip; +char *net_server; IPaddr_t net_gateway; static IPaddr_t net_nameserver; static char *net_domainname; @@ -271,17 +271,26 @@ static uint16_t net_udp_new_localport(void) IPaddr_t net_get_serverip(void) { - return net_serverip; + IPaddr_t ip; + int ret; + + ret = resolv(net_server, &ip); + if (ret) + return 0; + + return ip; } void net_set_serverip(IPaddr_t ip) { - net_serverip = ip; + free(net_server); + + net_server = xasprintf("%pI4", &ip); } void net_set_serverip_empty(IPaddr_t ip) { - if (net_serverip) + if (net_server && *net_server) return; net_set_serverip(ip); @@ -647,7 +656,7 @@ static int net_init(void) globalvar_add_simple_ip("net.nameserver", &net_nameserver); globalvar_add_simple_string("net.domainname", &net_domainname); - globalvar_add_simple_ip("net.server", &net_serverip); + globalvar_add_simple_string("net.server", &net_server); globalvar_add_simple_ip("net.gateway", &net_gateway); return 0; |