comparison libpurple/dnssrv.h @ 26738:a8dbbcd069ab

propagate from branch 'im.pidgin.pidgin' (head 53303438f1a2d586d17f7efc61cba0bee2329a25) to branch 'im.pidgin.cpw.darkrain42.xmpp.bosh' (head e6ffb2168588f0ef3faeb34d3beceb030eb89183)
author Paul Aurich <paul@darkrain42.org>
date Sat, 18 Apr 2009 17:43:55 +0000
parents acee7d2b1983
children 3e516701dd33
comparison
equal deleted inserted replaced
26710:f3a6f9976d9c 26738:a8dbbcd069ab
26 26
27 #ifdef __cplusplus 27 #ifdef __cplusplus
28 extern "C" { 28 extern "C" {
29 #endif 29 #endif
30 30
31 typedef struct _PurpleSrvQueryData PurpleSrvQueryData;
31 typedef struct _PurpleSrvResponse PurpleSrvResponse; 32 typedef struct _PurpleSrvResponse PurpleSrvResponse;
32 typedef struct _PurpleSrvQueryData PurpleSrvQueryData; 33 typedef struct _PurpleTxtResponse PurpleTxtResponse;
34
35 #include <glib.h>
33 36
34 struct _PurpleSrvResponse { 37 struct _PurpleSrvResponse {
35 char hostname[256]; 38 char hostname[256];
36 int port; 39 int port;
37 int weight; 40 int weight;
38 int pref; 41 int pref;
39 }; 42 };
40 43
41 typedef void (*PurpleSrvCallback)(PurpleSrvResponse *resp, int results, gpointer data); 44 typedef void (*PurpleSrvCallback)(PurpleSrvResponse *resp, int results, gpointer data);
45
46 /**
47 * Callback that returns the data retrieved from a DNS TXT lookup.
48 *
49 * @param responses A GSList of PurpleTxtResponse objects.
50 * @param data The extra data passed to purple_txt_resolve.
51 */
52 typedef void (*PurpleTxtCallback)(GSList *responses, gpointer data);
42 53
43 /** 54 /**
44 * Queries an SRV record. 55 * Queries an SRV record.
45 * 56 *
46 * @param protocol Name of the protocol (e.g. "sip") 57 * @param protocol Name of the protocol (e.g. "sip")
56 * 67 *
57 * @param query_data The request to cancel. 68 * @param query_data The request to cancel.
58 */ 69 */
59 void purple_srv_cancel(PurpleSrvQueryData *query_data); 70 void purple_srv_cancel(PurpleSrvQueryData *query_data);
60 71
72 /**
73 * Queries an TXT record.
74 *
75 * @param owner Name of the protocol (e.g. "_xmppconnect")
76 * @param domain Domain name to query (e.g. "blubb.com")
77 * @param cb A callback which will be called with the results
78 * @param extradata Extra data to be passed to the callback
79 *
80 * @since 2.6.0
81 */
82 PurpleSrvQueryData *purple_txt_resolve(const char *owner, const char *domain, PurpleTxtCallback cb, gpointer extradata);
83
84 /**
85 * Cancel an TXT DNS query.
86 *
87 * @param query_data The request to cancel.
88 * @since 2.6.0
89 */
90 void purple_txt_cancel(PurpleSrvQueryData *query_data);
91
92 /**
93 * Get the value of the current TXT record.
94 *
95 * @param resp The TXT response record
96 * @returns The value of the current TXT record.
97 * @since 2.6.0
98 */
99 const gchar *purple_txt_response_get_content(PurpleTxtResponse *resp);
100
101 /**
102 * Destroy a TXT DNS response object.
103 *
104 * @param response The PurpleTxtResponse to destroy.
105 * @since 2.6.0
106 */
107 void purple_txt_response_destroy(PurpleTxtResponse *resp);
108
61 #ifdef __cplusplus 109 #ifdef __cplusplus
62 } 110 }
63 #endif 111 #endif
64 112
65 #endif /* _PURPLE_DNSSRV_H */ 113 #endif /* _PURPLE_DNSSRV_H */