diff --git a/include/net.h b/include/net.h index 3f2187e..01e4b22 100644 --- a/include/net.h +++ b/include/net.h @@ -274,7 +274,7 @@ } /* Convert an IP address to a string */ -char *ip_to_string (IPaddr_t x, char *s); +char *ip_to_string (IPaddr_t x); /* Convert a string to ip address */ int string_to_ip(const char *s, IPaddr_t *ip); diff --git a/lib/parameter.c b/lib/parameter.c index 379a057..5a7ae1a 100644 --- a/lib/parameter.c +++ b/lib/parameter.c @@ -74,11 +74,7 @@ int dev_set_param_ip(struct device_d *dev, char *name, IPaddr_t ip) { - char ipstr[sizeof("xxx.xxx.xxx.xxx")]; - - ip_to_string(ip, ipstr); - - return dev_set_param(dev, name, ipstr); + return dev_set_param(dev, name, ip_to_string(ip)); } #endif diff --git a/net/net.c b/net/net.c index 046ddd4..d164992 100644 --- a/net/net.c +++ b/net/net.c @@ -85,8 +85,10 @@ 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), @@ -146,9 +148,9 @@ 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 +159,7 @@ 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) diff --git a/net/tftp.c b/net/tftp.c index fc33c94..ca12638 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -273,7 +273,6 @@ 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 @@ 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);