dnsquery.h

Go to the documentation of this file.
00001 
00025 #ifndef _PURPLE_DNSQUERY_H_
00026 #define _PURPLE_DNSQUERY_H_
00027 
00028 #include <glib.h>
00029 #include "eventloop.h"
00030 #include "account.h"
00031 
00032 typedef struct _PurpleDnsQueryData PurpleDnsQueryData;
00033 
00039 typedef void (*PurpleDnsQueryConnectFunction)(GSList *hosts, gpointer data, const char *error_message);
00040 
00044 typedef void  (*PurpleDnsQueryResolvedCallback) (PurpleDnsQueryData *query_data, GSList *hosts);
00045 typedef void  (*PurpleDnsQueryFailedCallback) (PurpleDnsQueryData *query_data, const gchar *error_message);
00046 
00050 typedef struct
00051 {
00052     /* If implemented, the UI is responsible for DNS queries */
00053     gboolean (*resolve_host)(PurpleDnsQueryData *query_data, PurpleDnsQueryResolvedCallback resolved_cb, PurpleDnsQueryFailedCallback failed_cb);
00054 
00055     /* After destroy is called, query_data will be feed, so this must
00056      * cancel any further use of it the UI would do. Unneeded if 
00057      * resolve_host is not implemented.
00058      */
00059     void (*destroy)(PurpleDnsQueryData *query_data);
00060 
00061     void (*_purple_reserved1)(void);
00062     void (*_purple_reserved2)(void);
00063     void (*_purple_reserved3)(void);
00064     void (*_purple_reserved4)(void);
00065 } PurpleDnsQueryUiOps;
00066 
00067 #ifdef __cplusplus
00068 extern "C" {
00069 #endif
00070 
00071 /**************************************************************************/
00073 /**************************************************************************/
00088 PurpleDnsQueryData *purple_dnsquery_a(const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data);
00089 
00096 void purple_dnsquery_destroy(PurpleDnsQueryData *query_data);
00097 
00105 void purple_dnsquery_set_ui_ops(PurpleDnsQueryUiOps *ops);
00106 
00113 PurpleDnsQueryUiOps *purple_dnsquery_get_ui_ops(void);
00114 
00121 char *purple_dnsquery_get_host(PurpleDnsQueryData *query_data);
00122 
00129 unsigned short purple_dnsquery_get_port(PurpleDnsQueryData *query_data);
00130 
00134 void purple_dnsquery_init(void);
00135 
00139 void purple_dnsquery_uninit(void);
00140 
00143 #ifdef __cplusplus
00144 }
00145 #endif
00146 
00147 #endif /* _PURPLE_DNSQUERY_H_ */