47 const ip_addr_t ip_addr_any = IPADDR4_INIT(IPADDR_ANY);
 
   48 const ip_addr_t ip_addr_broadcast = IPADDR4_INIT(IPADDR_BROADCAST);
 
   61   ip4_addr_set_u32(&ipaddr, addr);
 
   64   if ((~addr == IPADDR_ANY) ||
 
   65       (addr == IPADDR_ANY)) {
 
   73   } 
else if (addr == ip4_addr_get_u32(netif_ip4_addr(
netif))) {
 
   76   } 
else if (ip4_addr_netcmp(&ipaddr, netif_ip4_addr(
netif), netif_ip4_netmask(
netif))
 
   78           && ((addr & ~ip4_addr_get_u32(netif_ip4_netmask(
netif))) ==
 
   79            (IPADDR_BROADCAST & ~ip4_addr_get_u32(netif_ip4_netmask(
netif))))) {
 
   93 ip4_addr_netmask_valid(
u32_t netmask)
 
   99   for (mask = 1UL << 31 ; mask != 0; mask >>= 1) {
 
  100     if ((nm_hostorder & mask) == 0) {
 
  105   for (; mask != 0; mask >>= 1) {
 
  106     if ((nm_hostorder & mask) != 0) {
 
  117 #define in_range(c, lo, up)  ((u8_t)c >= lo && (u8_t)c <= up) 
  118 #define isprint(c)           in_range(c, 0x20, 0x7f) 
  119 #define isdigit(c)           in_range(c, '0', '9') 
  120 #define isxdigit(c)          (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F')) 
  121 #define islower(c)           in_range(c, 'a', 'z') 
  122 #define isspace(c)           (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v') 
  133 ipaddr_addr(
const char *cp)
 
  137   if (ip4addr_aton(cp, &val)) {
 
  138     return ip4_addr_get_u32(&val);
 
  140   return (IPADDR_NONE);
 
  155 ip4addr_aton(
const char *cp, ip4_addr_t *addr)
 
  177       if (c == 
'x' || c == 
'X') {
 
  186         val = (val * base) + (
u32_t)(c - 
'0');
 
  188       } 
else if (base == 16 && isxdigit(c)) {
 
  189         val = (val << 4) | (
u32_t)(c + 10 - (islower(c) ? 
'a' : 
'A'));
 
  202       if (pp >= parts + 3) {
 
  214   if (c != 
'\0' && !isspace(c)) {
 
  221   switch (pp - parts + 1) {
 
  230     if (val > 0xffffffUL) {
 
  233     if (parts[0] > 0xff) {
 
  236     val |= parts[0] << 24;
 
  243     if ((parts[0] > 0xff) || (parts[1] > 0xff)) {
 
  246     val |= (parts[0] << 24) | (parts[1] << 16);
 
  253     if ((parts[0] > 0xff) || (parts[1] > 0xff) || (parts[2] > 0xff)) {
 
  256     val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
 
  277 ip4addr_ntoa(
const ip4_addr_t *addr)
 
  279   static char str[IP4ADDR_STRLEN_MAX];
 
  280   return ip4addr_ntoa_r(addr, str, IP4ADDR_STRLEN_MAX);
 
  293 ip4addr_ntoa_r(
const ip4_addr_t *addr, 
char *
buf, 
int buflen)
 
  304   s_addr = ip4_addr_get_u32(addr);
 
  307   ap = (
u8_t *)&s_addr;
 
  308   for (n = 0; n < 4; n++) {
 
  311       rem = *ap % (
u8_t)10;
 
  313       inv[i++] = (char)(
'0' + rem);
 
  316       if (len++ >= buflen) {
 
  321     if (len++ >= buflen) {