Creating Abstract Addresses | |
struct nl_addr * | nl_addr_alloc (size_t maxsize) |
Allocate new abstract address object. More... | |
struct nl_addr * | nl_addr_build (int family, void *buf, size_t size) |
Allocate new abstract address object based on a binary address. More... | |
struct nl_addr * | nl_addr_alloc_attr (struct nlattr *nla, int family) |
Allocate abstract address based on netlink attribute. More... | |
int | nl_addr_parse (const char *addrstr, int hint, struct nl_addr **result) |
Allocate abstract address object based on a character string. More... | |
struct nl_addr * | nl_addr_clone (struct nl_addr *addr) |
Clone existing abstract address object. More... | |
Destroying Abstract Addresses | |
void | nl_addr_destroy (struct nl_addr *addr) |
Destroy abstract address object. More... | |
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. More... | |
Miscellaneous | |
int | nl_addr_cmp (struct nl_addr *a, struct nl_addr *b) |
Compares two abstract address objects. More... | |
int | nl_addr_cmp_prefix (struct nl_addr *a, struct nl_addr *b) |
Compares the prefix of two abstract address objects. More... | |
int | nl_addr_iszero (struct nl_addr *addr) |
Returns true if the address consists of all zeros. More... | |
int | nl_addr_valid (char *addr, int family) |
Check if an address matches a certain family. More... | |
int | nl_addr_guess_family (struct nl_addr *addr) |
Guess address family of an abstract address object based on address size. More... | |
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. More... | |
Getting Information About Addresses | |
int | nl_addr_info (struct nl_addr *addr, struct addrinfo **result) |
Call getaddrinfo() for an abstract address object. More... | |
int | nl_addr_resolve (struct nl_addr *addr, char *host, size_t hostlen) |
Resolve abstract address object to a name using getnameinfo(). More... | |
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. More... | |
void * | nl_addr_get_binary_addr (struct nl_addr *addr) |
Get binary address of abstract address object. More... | |
unsigned int | nl_addr_get_len (struct nl_addr *addr) |
Get length of binary address of abstract address object. More... | |
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. More... | |
Translations to Strings | |
char * | nl_addr2str (struct nl_addr *addr, char *buf, size_t size) |
Convert abstract address object to character string. More... | |
Address Family Transformations | |
char * | nl_af2str (int family, char *buf, size_t size) |
int | nl_str2af (const char *name) |
Convert abstract address object to character string.
Converts an abstract address to a character string and stores the result in the specified destination buffer.
References nl_addr::a_addr, nl_addr::a_family, nl_addr::a_len, nl_addr::a_prefixlen, AF_LLC, and buf.
Referenced by nl_addr_info().
Allocate new abstract address object.
References nl_addr::a_maxsize, nl_addr::a_refcnt, and NULL.
Referenced by nl_addr_build(), nl_addr_parse(), and rtnl_route_parse().
Allocate abstract address based on netlink attribute.
Considers the netlink attribute payload a address of the specified family and allocates a new abstract address based on it.
References nl_addr_build(), nla_data(), and nla_len().
Referenced by rtnl_route_parse().
Allocate new abstract address object based on a binary address.
References nl_addr::a_addr, nl_addr::a_family, nl_addr::a_len, nl_addr::a_prefixlen, nl_addr_alloc(), NULL, and size.
Referenced by nl_addr_alloc_attr(), and nl_addr_clone().
Clone existing abstract address object.
References nl_addr::a_addr, nl_addr::a_family, nl_addr::a_len, nl_addr::a_prefixlen, and nl_addr_build().
Referenced by rtnl_route_nh_clone().
Compares two abstract address objects.
is
found, respectively to be less than, to, or be greater than b
. References nl_addr::a_addr, nl_addr::a_family, and nl_addr::a_len.
Referenced by rtnl_neigh_get(), and rtnl_route_nh_compare().
Compares the prefix of two abstract address objects.
is
found, respectively to be less than, to, or be greater than b
. References nl_addr::a_addr, nl_addr::a_family, nl_addr::a_prefixlen, bytes, mask, and min.
Destroy abstract address object.
References nl_addr::a_refcnt, and BUG.
Referenced by nl_addr_parse(), and nl_addr_put().
Fill out sockaddr structure with values from abstract address object.
Fills out the specified sockaddr structure with the data found in the specified abstract address. The salen argument needs to be set to the size of sa but will be modified to the actual size used during before the function exits.
References nl_addr::a_addr, nl_addr::a_family, and NLE_INVAL.
Referenced by nl_addr_resolve().
References nl_addr::a_refcnt.
Referenced by flnl_request_set_addr(), rtnl_route_nh_set_gateway(), rtnl_route_set_dst(), rtnl_route_set_pref_src(), and rtnl_route_set_src().
Get binary address of abstract address object.
References nl_addr::a_addr.
Referenced by flnl_lookup_build_request(), and nla_put_addr().
Get length of binary address of abstract address object.
References nl_addr::a_len.
Referenced by nla_put_addr().
Get prefix length of abstract address object.
References nl_addr::a_prefixlen.
Referenced by main(), rtnl_addr_set_local(), rtnl_addr_set_peer(), and rtnl_route_build_msg().
Guess address family of an abstract address object based on address size.
References nl_addr::a_len, and AF_LLC.
Call getaddrinfo() for an abstract address object.
Calls getaddrinfo() for the specified abstract address in AI_NUMERICHOST mode.
References nl_addr::a_family, buf, nl_addr2str(), NLE_AF_NOSUPPORT, NLE_AGAIN, NLE_BAD_SOCK, NLE_FAILURE, NLE_INVAL, NLE_NOADDR, NLE_NOMEM, NLE_OBJ_NOTFOUND, NLE_OPNOTSUPP, and NULL.
Returns true if the address consists of all zeros.
References nl_addr::a_addr, and nl_addr::a_len.
Allocate abstract address object based on a character string.
Regognizes the following address formats:
Special values:
The prefix length may be appened at the end prefixed with a slash, e.g. 10.0.0.0/8.
References AF_LLC, buf, nl_addr_alloc(), nl_addr_destroy(), nl_addr_set_binary_addr(), nl_addr_set_family(), nl_addr_set_prefixlen(), NLE_AF_NOSUPPORT, NLE_INVAL, NLE_NOADDR, NLE_NOMEM, NULL, and s.
Referenced by main(), and nl_cli_addr_parse().
References nl_addr::a_refcnt, and nl_addr_destroy().
Referenced by flnl_request_set_addr(), main(), nl_cli_addr_parse_broadcast(), nl_cli_addr_parse_local(), nl_cli_addr_parse_peer(), nl_cli_neigh_parse_dst(), nl_cli_neigh_parse_lladdr(), nl_cli_route_parse_dst(), nl_cli_route_parse_nexthop(), nl_cli_route_parse_pref_src(), nl_cli_route_parse_src(), rtnl_route_nh_free(), rtnl_route_nh_set_gateway(), rtnl_route_parse(), rtnl_route_set_dst(), rtnl_route_set_pref_src(), and rtnl_route_set_src().
Resolve abstract address object to a name using getnameinfo().
Resolves the abstract address to a name and writes the looked up result into the host buffer. getnameinfo() is used to perform the lookup and is put into NI_NAMEREQD mode so the function will fail if the lookup couldn't be performed.
References buf, nl_addr_fill_sockaddr(), nl_syserr2nlerr(), and NULL.
Referenced by main().
Set binary address of abstract address object.
References nl_addr::a_addr, nl_addr::a_len, nl_addr::a_maxsize, len, and NLE_RANGE.
Referenced by nl_addr_parse().
References nl_addr::a_family.
Referenced by nl_addr_parse(), and rtnl_route_parse().
References nl_addr::a_prefixlen.
Referenced by nl_addr_parse(), rtnl_route_parse(), rtnl_rule_set_dst_len(), and rtnl_rule_set_src_len().
Check whether an abstract address object is shared.
References nl_addr::a_refcnt.
int nl_addr_valid | ( | char * | addr, |
int | family | ||
) |
char* nl_af2str | ( | int | family, |
char * | buf, | ||
size_t | size | ||
) |
int nl_str2af | ( | const char * | name | ) |
References __str2type(), and ARRAY_SIZE.
Referenced by main(), nl_cli_addr_parse_family(), nl_cli_ct_parse_family(), nl_cli_link_parse_family(), nl_cli_neigh_parse_family(), nl_cli_route_parse_family(), and nl_cli_rule_parse_family().