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 (char family, char *buf, size_t size) |
| Convert address family to character string. | |
| char | nl_str2af (const char *name) |
| Convert character string to address family. | |
Creating Abstract Addresses | |
| nl_addr * | nl_addr_alloc (size_t maxsize) |
| Allocate new abstract address object. | |
| nl_addr * | nl_addr_build (int family, void *buf, size_t size) |
| Allocate new abstract address object based on a binary address. | |
| nl_addr * | nl_addr_parse (const char *addrstr, int hint) |
| Allocate abstract address object based on a character string. | |
| 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 | |
| nl_addr * | nl_addr_get (struct nl_addr *addr) |
| Request undestroyable reference of abstract address object. | |
| void | nl_addr_put (struct nl_addr *addr) |
| Give back reference of abstract address object. | |
| 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_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 | |
| 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(). | |
Attribute Access | |
| void | nl_addr_set_family (struct nl_addr *addr, int family) |
| Set address family of abstract address object. | |
| int | nl_addr_get_family (struct nl_addr *addr) |
| Get address family of abstract address object. | |
| 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) |
| Set prefix length of abstract address object. | |
| 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 | ) |
Allocate new abstract address object.
| 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 | |||
| ) |
Allocate new abstract address object based on a binary address.
| 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 | |||
| ) |
Allocate abstract address object based on a character string.
| 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(), nl_addr_set_binary_addr(), nl_addr_set_family(), and nl_addr_set_prefixlen().
| struct nl_addr* nl_addr_clone | ( | struct nl_addr * | addr | ) |
Clone existing abstract address object.
| addr | Abstract address object. |
Definition at line 406 of file addr.c.
References nl_addr_build().
| void nl_addr_destroy | ( | struct nl_addr * | addr | ) |
Destroy abstract address object.
| addr | Abstract address object. |
Definition at line 428 of file addr.c.
Referenced by nl_addr_parse(), and nl_addr_put().
| struct nl_addr* nl_addr_get | ( | struct nl_addr * | addr | ) |
Request undestroyable reference of abstract address object.
| addr | Abstract address object. |
Definition at line 451 of file addr.c.
Referenced by flnl_request_set_addr(), rtnl_route_nh_set_gateway(), rtnl_route_set_dst(), rtnl_route_set_gateway(), rtnl_route_set_pref_src(), and rtnl_route_set_src().
| void nl_addr_put | ( | struct nl_addr * | addr | ) |
Give back reference of abstract address object.
| addr | Abstract address object. |
Definition at line 465 of file addr.c.
References nl_addr_destroy().
Referenced by flnl_request_set_addr(), rtnl_route_nh_free(), rtnl_route_nh_set_gateway(), rtnl_route_set_dst(), rtnl_route_set_gateway(), rtnl_route_set_pref_src(), and rtnl_route_set_src().
| int nl_addr_shared | ( | struct nl_addr * | addr | ) |
| int nl_addr_cmp | ( | struct nl_addr * | a, | |
| struct nl_addr * | b | |||
| ) |
Compares two abstract address objects.
| 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 501 of file addr.c.
Referenced by flnl_request_cmp(), and rtnl_neigh_get().
| 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 | |||
| ) |
Fill out sockaddr structure with values from abstract address object.
| addr | Abstract address object. | |
| sa | Destination sockaddr structure buffer. | |
| salen | Length of sockaddr structure buffer. |
Definition at line 583 of file addr.c.
Referenced by nl_addr_resolve().
| struct addrinfo* nl_addr_info | ( | struct nl_addr * | addr | ) |
Call getaddrinfo() for an abstract address object.
| addr | Abstract address object. |
Definition at line 639 of file addr.c.
References nl_addr2str().
| int nl_addr_resolve | ( | struct nl_addr * | addr, | |
| char * | host, | |||
| size_t | hostlen | |||
| ) |
Resolve abstract address object to a name using getnameinfo().
| addr | Abstract address object. | |
| host | Destination buffer for host name. | |
| hostlen | Length of destination buffer. |
Definition at line 673 of file addr.c.
References nl_addr_fill_sockaddr().
| void nl_addr_set_family | ( | struct nl_addr * | addr, | |
| int | family | |||
| ) |
Set address family of abstract address object.
| addr | Abstract address object. | |
| family | New address family. |
Definition at line 699 of file addr.c.
Referenced by nl_addr_parse().
| 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.
| addr | Abstract address object. | |
| buf | Buffer containing binary address. | |
| len | Length of buffer containing binary address. |
Definition at line 719 of file addr.c.
Referenced by nl_addr_parse().
| void* nl_addr_get_binary_addr | ( | struct nl_addr * | addr | ) |
Get binary address of abstract address object.
| addr | Abstract address object. |
Definition at line 734 of file addr.c.
Referenced by flnl_lookup_build_request(), and nla_put_addr().
| unsigned int nl_addr_get_len | ( | struct nl_addr * | addr | ) |
Get length of binary address of abstract address object.
| addr | Abstract address object. |
Definition at line 743 of file addr.c.
Referenced by nla_put_addr().
| void nl_addr_set_prefixlen | ( | struct nl_addr * | addr, | |
| int | prefixlen | |||
| ) |
Set prefix length of abstract address object.
| addr | Abstract address object. | |
| prefixlen | New prefix length. |
Definition at line 753 of file addr.c.
Referenced by nl_addr_parse(), rtnl_rule_set_dst_len(), and rtnl_rule_set_src_len().
| unsigned int nl_addr_get_prefixlen | ( | struct nl_addr * | addr | ) |
Get prefix length of abstract address object.
| addr | Abstract address object. |
Definition at line 762 of file addr.c.
Referenced by rtnl_addr_set_local(), and rtnl_addr_set_peer().
| char* nl_addr2str | ( | struct nl_addr * | addr, | |
| char * | buf, | |||
| size_t | size | |||
| ) |
Convert abstract address object to character string.
| addr | Abstract address object. | |
| buf | Destination buffer. | |
| size | Size of destination buffer. |
Definition at line 785 of file addr.c.
Referenced by nl_addr_info().
| char* nl_af2str | ( | char | family, | |
| char * | buf, | |||
| size_t | size | |||
| ) |
Convert address family to character string.
| family | Address family. | |
| buf | Destination buffer. | |
| size | Size of destination buffer. |
| char nl_str2af | ( | const char * | name | ) |
1.5.1