summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/common.h7
-rw-r--r--include/net.h3
-rw-r--r--lib_generic/Makefile1
-rw-r--r--lib_generic/net_utils.c50
-rw-r--r--net/net.c26
5 files changed, 58 insertions, 29 deletions
diff --git a/include/common.h b/include/common.h
index 07897f682eb..8197508b6d2 100644
--- a/include/common.h
+++ b/include/common.h
@@ -617,6 +617,13 @@ int gunzip(void *, int, unsigned char *, unsigned long *);
int zunzip(void *dst, int dstlen, unsigned char *src, unsigned long *lenp,
int stoponerr, int offset);
+/* lib_generic/net_utils.c */
+#include <net.h>
+static inline IPaddr_t getenv_IPaddr (char *var)
+{
+ return (string_to_ip(getenv(var)));
+}
+
/* lib_generic/time.c */
void udelay (unsigned long);
diff --git a/include/net.h b/include/net.h
index 1c8ab12454b..3f6a5d1497f 100644
--- a/include/net.h
+++ b/include/net.h
@@ -508,9 +508,6 @@ extern void VLAN_to_string (ushort x, char *s);
/* Convert a string to a vlan id */
extern ushort string_to_VLAN(char *s);
-/* read an IP address from a environment variable */
-extern IPaddr_t getenv_IPaddr (char *);
-
/* read a VLAN id from an environment variable */
extern ushort getenv_VLAN(char *);
diff --git a/lib_generic/Makefile b/lib_generic/Makefile
index bfaf3468ef6..c17179cbc83 100644
--- a/lib_generic/Makefile
+++ b/lib_generic/Makefile
@@ -41,6 +41,7 @@ COBJS-y += gunzip.o
COBJS-y += lmb.o
COBJS-y += ldiv.o
COBJS-$(CONFIG_MD5) += md5.o
+COBJS-y += net_utils.o
COBJS-y += sha1.o
COBJS-$(CONFIG_SHA256) += sha256.o
COBJS-y += string.o
diff --git a/lib_generic/net_utils.c b/lib_generic/net_utils.c
new file mode 100644
index 00000000000..f03b098e9c1
--- /dev/null
+++ b/lib_generic/net_utils.c
@@ -0,0 +1,50 @@
+/*
+ * Generic network code. Moved from net.c
+ *
+ * Copyright 1994 - 2000 Neil Russell.
+ * Copyright 2000 Roland Borde
+ * Copyright 2000 Paolo Scaffardi
+ * Copyright 2000-2002 Wolfgang Denk, wd@denx.de
+ * Copyright 2009 Dirk Behme, dirk.behme@googlemail.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+
+IPaddr_t string_to_ip(char *s)
+{
+ IPaddr_t addr;
+ char *e;
+ int i;
+
+ if (s == NULL)
+ return(0);
+
+ for (addr=0, i=0; i<4; ++i) {
+ ulong val = s ? simple_strtoul(s, &e, 10) : 0;
+ addr <<= 8;
+ addr |= (val & 0xFF);
+ if (s) {
+ s = (*e) ? e+1 : e;
+ }
+ }
+
+ return (htonl(addr));
+}
diff --git a/net/net.c b/net/net.c
index 595abd92236..7d2220d48de 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1890,27 +1890,6 @@ void ip_to_string (IPaddr_t x, char *s)
);
}
-IPaddr_t string_to_ip(char *s)
-{
- IPaddr_t addr;
- char *e;
- int i;
-
- if (s == NULL)
- return(0);
-
- for (addr=0, i=0; i<4; ++i) {
- ulong val = s ? simple_strtoul(s, &e, 10) : 0;
- addr <<= 8;
- addr |= (val & 0xFF);
- if (s) {
- s = (*e) ? e+1 : e;
- }
- }
-
- return (htonl(addr));
-}
-
void VLAN_to_string(ushort x, char *s)
{
x = ntohs(x);
@@ -1939,11 +1918,6 @@ ushort string_to_VLAN(char *s)
return htons(id);
}
-IPaddr_t getenv_IPaddr (char *var)
-{
- return (string_to_ip(getenv(var)));
-}
-
ushort getenv_VLAN(char *var)
{
return (string_to_VLAN(getenv(var)));