GIO Reference Manual | ||||
---|---|---|---|---|
Top | Description | Object Hierarchy |
#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
);
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.
typedef struct _GSrvTarget GSrvTarget;
A single target host/port that a network service is running on.
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.
|
the host that the service is running on |
|
the port that the service is running on |
|
the target's priority |
|
the target's weight |
Returns : |
a new GSrvTarget. |
Since 2.22
GSrvTarget * g_srv_target_copy (GSrvTarget *target
);
Copies target
|
a GSrvTarget |
Returns : |
a copy of target
|
Since 2.22
void g_srv_target_free (GSrvTarget *target
);
Frees target
|
a GSrvTarget |
Since 2.22
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.)
|
a GSrvTarget |
Returns : |
target 's hostname |
Since 2.22
guint16 g_srv_target_get_port (GSrvTarget *target
);
Gets target
's port
|
a GSrvTarget |
Returns : |
target 's port |
Since 2.22
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.
|
a GSrvTarget |
Returns : |
target 's priority |
Since 2.22
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.
|
a GSrvTarget |
Returns : |
target 's weight |
Since 2.22
GList * g_srv_target_list_sort (GList *targets
);
Sorts targets
in place according to the algorithm in RFC 2782.
|
a GList of GSrvTarget |
Returns : |
the head of the sorted list. [transfer full] |
Since 2.22