struct nl_addr *a = nl_addr_parse("::1", AF_UNSPEC); printf("Address family: %s\n", nl_af2str(nl_addr_get_family(a))); nl_addr_put(a); a = nl_addr_parse("11:22:33:44:55:66", AF_UNSPEC); printf("Address family: %s\n", nl_af2str(nl_addr_get_family(a))); nl_addr_put(a);
Address Family Transformations | |
char * | nl_af2str (int family, char *buf, size_t size) |
int | nl_str2af (const char *name) |
Creating Abstract Addresses | |
struct nl_addr * | nl_addr_alloc (size_t maxsize) |
Allocate new abstract address object. | |
struct nl_addr * | nl_addr_build (int family, void *buf, size_t size) |
Allocate new abstract address object based on a binary address. | |
struct nl_addr * | nl_addr_parse (const char *addrstr, int hint) |
Allocate abstract address object based on a character string. | |
struct nl_addr * | nl_addr_clone (struct nl_addr *addr) |
Clone existing abstract address object. | |
Destroying Abstract Addresses | |
void | nl_addr_destroy (struct nl_addr *addr) |
Destroy abstract address object. | |
Managing Usage References | |
struct nl_addr * | nl_addr_get (struct nl_addr *addr) |
void | nl_addr_put (struct nl_addr *addr) |
int | nl_addr_shared (struct nl_addr *addr) |
Check whether an abstract address object is shared. | |
Miscellaneous | |
int | nl_addr_cmp (struct nl_addr *a, struct nl_addr *b) |
Compares two abstract address objects. | |
int | nl_addr_cmp_prefix (struct nl_addr *a, struct nl_addr *b) |
Compares the prefix of two abstract address objects. | |
int | nl_addr_iszero (struct nl_addr *addr) |
Returns true if the address consists of all zeros. | |
int | nl_addr_valid (char *addr, int family) |
Check if an address matches a certain family. | |
int | nl_addr_guess_family (struct nl_addr *addr) |
Guess address family of an abstract address object based on address size. | |
int | nl_addr_fill_sockaddr (struct nl_addr *addr, struct sockaddr *sa, socklen_t *salen) |
Fill out sockaddr structure with values from abstract address object. | |
Getting Information About Addresses | |
struct addrinfo * | nl_addr_info (struct nl_addr *addr) |
Call getaddrinfo() for an abstract address object. | |
int | nl_addr_resolve (struct nl_addr *addr, char *host, size_t hostlen) |
Resolve abstract address object to a name using getnameinfo(). | |
Attributes | |
void | nl_addr_set_family (struct nl_addr *addr, int family) |
int | nl_addr_get_family (struct nl_addr *addr) |
int | nl_addr_set_binary_addr (struct nl_addr *addr, void *buf, size_t len) |
Set binary address of abstract address object. | |
void * | nl_addr_get_binary_addr (struct nl_addr *addr) |
Get binary address of abstract address object. | |
unsigned int | nl_addr_get_len (struct nl_addr *addr) |
Get length of binary address of abstract address object. | |
void | nl_addr_set_prefixlen (struct nl_addr *addr, int prefixlen) |
unsigned int | nl_addr_get_prefixlen (struct nl_addr *addr) |
Get prefix length of abstract address object. | |
Translations to Strings | |
char * | nl_addr2str (struct nl_addr *addr, char *buf, size_t size) |
Convert abstract address object to character string. |
struct nl_addr* nl_addr_alloc | ( | size_t | maxsize | ) | [read] |
maxsize | Maximum size of the binary address. |
Definition at line 164 of file addr.c.
Referenced by nl_addr_build(), and nl_addr_parse().
struct nl_addr* nl_addr_build | ( | int | family, | |
void * | buf, | |||
size_t | size | |||
) | [read] |
family | Address family. | |
buf | Buffer containing the binary address. | |
size | Length of binary address buffer. |
Definition at line 187 of file addr.c.
References nl_addr_alloc().
Referenced by nl_addr_clone(), and nla_get_addr().
struct nl_addr* nl_addr_parse | ( | const char * | addrstr, | |
int | hint | |||
) | [read] |
addrstr | Address represented as character string. | |
hint | Address family hint or AF_UNSPEC. |
Format Len Family ---------------------------------------------------------------- IPv6 address format 16 AF_INET6 ddd.ddd.ddd.ddd 4 AF_INET HH:HH:HH:HH:HH:HH 6 AF_LLC AA{.|,}NNNN 2 AF_DECnet HH:HH:HH:... variable AF_UNSPEC
Special values:
The prefix length may be appened at the end prefixed with a slash, e.g. 10.0.0.0/8.
Definition at line 231 of file addr.c.
References nl_addr_alloc(), nl_addr_destroy(), and nl_addr_set_binary_addr().
struct nl_addr* nl_addr_clone | ( | struct nl_addr * | addr | ) | [read] |
addr | Abstract address object. |
Definition at line 406 of file addr.c.
References nl_addr_build().
void nl_addr_destroy | ( | struct nl_addr * | addr | ) |
addr | Abstract address object. |
Definition at line 428 of file addr.c.
Referenced by nl_addr_parse().
int nl_addr_shared | ( | struct nl_addr * | addr | ) |
int nl_addr_cmp | ( | struct nl_addr * | a, | |
struct nl_addr * | b | |||
) |
a | A abstract address object. | |
b | Another abstract address object. |
is
found, respectively to be less than, to, or be greater than b
. Definition at line 489 of file addr.c.
Referenced by rtnl_neigh_get().
int nl_addr_cmp_prefix | ( | struct nl_addr * | a, | |
struct nl_addr * | b | |||
) |
int nl_addr_iszero | ( | struct nl_addr * | addr | ) |
int nl_addr_valid | ( | char * | addr, | |
int | family | |||
) |
int nl_addr_guess_family | ( | struct nl_addr * | addr | ) |
int nl_addr_fill_sockaddr | ( | struct nl_addr * | addr, | |
struct sockaddr * | sa, | |||
socklen_t * | salen | |||
) |
addr | Abstract address object. | |
sa | Destination sockaddr structure buffer. | |
salen | Length of sockaddr structure buffer. |
Definition at line 614 of file addr.c.
Referenced by nl_addr_resolve().
struct addrinfo* nl_addr_info | ( | struct nl_addr * | addr | ) | [read] |
addr | Abstract address object. |
Definition at line 670 of file addr.c.
References nl_addr2str().
int nl_addr_resolve | ( | struct nl_addr * | addr, | |
char * | host, | |||
size_t | hostlen | |||
) |
addr | Abstract address object. | |
host | Destination buffer for host name. | |
hostlen | Length of destination buffer. |
Definition at line 704 of file addr.c.
References nl_addr_fill_sockaddr().
int nl_addr_set_binary_addr | ( | struct nl_addr * | addr, | |
void * | buf, | |||
size_t | len | |||
) |
addr | Abstract address object. | |
buf | Buffer containing binary address. | |
len | Length of buffer containing binary address. |
Definition at line 741 of file addr.c.
Referenced by nl_addr_parse().
void* nl_addr_get_binary_addr | ( | struct nl_addr * | addr | ) |
addr | Abstract address object. |
Definition at line 756 of file addr.c.
Referenced by flnl_lookup_build_request(), and nla_put_addr().
unsigned int nl_addr_get_len | ( | struct nl_addr * | addr | ) |
addr | Abstract address object. |
Definition at line 765 of file addr.c.
Referenced by nla_put_addr().
unsigned int nl_addr_get_prefixlen | ( | struct nl_addr * | addr | ) |
char* nl_addr2str | ( | struct nl_addr * | addr, | |
char * | buf, | |||
size_t | size | |||
) |
addr | Abstract address object. | |
buf | Destination buffer. | |
size | Size of destination buffer. |
Definition at line 802 of file addr.c.
Referenced by nl_addr_info().