struct in_addr_full **addrs = NULL;
size_t n = 0;
- CLEANUP_ARRAY(addrs, n, in_addr_full_array_free);
+ CLEANUP_ARRAY(addrs, n, in_addr_full_free_array);
FOREACH_ARRAY(res, resolvers, n_resolvers) {
if (!FLAGS_SET(res->transports, SD_DNS_ALPN_DOT))
struct in_addr_full **addrs = NULL;
size_t n = 0;
- CLEANUP_ARRAY(addrs, n, in_addr_full_array_free);
+ CLEANUP_ARRAY(addrs, n, in_addr_full_free_array);
r = dns_resolvers_to_dot_addrs(resolvers, n_resolvers, &addrs, &n);
if (r < 0)
if (r >= 0) {
struct in_addr_full **dot_servers;
size_t n = 0;
- CLEANUP_ARRAY(dot_servers, n, in_addr_full_array_free);
+ CLEANUP_ARRAY(dot_servers, n, in_addr_full_free_array);
r = dns_resolvers_to_dot_addrs(resolvers, r, &dot_servers, &n);
if (r < 0)
if (r >= 0) {
struct in_addr_full **dot_servers;
size_t n = 0;
- CLEANUP_ARRAY(dot_servers, n, in_addr_full_array_free);
+ CLEANUP_ARRAY(dot_servers, n, in_addr_full_free_array);
r = dns_resolvers_to_dot_addrs(resolvers, r, &dot_servers, &n);
if (r < 0)
SET_FOREACH(a, link->ndisc_dnr) {
struct in_addr_full **dot_servers = NULL;
size_t n = 0;
- CLEANUP_ARRAY(dot_servers, n, in_addr_full_array_free);
+ CLEANUP_ARRAY(dot_servers, n, in_addr_full_free_array);
r = dns_resolvers_to_dot_addrs(&a->resolver, 1, &dot_servers, &n);
if (r < 0)
free(b->name);
free(b->apn);
- in_addr_full_array_free(b->dns, b->n_dns);
+ in_addr_full_free_array(b->dns, b->n_dns);
return mfree(b);
}
return r;
}
-struct in_addr_full *in_addr_full_free(struct in_addr_full *a) {
+struct in_addr_full* in_addr_full_free(struct in_addr_full *a) {
if (!a)
return NULL;
return mfree(a);
}
-void in_addr_full_array_free(struct in_addr_full *addrs[], size_t n) {
- assert(addrs || n == 0);
-
- FOREACH_ARRAY(a, addrs, n)
- in_addr_full_freep(a);
-
- free(addrs);
-}
+DEFINE_POINTER_ARRAY_FREE_FUNC(struct in_addr_full*, in_addr_full_free);
int in_addr_full_new(
int family,
char *cached_server_string; /* Should not be handled directly, but through in_addr_full_to_string(). */
};
-struct in_addr_full *in_addr_full_free(struct in_addr_full *a);
+struct in_addr_full* in_addr_full_free(struct in_addr_full *a);
DEFINE_TRIVIAL_CLEANUP_FUNC(struct in_addr_full*, in_addr_full_free);
-void in_addr_full_array_free(struct in_addr_full *addrs[], size_t n);
+void in_addr_full_free_array(struct in_addr_full **array, size_t n);
int in_addr_full_new(int family, const union in_addr_union *a, uint16_t port, int ifindex, const char *server_name, struct in_addr_full **ret);
int in_addr_full_new_from_string(const char *s, struct in_addr_full **ret);
const char* in_addr_full_to_string(struct in_addr_full *a);