diff options
-rw-r--r-- | include/common.h | 7 | ||||
-rw-r--r-- | include/net.h | 3 | ||||
-rw-r--r-- | lib_generic/Makefile | 1 | ||||
-rw-r--r-- | lib_generic/net_utils.c | 50 | ||||
-rw-r--r-- | net/net.c | 26 |
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))); |