pidgin 2.14.14dev
dnsquery.h File Reference

DNS query API. More...

#include <glib.h>
#include "eventloop.h"
#include "account.h"
Include dependency graph for dnsquery.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  PurpleDnsQueryUiOps
 DNS Request UI operations; UIs should implement this if they want to do DNS lookups themselves, rather than relying on the core. More...
 

Typedefs

typedef struct _PurpleDnsQueryData PurpleDnsQueryData
 An opaque structure representing a DNS query. More...
 
typedef void(* PurpleDnsQueryConnectFunction) (GSList *hosts, gpointer data, const char *error_message)
 The "hosts" parameter is a linked list containing pairs of one size_t addrlen and one struct sockaddr *addr. More...
 
typedef void(* PurpleDnsQueryResolvedCallback) (PurpleDnsQueryData *query_data, GSList *hosts)
 Callbacks used by the UI if it handles resolving DNS. More...
 
typedef void(* PurpleDnsQueryFailedCallback) (PurpleDnsQueryData *query_data, const gchar *error_message)
 

Functions

DNS query API <br>
PurpleDnsQueryDatapurple_dnsquery_a_account (PurpleAccount *account, const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data)
 Perform an asynchronous DNS query. More...
 
PurpleDnsQueryDatapurple_dnsquery_a (const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data)
 Perform an asynchronous DNS query. More...
 
void purple_dnsquery_destroy (PurpleDnsQueryData *query_data)
 Cancel a DNS query and destroy the associated data structure. More...
 
void purple_dnsquery_set_ui_ops (PurpleDnsQueryUiOps *ops)
 Sets the UI operations structure to be used when doing a DNS resolve. More...
 
PurpleDnsQueryUiOpspurple_dnsquery_get_ui_ops (void)
 Returns the UI operations structure to be used when doing a DNS resolve. More...
 
char * purple_dnsquery_get_host (PurpleDnsQueryData *query_data)
 Get the host associated with a PurpleDnsQueryData. More...
 
unsigned short purple_dnsquery_get_port (PurpleDnsQueryData *query_data)
 Get the port associated with a PurpleDnsQueryData. More...
 
void purple_dnsquery_init (void)
 Initializes the DNS query subsystem.
 
void purple_dnsquery_uninit (void)
 Uninitializes the DNS query subsystem.
 

Detailed Description

DNS query API.

Definition in file dnsquery.h.

Typedef Documentation

◆ PurpleDnsQueryConnectFunction

typedef void(* PurpleDnsQueryConnectFunction) (GSList *hosts, gpointer data, const char *error_message)

The "hosts" parameter is a linked list containing pairs of one size_t addrlen and one struct sockaddr *addr.

It should be free'd by the callback function.

Definition at line 45 of file dnsquery.h.

◆ PurpleDnsQueryData

typedef struct _PurpleDnsQueryData PurpleDnsQueryData

An opaque structure representing a DNS query.

The hostname and port associated with the query can be retrieved using purple_dnsquery_get_host() and purple_dnsquery_get_port().

Definition at line 38 of file dnsquery.h.

◆ PurpleDnsQueryFailedCallback

typedef void(* PurpleDnsQueryFailedCallback) (PurpleDnsQueryData *query_data, const gchar *error_message)

Definition at line 51 of file dnsquery.h.

◆ PurpleDnsQueryResolvedCallback

typedef void(* PurpleDnsQueryResolvedCallback) (PurpleDnsQueryData *query_data, GSList *hosts)

Callbacks used by the UI if it handles resolving DNS.

Definition at line 50 of file dnsquery.h.

Function Documentation

◆ purple_dnsquery_a()

PurpleDnsQueryData * purple_dnsquery_a ( const char *  hostname,
int  port,
PurpleDnsQueryConnectFunction  callback,
gpointer  data 
)

Perform an asynchronous DNS query.

Parameters
hostnameThe hostname to resolve.
portA port number which is stored in the struct sockaddr.
callbackThe callback function to call after resolving.
dataExtra data to pass to the callback function.
Returns
NULL if there was an error, otherwise return a reference to a data structure that can be used to cancel the pending DNS query, if needed.
Deprecated:
Use purple_dnsquery_a_account instead

◆ purple_dnsquery_a_account()

PurpleDnsQueryData * purple_dnsquery_a_account ( PurpleAccount account,
const char *  hostname,
int  port,
PurpleDnsQueryConnectFunction  callback,
gpointer  data 
)

Perform an asynchronous DNS query.

Parameters
accountthe account that the query is being done for (or NULL)
hostnameThe hostname to resolve.
portA port number which is stored in the struct sockaddr.
callbackThe callback function to call after resolving.
dataExtra data to pass to the callback function.
Returns
NULL if there was an error, otherwise return a reference to a data structure that can be used to cancel the pending DNS query, if needed.
Since
2.8.0

◆ purple_dnsquery_destroy()

void purple_dnsquery_destroy ( PurpleDnsQueryData query_data)

Cancel a DNS query and destroy the associated data structure.

Parameters
query_dataThe DNS query to cancel. This data structure is freed by this function.

◆ purple_dnsquery_get_host()

char * purple_dnsquery_get_host ( PurpleDnsQueryData query_data)

Get the host associated with a PurpleDnsQueryData.

Parameters
query_dataThe DNS query
Returns
The host.

◆ purple_dnsquery_get_port()

unsigned short purple_dnsquery_get_port ( PurpleDnsQueryData query_data)

Get the port associated with a PurpleDnsQueryData.

Parameters
query_dataThe DNS query
Returns
The port.

◆ purple_dnsquery_get_ui_ops()

PurpleDnsQueryUiOps * purple_dnsquery_get_ui_ops ( void  )

Returns the UI operations structure to be used when doing a DNS resolve.

Returns
The UI operations structure.

◆ purple_dnsquery_set_ui_ops()

void purple_dnsquery_set_ui_ops ( PurpleDnsQueryUiOps ops)

Sets the UI operations structure to be used when doing a DNS resolve.

The UI operations need only be set if the UI wants to handle the resolve itself; otherwise, leave it as NULL.

Parameters
opsThe UI operations structure.