DNS Resolution
3
GNOME-VFS-2.0 Library

# DNS Resolution

Generic thread-safe address resolution functions.

## Synopsis

    GnomeVFSResult      gnome_vfs_resolve                   (const char *hostname,
                                                             GnomeVFSResolveHandle **handle);
    void                gnome_vfs_resolve_free              (GnomeVFSResolveHandle *handle);
    gboolean            gnome_vfs_resolve_next_address      (GnomeVFSResolveHandle *handle,
                                                             GnomeVFSAddress **address);
    void                gnome_vfs_resolve_reset_to_beginning
                                                            (GnomeVFSResolveHandle *handle);
                        GnomeVFSAddress;
    GnomeVFSAddress*    gnome_vfs_address_dup               (GnomeVFSAddress *address);
    void                gnome_vfs_address_free              (GnomeVFSAddress *address);
    int                 gnome_vfs_address_get_family_type   (GnomeVFSAddress *address);
    guint32             gnome_vfs_address_get_ipv4          (GnomeVFSAddress *address);
    GType               gnome_vfs_address_get_type          (void);
    GnomeVFSAddress*    gnome_vfs_address_new_from_ipv4     (guint32 ipv4_address);
    GnomeVFSAddress*    gnome_vfs_address_new_from_sockaddr (struct sockaddr *sa,
                                                             int len);
    GnomeVFSAddress*    gnome_vfs_address_new_from_string   (const char *address);
    char*               gnome_vfs_address_to_string         (GnomeVFSAddress *address);

## Description

## Details

### gnome_vfs_resolve ()

    GnomeVFSResult      gnome_vfs_resolve                   (const char *hostname,
                                                             GnomeVFSResolveHandle **handle);

Tries to resolve `hostname`. If the operation was successful you can get the resolved addresses in form of GnomeVFSAddress by calling `gnome_vfs_resolve_next_address()`.

`hostname` :

  hostname you want to resolve.

`handle` :

  pointer to a pointer to a GnomeVFSResolveHandle.

Returns :

  A GnomeVFSResult indicating the success of the operation.

Since 2.8

### gnome_vfs_resolve_free ()

    void                gnome_vfs_resolve_free              (GnomeVFSResolveHandle *handle);

Use this function to free a GnomeVFSResolveHandle returned by `gnome_vfs_resolve()`.

`handle` :

  a GnomeVFSResolveHandle.

Since 2.8

### gnome_vfs_resolve_next_address ()

    gboolean            gnome_vfs_resolve_next_address      (GnomeVFSResolveHandle *handle,
                                                             GnomeVFSAddress **address);

Stores the next GnomeVFSAddress available in `handle` of the former lookup in `address`.

`handle` :

  a GnomeVFSResolveHandle.

`address` :

  a pointer to a pointer to a GnomeVFSAddress.

Returns :

  `TRUE` if the next address was stored in `address` or `FALSE` if no other address is available.

Since 2.8

### gnome_vfs_resolve_reset_to_beginning ()

    void                gnome_vfs_resolve_reset_to_beginning
                                                            (GnomeVFSResolveHandle *handle);

Reset `handle` so that a following call to `gnome_vfs_resolve_next_address()` will return the first resolved address.

`handle` :

  a GnomeVFSResolveHandle.

Since 2.8

### GnomeVFSAddress

    typedef struct _GnomeVFSAddress GnomeVFSAddress;

### gnome_vfs_address_dup ()

    GnomeVFSAddress*    gnome_vfs_address_dup               (GnomeVFSAddress *address);

Duplicates `address`.

`address` :

  A GnomeVFSAddress.

Returns :

  Duplicated `address` or `NULL` if `address` was not valid.

Since 2.8

### gnome_vfs_address_free ()

    void                gnome_vfs_address_free              (GnomeVFSAddress *address);

Frees the memory allocated for `address`.

`address` :

  A GnomeVFSAddress.

Since 2.8

### gnome_vfs_address_get_family_type ()

    int                 gnome_vfs_address_get_family_type   (GnomeVFSAddress *address);

Use this function to retrive the address family of `address`.

`address` :

  A pointer to a GnomeVFSAddress

Returns :

  The address family of `address`.

Since 2.8

### gnome_vfs_address_get_ipv4 ()

    guint32             gnome_vfs_address_get_ipv4          (GnomeVFSAddress *address);

`address` :

  A GnomeVFSAddress.

Returns :

  The associated IPv4 address in network byte order.

  Note that you should avoid using this function because newly written code should be protocol independent.

Since 2.8

### gnome_vfs_address_get_type ()

    GType               gnome_vfs_address_get_type          (void);

Returns :

### gnome_vfs_address_new_from_ipv4 ()

    GnomeVFSAddress*    gnome_vfs_address_new_from_ipv4     (guint32 ipv4_address);

Creates a new GnomeVFSAddress from `ipv4_address`.

Note that this function should be avoided because newly written code should be protocol independent.

`ipv4_address` :

  A IPv4 Address in network byte order

Returns :

  A new GnomeVFSAdress.

Since 2.8

### gnome_vfs_address_new_from_sockaddr ()

    GnomeVFSAddress*    gnome_vfs_address_new_from_sockaddr (struct sockaddr *sa,
                                                             int len);

Creates a new GnomeVFSAddress from `sa`.

`sa` :

  A pointer to a sockaddr.

`len` :

  The size of `sa`.

Returns :

  The new GnomeVFSAddress or `NULL` if `sa` was invalid or the address family isn't supported.

Since 2.8

### gnome_vfs_address_new_from_string ()

    GnomeVFSAddress*    gnome_vfs_address_new_from_string   (const char *address);

Creates a new GnomeVFSAddress from the given string or `NULL` if `address` isn't a valid.

`address` :

  A string representation of the address.

Returns :

  The new GnomeVFSAddress.

Since 2.8

### gnome_vfs_address_to_string ()

    char*               gnome_vfs_address_to_string         (GnomeVFSAddress *address);

Translate `address` to a printable string.

`address` :

  A pointer to a GnomeVFSAddress

Returns :

  A newly alloced string representation of `address` which the caller must free.

Since 2.8