/usr/include/gnunet/gnunet_resolver_service.h is in gnunet-dev 0.10.1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | /*
This file is part of GNUnet.
(C) 2001-2013 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
/**
* @file include/gnunet_resolver_service.h
* @brief functions related to doing DNS lookups
* @author Christian Grothoff
* @defgroup resolver asynchronous standard DNS lookups
* @{
*/
#ifndef GNUNET_RESOLVER_SERVICE_H
#define GNUNET_RESOLVER_SERVICE_H
#ifdef __cplusplus
extern "C"
{
#if 0 /* keep Emacsens' auto-indent happy */
}
#endif
#endif
#include "gnunet_configuration_lib.h"
#include "gnunet_scheduler_lib.h"
#include "gnunet_time_lib.h"
/**
* Function called by the resolver for each address obtained from DNS.
*
* @param cls closure
* @param addr one of the addresses of the host, NULL for the last address
* @param addrlen length of @a addr
*/
typedef void (*GNUNET_RESOLVER_AddressCallback) (void *cls,
const struct sockaddr *addr,
socklen_t addrlen);
/**
* Handle to a request given to the resolver. Can be used to cancel
* the request prior to the timeout or successful execution.
*/
struct GNUNET_RESOLVER_RequestHandle;
/**
* Create the connection to the resolver service.
*
* @param cfg configuration to use
*/
void
GNUNET_RESOLVER_connect (const struct GNUNET_CONFIGURATION_Handle *cfg);
/**
* Destroy the connection to the resolver service.
*/
void
GNUNET_RESOLVER_disconnect (void);
/**
* Convert a string to one or more IP addresses.
*
* @param hostname the hostname to resolve
* @param af AF_INET or AF_INET6; use AF_UNSPEC for "any"
* @param callback function to call with addresses
* @param callback_cls closure for @a callback
* @param timeout how long to try resolving
* @return handle that can be used to cancel the request, NULL on error
*/
struct GNUNET_RESOLVER_RequestHandle *
GNUNET_RESOLVER_ip_get (const char *hostname, int af,
struct GNUNET_TIME_Relative timeout,
GNUNET_RESOLVER_AddressCallback callback,
void *callback_cls);
/**
* Resolve our hostname to an IP address.
*
* @param af AF_INET or AF_INET6; use AF_UNSPEC for "any"
* @param callback function to call with addresses
* @param cls closure for @a callback
* @param timeout how long to try resolving
* @return handle that can be used to cancel the request, NULL on error
*/
struct GNUNET_RESOLVER_RequestHandle *
GNUNET_RESOLVER_hostname_resolve (int af,
struct GNUNET_TIME_Relative timeout,
GNUNET_RESOLVER_AddressCallback callback,
void *cls);
/**
* Function called by the resolver for each hostname obtained from DNS.
*
* @param cls closure
* @param hostname one of the names for the host, NULL
* on the last call to the callback
*/
typedef void (*GNUNET_RESOLVER_HostnameCallback) (void *cls,
const char *hostname);
/**
* Get local fully qualified domain name
*
* @return local hostname, caller must free
*/
char *
GNUNET_RESOLVER_local_fqdn_get (void);
/**
* Perform a reverse DNS lookup.
*
* @param sa host address
* @param salen length of @a sa
* @param do_resolve use #GNUNET_NO to return numeric hostname
* @param timeout how long to try resolving
* @param callback function to call with hostnames
* @param cls closure for @a callback
* @return handle that can be used to cancel the request, NULL on error
*/
struct GNUNET_RESOLVER_RequestHandle *
GNUNET_RESOLVER_hostname_get (const struct sockaddr *sa, socklen_t salen,
int do_resolve,
struct GNUNET_TIME_Relative timeout,
GNUNET_RESOLVER_HostnameCallback callback,
void *cls);
/**
* Cancel a request that is still pending with the resolver.
* Note that a client MUST NOT cancel a request that has
* been completed (i.e, the callback has been called to
* signal timeout or the final result).
*
* @param rh handle of request to cancel
*/
void
GNUNET_RESOLVER_request_cancel (struct GNUNET_RESOLVER_RequestHandle *rh);
#if 0 /* keep Emacsens' auto-indent happy */
{
#endif
#ifdef __cplusplus
}
#endif
/** @} */ /* end of group resolver */
/* ifndef GNUNET_RESOLVER_SERVICE_H */
#endif
/* end of gnunet_resolver_service.h */
|