Defines | Functions | Variables

alexb/lib/lwip/contrib/src/core/ipv4/ip_addr.c File Reference

This is the IPv4 address tools implementation. More...

#include "lwip/opt.h"
#include "lwip/ip_addr.h"
#include "lwip/netif.h"

Defines

#define in_range(c, lo, up)   ((u8_t)c >= lo && (u8_t)c <= up)
#define isprint(c)   in_range(c, 0x20, 0x7f)
#define isdigit(c)   in_range(c, '0', '9')
#define isxdigit(c)   (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F'))
#define islower(c)   in_range(c, 'a', 'z')
#define isspace(c)   (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')

Functions

u8_t ip4_addr_isbroadcast (u32_t addr, const struct netif *netif)
 Determine if an address is a broadcast address on a network interface.
u8_t ip4_addr_netmask_valid (u32_t netmask)
 Checks if a netmask is valid (starting with ones, then only zeros).
u32_t ipaddr_addr (const char *cp)
 Ascii internet address interpretation routine.
int ipaddr_aton (const char *cp, ip_addr_t *addr)
 Check whether "cp" is a valid ascii representation of an Internet address and convert to a binary address.
char * ipaddr_ntoa (const ip_addr_t *addr)
 Convert numeric IP address into decimal dotted ASCII representation.
char * ipaddr_ntoa_r (const ip_addr_t *addr, char *buf, int buflen)
 Same as ipaddr_ntoa, but reentrant since a user-supplied buffer is used.

Variables

const ip_addr_t ip_addr_any = { IPADDR_ANY }
const ip_addr_t ip_addr_broadcast = { IPADDR_BROADCAST }

Detailed Description

This is the IPv4 address tools implementation.


Define Documentation

#define in_range (   c,
  lo,
  up 
)    ((u8_t)c >= lo && (u8_t)c <= up)
#define isdigit (   c  )     in_range(c, '0', '9')
#define islower (   c  )     in_range(c, 'a', 'z')
#define isprint (   c  )     in_range(c, 0x20, 0x7f)
#define isspace (   c  )     (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')
#define isxdigit (   c  )     (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F'))

Function Documentation

u8_t ip4_addr_isbroadcast ( u32_t  addr,
const struct netif netif 
)

Determine if an address is a broadcast address on a network interface.

Parameters:
addr address to be checked
netif the network interface against which the address is checked
Returns:
returns non-zero if the address is a broadcast address
u8_t ip4_addr_netmask_valid ( u32_t  netmask  ) 

Checks if a netmask is valid (starting with ones, then only zeros).

Parameters:
netmask the IPv4 netmask to check (in network byte order!)
Returns:
1 if the netmask is valid, 0 if it is not
u32_t ipaddr_addr ( const char *  cp  ) 

Ascii internet address interpretation routine.

The value returned is in network order.

Parameters:
cp IP address in ascii represenation (e.g. "127.0.0.1")
Returns:
ip address in network order
int ipaddr_aton ( const char *  cp,
ip_addr_t addr 
)

Check whether "cp" is a valid ascii representation of an Internet address and convert to a binary address.

Returns 1 if the address is valid, 0 if not. This replaces inet_addr, the return value from which cannot distinguish between failure and a local broadcast address.

Parameters:
cp IP address in ascii represenation (e.g. "127.0.0.1")
addr pointer to which to save the ip address in network order
Returns:
1 if cp could be converted to addr, 0 on failure
char* ipaddr_ntoa ( const ip_addr_t addr  ) 

Convert numeric IP address into decimal dotted ASCII representation.

returns ptr to static buffer; not reentrant!

returns ptr to static buffer; not reentrant!

Parameters:
addr ip address in network order to convert
Returns:
pointer to a global static (!) buffer that holds the ASCII represenation of addr
char* ipaddr_ntoa_r ( const ip_addr_t addr,
char *  buf,
int  buflen 
)

Same as ipaddr_ntoa, but reentrant since a user-supplied buffer is used.

Parameters:
addr ip address in network order to convert
buf target buffer where the string is stored
buflen length of buf
Returns:
either pointer to buf which now holds the ASCII representation of addr or NULL if buf was too small

Variable Documentation

const ip_addr_t ip_addr_any = { IPADDR_ANY }
const ip_addr_t ip_addr_broadcast = { IPADDR_BROADCAST }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines