dnsquery.h File Reference

DNS query API. More...

#include <glib.h>
#include "eventloop.h"
#include "account.h"

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
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.
typedef void(* PurpleDnsQueryResolvedCallback )(PurpleDnsQueryData *query_data, GSList *hosts)
 Callbacks used by the UI if it handles resolving DNS.
typedef void(* PurpleDnsQueryFailedCallback )(PurpleDnsQueryData *query_data, const gchar *error_message)

Functions

DNS query API
PurpleDnsQueryData * purple_dnsquery_a (const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data)
 Perform an asynchronous DNS query.
void purple_dnsquery_destroy (PurpleDnsQueryData *query_data)
 Cancel a DNS query and destroy the associated data structure.
void purple_dnsquery_set_ui_ops (PurpleDnsQueryUiOps *ops)
 Sets the UI operations structure to be used when doing a DNS resolve.
PurpleDnsQueryUiOpspurple_dnsquery_get_ui_ops (void)
 Returns the UI operations structure to be used when doing a DNS resolve.
char * purple_dnsquery_get_host (PurpleDnsQueryData *query_data)
 Get the host associated with a PurpleDnsQueryData.
unsigned short purple_dnsquery_get_port (PurpleDnsQueryData *query_data)
 Get the port associated with a PurpleDnsQueryData.
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

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 40 of file dnsquery.h.


Function Documentation

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

Perform an asynchronous DNS query.

Parameters:
hostname The hostname to resolve.
port A port number which is stored in the struct sockaddr.
callback The callback function to call after resolving.
data Extra 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.

void purple_dnsquery_destroy ( PurpleDnsQueryData *  query_data  ) 

Cancel a DNS query and destroy the associated data structure.

Parameters:
query_data The DNS query to cancel. This data structure is freed by this function.

char* purple_dnsquery_get_host ( PurpleDnsQueryData *  query_data  ) 

Get the host associated with a PurpleDnsQueryData.

Parameters:
query_data The DNS query
Returns:
The host.

unsigned short purple_dnsquery_get_port ( PurpleDnsQueryData *  query_data  ) 

Get the port associated with a PurpleDnsQueryData.

Parameters:
query_data The DNS query
Returns:
The port.

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.

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:
ops The UI operations structure.