Data Structures | Typedefs
dnsquery.h File Reference
libpurple

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
| 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.
typedef void(* | PurpleDnsQueryFailedCallback) (PurpleDnsQueryData *query_data, const gchar *error_message)

## Functions
DNS query API
PurpleDnsQueryData * | purple_dnsquery_a_account (PurpleAccount *account, const char *hostname, int port, PurpleDnsQueryConnectFunction callback, gpointer data)
| Perform an asynchronous DNS query. More...
PurpleDnsQueryData * | purple_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...
PurpleDnsQueryUiOps * | purple_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.

## Function Documentation

## ◆ purple_dnsquery_a()

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.

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

  account | the account that the query is being done for (or NULL)
  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.

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_data | The 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_data | The 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_data | The 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

  ops | The UI operations structure.