#include "networkd-manager.h"
#include "networkd-util.h"
#include "parse-util.h"
+#include "resolve-private.h"
#include "string-util.h"
#include "strv.h"
#include "wireguard.h"
return mfree(e);
}
-static void wireguard_endpoint_destroy_callback(void *userdata) {
- WireguardEndpoint *e = userdata;
-
+static void wireguard_endpoint_destroy_callback(WireguardEndpoint *e) {
assert(e);
assert(e->netdev);
static int wireguard_resolve_handler(sd_resolve_query *q,
int ret,
const struct addrinfo *ai,
- void *userdata) {
+ WireguardEndpoint *e) {
_cleanup_(netdev_unrefp) NetDev *netdev_will_unrefed = NULL;
- NetDev *netdev = NULL;
- WireguardEndpoint *e;
+ NetDev *netdev;
Wireguard *w;
int r;
- assert(userdata);
- e = userdata;
- netdev = e->netdev;
+ assert(e);
+ assert(e->netdev);
- assert(netdev);
+ netdev = e->netdev;
w = WIREGUARD(netdev);
assert(w);
assert(w);
LIST_FOREACH(endpoints, endpoint, w->unresolved_endpoints) {
- _cleanup_(sd_resolve_query_unrefp) sd_resolve_query *q = NULL;
-
- r = sd_resolve_getaddrinfo(netdev->manager->resolve,
- &q,
- endpoint->host,
- endpoint->port,
- &hints,
- wireguard_resolve_handler,
- endpoint);
+ r = resolve_getaddrinfo(netdev->manager->resolve,
+ NULL,
+ endpoint->host,
+ endpoint->port,
+ &hints,
+ wireguard_resolve_handler,
+ wireguard_endpoint_destroy_callback,
+ endpoint);
if (r == -ENOBUFS)
break;
continue;
}
- r = sd_resolve_query_set_destroy_callback(q, wireguard_endpoint_destroy_callback);
- if (r < 0) {
- log_netdev_error_errno(netdev, r, "Failed to set destroy callback to resolving query: %m");
- continue;
- }
-
- (void) sd_resolve_query_set_floating(q, true);
-
/* Avoid freeing netdev. It will be unrefed by the destroy callback. */
netdev_ref(netdev);