Files
haiku-beta6/headers/private/net/dns_resolver.h
T

59 lines
1.1 KiB
C
Raw Normal View History

2012-06-19 03:20:39 +02:00
/*
* Copyright 2012 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Paweł Dziepak, [email protected]
*/
#ifndef DNS_RESOLVER_H
#define DNS_RESOLVER_H
#include <netdb.h>
#include <stdlib.h>
2012-06-19 03:20:39 +02:00
#include <module.h>
#define DNS_RESOLVER_MODULE_NAME "network/dns_resolver/v1"
struct dns_resolver_module {
module_info module;
status_t (*getaddrinfo)(const char* node, const char* service,
const struct addrinfo* hints, struct addrinfo** res);
2012-06-19 03:20:39 +02:00
};
static inline int
2012-08-16 03:41:29 +02:00
kgetaddrinfo(const char* node, const char* service,
const struct addrinfo* hints, struct addrinfo** res)
{
dns_resolver_module* dns;
status_t result = get_module(DNS_RESOLVER_MODULE_NAME,
reinterpret_cast<module_info**>(&dns));
if (result != B_OK)
return result;
result = dns->getaddrinfo(node, service, hints, res);
put_module(DNS_RESOLVER_MODULE_NAME);
return result;
}
static inline void
2012-08-16 03:41:29 +02:00
kfreeaddrinfo(struct addrinfo* res)
{
free(res);
}
2012-08-16 03:41:29 +02:00
#define getaddrinfo kgetaddrinfo
#define freeaddrinfo kfreeaddrinfo
2012-06-19 03:20:39 +02:00
#endif // DNS_RESOLVER_H