GSrvTarget

GSrvTarget — DNS SRV record target

Functions

Types and Values

Object Hierarchy

    GBoxed
    ╰── GSrvTarget

Includes

#include <gio/gio.h>

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.

Functions

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.

Parameters

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

Parameters

target

a GSrvTarget

 

Returns

a copy of target

Since 2.22


g_srv_target_free ()

void
g_srv_target_free (GSrvTarget *target);

Frees target

Parameters

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.)

Parameters

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

Parameters

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.

Parameters

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.

Parameters

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.

Parameters

targets

a GList of GSrvTarget

 

Returns

the head of the sorted list.

[transfer full]

Since 2.22

Types and Values

GSrvTarget

typedef struct _GSrvTarget GSrvTarget;

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