Blame view

lib/net_utils.c 822 Bytes
83d290c56   Tom Rini   SPDX: Convert all...
1
  // SPDX-License-Identifier: GPL-2.0+
6a45e3849   Dirk Behme   Make getenv_IPadd...
2
3
4
5
6
7
8
9
  /*
   * 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
6a45e3849   Dirk Behme   Make getenv_IPadd...
10
11
12
   */
  
  #include <common.h>
049a95a77   Joe Hershberger   net: cosmetic: Ch...
13
  struct in_addr string_to_ip(const char *s)
6a45e3849   Dirk Behme   Make getenv_IPadd...
14
  {
049a95a77   Joe Hershberger   net: cosmetic: Ch...
15
  	struct in_addr addr;
6a45e3849   Dirk Behme   Make getenv_IPadd...
16
17
  	char *e;
  	int i;
049a95a77   Joe Hershberger   net: cosmetic: Ch...
18
  	addr.s_addr = 0;
6a45e3849   Dirk Behme   Make getenv_IPadd...
19
  	if (s == NULL)
049a95a77   Joe Hershberger   net: cosmetic: Ch...
20
  		return addr;
6a45e3849   Dirk Behme   Make getenv_IPadd...
21

049a95a77   Joe Hershberger   net: cosmetic: Ch...
22
  	for (addr.s_addr = 0, i = 0; i < 4; ++i) {
6a45e3849   Dirk Behme   Make getenv_IPadd...
23
  		ulong val = s ? simple_strtoul(s, &e, 10) : 0;
d921ed9a2   Chris Packham   lib: net_utils: m...
24
25
26
27
  		if (val > 255) {
  			addr.s_addr = 0;
  			return addr;
  		}
f267e40f9   Chris Packham   lib: net_utils: e...
28
29
30
31
  		if (i != 3 && *e != '.') {
  			addr.s_addr = 0;
  			return addr;
  		}
049a95a77   Joe Hershberger   net: cosmetic: Ch...
32
33
  		addr.s_addr <<= 8;
  		addr.s_addr |= (val & 0xFF);
6a45e3849   Dirk Behme   Make getenv_IPadd...
34
35
36
37
  		if (s) {
  			s = (*e) ? e+1 : e;
  		}
  	}
049a95a77   Joe Hershberger   net: cosmetic: Ch...
38
39
  	addr.s_addr = htonl(addr.s_addr);
  	return addr;
6a45e3849   Dirk Behme   Make getenv_IPadd...
40
  }