annotate src/dnsquery.h @ 14163:c3167a1dd817

[gaim-migrate @ 16811] Split the DNS query stuff out into it's own file. Eventually we should move the dnssrv code into this same file. Maybe even share some code? Also the first steps toward cancelable DNS queries. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 17 Aug 2006 07:44:52 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14163
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
1 /**
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
2 * @file dnsquery.h DNS query API
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
3 * @ingroup core
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
4 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
5 * gaim
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
6 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
9 * source distribution.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
10 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
14 * (at your option) any later version.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
15 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
19 * GNU General Public License for more details.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
20 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
24 */
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
25 #ifndef _GAIM_DNSQUERY_H_
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
26 #define _GAIM_DNSQUERY_H_
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
27
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
28 #include <glib.h>
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
29
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
30 typedef struct _GaimDnsqueryData GaimDnsqueryData;
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
31
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
32 /**
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
33 * The "hosts" parameter is a linked list containing pairs of
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
34 * one size_t addrlen and one struct sockaddr *addr.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
35 */
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
36 typedef void (*GaimDnsqueryConnectFunction)(GSList *hosts, gpointer data, const char *error_message);
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
37
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
38
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
39 #ifdef __cplusplus
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
40 extern "C" {
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
41 #endif
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
42
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
43 /**************************************************************************/
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
44 /** @name DNS query API */
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
45 /**************************************************************************/
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
46 /*@{*/
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
47
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
48 /**
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
49 * Do an asynchronous DNS query.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
50 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
51 * @param hostname The hostname to resolve
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
52 * @param port A portnumber which is stored in the struct sockaddr
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
53 * @param callback Callback to call after resolving
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
54 * @param data Extra data for the callback function
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
55 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
56 * @return NULL if there was an error, or a reference to a data
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
57 * structure that can be used to cancel the pending
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
58 * connection, if needed.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
59 */
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
60 GaimDnsqueryData *gaim_dnsquery_a(const char *hostname, int port, GaimDnsqueryConnectFunction callback, gpointer data);
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
61
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
62 /**
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
63 * Cancel a DNS query.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
64 *
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
65 * @param query_data A pointer to the DNS query data that you want
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
66 * to cancel.
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
67 */
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
68 void gaim_dnsquery_destroy(GaimDnsqueryData *query_data);
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
69
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
70 /*@}*/
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
71
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
72 #ifdef __cplusplus
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
73 }
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
74 #endif
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
75
c3167a1dd817 [gaim-migrate @ 16811]
Mark Doliner <mark@kingant.net>
parents:
diff changeset
76 #endif /* _GAIM_DNSQUERY_H_ */