uc-sdk
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ip_addr.c File Reference
#include "lwip/opt.h"
#include "lwip/ip_addr.h"
#include "lwip/netif.h"

Go to the source code of this file.

Macros

#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)
 
u8_t ip4_addr_netmask_valid (u32_t netmask)
 
u32_t ipaddr_addr (const char *cp)
 
int ipaddr_aton (const char *cp, ip_addr_t *addr)
 
char * ipaddr_ntoa (const ip_addr_t *addr)
 
char * ipaddr_ntoa_r (const ip_addr_t *addr, char *buf, int buflen)
 

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.

Definition in file ip_addr.c.

Macro Definition Documentation

#define in_range (   c,
  lo,
  up 
)    ((u8_t)c >= lo && (u8_t)c <= up)

Definition at line 114 of file ip_addr.c.

#define isdigit (   c)    in_range(c, '0', '9')

Definition at line 116 of file ip_addr.c.

#define islower (   c)    in_range(c, 'a', 'z')

Definition at line 118 of file ip_addr.c.

#define isprint (   c)    in_range(c, 0x20, 0x7f)

Definition at line 115 of file ip_addr.c.

#define isspace (   c)    (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')

Definition at line 119 of file ip_addr.c.

#define isxdigit (   c)    (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F'))

Definition at line 117 of file ip_addr.c.

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
addraddress to be checked
netifthe network interface against which the address is checked
Returns
returns non-zero if the address is a broadcast address

Definition at line 55 of file ip_addr.c.

u8_t ip4_addr_netmask_valid ( u32_t  netmask)

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

Parameters
netmaskthe IPv4 netmask to check (in network byte order!)
Returns
1 if the netmask is valid, 0 if it is not

Definition at line 90 of file ip_addr.c.

u32_t ipaddr_addr ( const char *  cp)

Ascii internet address interpretation routine. The value returned is in network order.

Parameters
cpIP address in ascii represenation (e.g. "127.0.0.1")
Returns
ip address in network order

Definition at line 130 of file ip_addr.c.

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
cpIP address in ascii represenation (e.g. "127.0.0.1")
addrpointer to which to save the ip address in network order
Returns
1 if cp could be converted to addr, 0 on failure

Definition at line 152 of file ip_addr.c.

char* ipaddr_ntoa ( const ip_addr_t addr)

Convert numeric IP address into decimal dotted ASCII representation. returns ptr to static buffer; not reentrant!

Parameters
addrip address in network order to convert
Returns
pointer to a global static (!) buffer that holds the ASCII represenation of addr

Definition at line 261 of file ip_addr.c.

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
addrip address in network order to convert
buftarget buffer where the string is stored
buflenlength of buf
Returns
either pointer to buf which now holds the ASCII representation of addr or NULL if buf was too small

Definition at line 276 of file ip_addr.c.

Variable Documentation

const ip_addr_t ip_addr_any = { IPADDR_ANY }

Definition at line 44 of file ip_addr.c.

const ip_addr_t ip_addr_broadcast = { IPADDR_BROADCAST }

Definition at line 45 of file ip_addr.c.