diff 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
line wrap: on
line diff
--- a/libpurple/dnssrv.h	Sat Apr 18 14:03:16 2009 +0000
+++ b/libpurple/dnssrv.h	Sat Apr 18 17:43:55 2009 +0000
@@ -28,8 +28,11 @@
 extern "C" {
 #endif
 
+typedef struct _PurpleSrvQueryData PurpleSrvQueryData;
 typedef struct _PurpleSrvResponse PurpleSrvResponse;
-typedef struct _PurpleSrvQueryData PurpleSrvQueryData;
+typedef struct _PurpleTxtResponse PurpleTxtResponse;
+
+#include <glib.h>
 
 struct _PurpleSrvResponse {
 	char hostname[256];
@@ -41,6 +44,14 @@
 typedef void (*PurpleSrvCallback)(PurpleSrvResponse *resp, int results, gpointer data);
 
 /**
+ * Callback that returns the data retrieved from a DNS TXT lookup.
+ *
+ * @param responses   A GSList of PurpleTxtResponse objects.
+ * @param data        The extra data passed to purple_txt_resolve.
+ */
+typedef void (*PurpleTxtCallback)(GSList *responses, gpointer data);
+
+/**
  * Queries an SRV record.
  *
  * @param protocol Name of the protocol (e.g. "sip")
@@ -58,6 +69,43 @@
  */
 void purple_srv_cancel(PurpleSrvQueryData *query_data);
 
+/**
+ * Queries an TXT record.
+ *
+ * @param owner Name of the protocol (e.g. "_xmppconnect")
+ * @param domain Domain name to query (e.g. "blubb.com")
+ * @param cb A callback which will be called with the results
+ * @param extradata Extra data to be passed to the callback
+ *
+ * @since 2.6.0
+ */
+PurpleSrvQueryData *purple_txt_resolve(const char *owner, const char *domain, PurpleTxtCallback cb, gpointer extradata);
+
+/**
+ * Cancel an TXT DNS query.
+ *
+ * @param query_data The request to cancel.
+ * @since 2.6.0
+ */
+void purple_txt_cancel(PurpleSrvQueryData *query_data);
+
+/**
+ * Get the value of the current TXT record.
+ *
+ * @param resp  The TXT response record
+ * @returns The value of the current TXT record.
+ * @since 2.6.0
+ */
+const gchar *purple_txt_response_get_content(PurpleTxtResponse *resp);
+
+/**
+ * Destroy a TXT DNS response object.
+ *
+ * @param response The PurpleTxtResponse to destroy.
+ * @since 2.6.0
+ */
+void purple_txt_response_destroy(PurpleTxtResponse *resp);
+
 #ifdef __cplusplus
 }
 #endif