soup-dns

soup-dns — Low-level DNS routines

Synopsis




void        soup_dns_init                   (void);
char*       soup_dns_ntop                   (struct sockaddr *sa);
typedef     SoupDNSLookup;
SoupDNSLookup* soup_dns_lookup_name         (const char *name);
SoupDNSLookup* soup_dns_lookup_address      (struct sockaddr *sockaddr);
gboolean    soup_dns_lookup_resolve         (SoupDNSLookup *lookup);
void        (*SoupDNSCallback)              (SoupDNSLookup *lookup,
                                             gboolean success,
                                             gpointer user_data);
void        soup_dns_lookup_resolve_async   (SoupDNSLookup *lookup,
                                             GMainContext *async_context,
                                             SoupDNSCallback callback,
                                             gpointer user_data);
void        soup_dns_lookup_cancel          (SoupDNSLookup *lookup);
char*       soup_dns_lookup_get_hostname    (SoupDNSLookup *lookup);
struct sockaddr* soup_dns_lookup_get_address
                                            (SoupDNSLookup *lookup);
void        soup_dns_lookup_free            (SoupDNSLookup *lookup);

Description

Details

soup_dns_init ()

void        soup_dns_init                   (void);

Initializes the libsoup DNS system. Must be called before any other soup_dns method is called. Normally this gets called automatically by SoupAddress's class_init function.


soup_dns_ntop ()

char*       soup_dns_ntop                   (struct sockaddr *sa);

Converts sa's address into textual form (eg, "141.213.8.59"), like the standard library function inet_ntop(), except that the returned string must be freed.

sa : pointer to a sockaddr
Returns : the text form or sa, which must be freed.

SoupDNSLookup

typedef struct SoupDNSLookup SoupDNSLookup;

An opaque type that represents a DNS lookup operation.


soup_dns_lookup_name ()

SoupDNSLookup* soup_dns_lookup_name         (const char *name);

Creates a SoupDNSLookup for name. This should be passed to soup_dns_lookup_resolve() or soup_dns_lookup_resolve_async().

name : a hostname (eg, "www.gnome.org") or physical address (eg, "12.107.209.247").
Returns : a SoupDNSLookup, which should eventually be freed with soup_dns_lookup_free().

soup_dns_lookup_address ()

SoupDNSLookup* soup_dns_lookup_address      (struct sockaddr *sockaddr);

Creates a SoupDNSLookup for sockaddr. This should be passed to soup_dns_lookup_resolve() or soup_dns_lookup_resolve_async().

sockaddr : pointer to a sockaddr
Returns : a SoupDNSLookup, which should eventually be freed with soup_dns_lookup_free()

soup_dns_lookup_resolve ()

gboolean    soup_dns_lookup_resolve         (SoupDNSLookup *lookup);

Synchronously resolves lookup. You can cancel a pending resolution using soup_dns_lookup_cancel().

lookup : a SoupDNSLookup
Returns : success or failure.

SoupDNSCallback ()

void        (*SoupDNSCallback)              (SoupDNSLookup *lookup,
                                             gboolean success,
                                             gpointer user_data);

The callback function passed to soup_dns_lookup_resolve_async().

lookup : the completed lookup
success : TRUE if lookup completed successfully, FALSE if it failed
user_data : the data passed to soup_dns_lookup_resolve_async()

soup_dns_lookup_resolve_async ()

void        soup_dns_lookup_resolve_async   (SoupDNSLookup *lookup,
                                             GMainContext *async_context,
                                             SoupDNSCallback callback,
                                             gpointer user_data);

Tries to asynchronously resolve lookup. Invokes callback when it has succeeded or failed. You can cancel a pending resolution using soup_dns_lookup_cancel().

lookup : a SoupDNSLookup
async_context : GMainContext to call callback in
callback : callback to call when lookup is resolved
user_data : data to pass to callback;

soup_dns_lookup_cancel ()

void        soup_dns_lookup_cancel          (SoupDNSLookup *lookup);

Cancels lookup. If lookup was running synchronously in another thread, it will immediately return FALSE. If lookup was running asynchronously, its callback function will not be called.

lookup : a SoupDNSLookup

soup_dns_lookup_get_hostname ()

char*       soup_dns_lookup_get_hostname    (SoupDNSLookup *lookup);

Gets the hostname of lookup.

lookup : a SoupDNSLookup
Returns : the hostname, which the caller owns and must free, or NULL if lookup has not been completely resolved.

soup_dns_lookup_get_address ()

struct sockaddr* soup_dns_lookup_get_address
                                            (SoupDNSLookup *lookup);

Gets the address of lookup.

lookup : a SoupDNSLookup
Returns : the address, which the caller owns and must free, or NULL if lookup has not been completely resolved.

soup_dns_lookup_free ()

void        soup_dns_lookup_free            (SoupDNSLookup *lookup);

Frees lookup. If lookup is still running, it will be canceled first.

lookup : a SoupDNSLookup