GSrvTarget

GSrvTarget — DNS SRV record target

Synopsis

#include <gio/gio.h>

                    GSrvTarget;
GSrvTarget *        g_srv_target_new                    (const gchar *hostname,
                                                         guint16 port,
                                                         guint16 priority,
                                                         guint16 weight);
GSrvTarget *        g_srv_target_copy                   (GSrvTarget *target);
void                g_srv_target_free                   (GSrvTarget *target);
const gchar *       g_srv_target_get_hostname           (GSrvTarget *target);
guint16             g_srv_target_get_port               (GSrvTarget *target);
guint16             g_srv_target_get_priority           (GSrvTarget *target);
guint16             g_srv_target_get_weight             (GSrvTarget *target);
GList *             g_srv_target_list_sort              (GList *targets);

Object Hierarchy

  GBoxed
   +----GSrvTarget

Description

SRV (service) records are used by some network protocols to provide service-specific aliasing and load-balancing. For example, XMPP (Jabber) uses SRV records to locate the XMPP server for a domain; rather than connecting directly to "example.com" or assuming a specific server hostname like "xmpp.example.com", an XMPP client would look up the "xmpp-client" SRV record for "example.com", and then connect to whatever host was pointed to by that record.

You can use g_resolver_lookup_service() or g_resolver_lookup_service_async() to find the GSrvTargets for a given service. However, if you are simply planning to connect to the remote service, you can use GNetworkService's GSocketConnectable interface and not need to worry about GSrvTarget at all.

Details

GSrvTarget

typedef struct _GSrvTarget GSrvTarget;

A single target host/port that a network service is running on.


g_srv_target_new ()

GSrvTarget *        g_srv_target_new                    (const gchar *hostname,
                                                         guint16 port,
                                                         guint16 priority,
                                                         guint16 weight);

Creates a new GSrvTarget with the given parameters.

You should not need to use this; normally GSrvTargets are created by GResolver.

hostname :

the host that the service is running on

port :

the port that the service is running on

priority :

the target's priority

weight :

the target's weight

Returns :

a new GSrvTarget.

Since 2.22


g_srv_target_copy ()

GSrvTarget *        g_srv_target_copy                   (GSrvTarget *target);

Copies target

target :

a GSrvTarget

Returns :

a copy of target

Since 2.22


g_srv_target_free ()

void                g_srv_target_free                   (GSrvTarget *target);

Frees target

target :

a GSrvTarget

Since 2.22


g_srv_target_get_hostname ()

const gchar *       g_srv_target_get_hostname           (GSrvTarget *target);

Gets target's hostname (in ASCII form; if you are going to present this to the user, you should use g_hostname_is_ascii_encoded() to check if it contains encoded Unicode segments, and use g_hostname_to_unicode() to convert it if it does.)

target :

a GSrvTarget

Returns :

target's hostname

Since 2.22


g_srv_target_get_port ()

guint16             g_srv_target_get_port               (GSrvTarget *target);

Gets target's port

target :

a GSrvTarget

Returns :

target's port

Since 2.22


g_srv_target_get_priority ()

guint16             g_srv_target_get_priority           (GSrvTarget *target);

Gets target's priority. You should not need to look at this; GResolver already sorts the targets according to the algorithm in RFC 2782.

target :

a GSrvTarget

Returns :

target's priority

Since 2.22


g_srv_target_get_weight ()

guint16             g_srv_target_get_weight             (GSrvTarget *target);

Gets target's weight. You should not need to look at this; GResolver already sorts the targets according to the algorithm in RFC 2782.

target :

a GSrvTarget

Returns :

target's weight

Since 2.22


g_srv_target_list_sort ()

GList *             g_srv_target_list_sort              (GList *targets);

Sorts targets in place according to the algorithm in RFC 2782.

targets :

a GList of GSrvTarget

Returns :

the head of the sorted list. [transfer full]

Since 2.22