static void dns_lookup_free(struct dns_lookup **_lookup);
+static void dns_lookup_save_msecs(struct dns_lookup *lookup);
+
+static void dns_lookup_callback(struct dns_lookup *lookup)
+{
+ dns_lookup_save_msecs(lookup);
+ lookup->callback(&lookup->result, lookup->context);
+}
+
static void dns_client_disconnect(struct dns_client *client, const char *error)
{
struct dns_lookup *lookup, *next;
client->head = NULL;
while (lookup != NULL) {
next = lookup->next;
- lookup->callback(&result, lookup->context);
+ dns_lookup_callback(lookup);
dns_lookup_free(&lookup);
lookup = next;
}
"Invalid input from %s", conn->name));
return -1;
} else if (ret > 0) {
- dns_lookup_save_msecs(lookup);
- lookup->callback(&lookup->result, lookup->context);
+ dns_lookup_callback(lookup);
retry = !lookup->client->deinit_client_at_free;
dns_lookup_free(&lookup);
}
{
lookup->result.error = "DNS lookup timed out";
- lookup->callback(&lookup->result, lookup->context);
+ dns_lookup_callback(lookup);
dns_lookup_free(&lookup);
}
&lookup->result.error);
}
if (ret <= 0) {
- callback(&lookup.result, context);
+ dns_lookup_callback(lookup);
return -1;
}
}