summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net.h2
-rw-r--r--lib/parameter.c6
-rw-r--r--net/net.c14
-rw-r--r--net/tftp.c3
4 files changed, 9 insertions, 16 deletions
diff --git a/include/net.h b/include/net.h
index 3f2187eca0..01e4b22587 100644
--- a/include/net.h
+++ b/include/net.h
@@ -274,7 +274,7 @@ static inline void net_copy_uint32(uint32_t *to, uint32_t *from)
}
/* 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 379a0577ed..5a7ae1a3cf 100644
--- a/lib/parameter.c
+++ b/lib/parameter.c
@@ -74,11 +74,7 @@ IPaddr_t dev_get_param_ip(struct device_d *dev, char *name)
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 046ddd4077..d164992fe8 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),
@@ -146,9 +148,9 @@ IPaddr_t getenv_ip_dns(const char *name, int dns)
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 @@ 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)
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);