Update to version 2.33.1
[profile/ivi/glib2.git] / docs / reference / gio / html / GResolver.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GResolver</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GIO Reference Manual">
8 <link rel="up" href="resolver.html" title="DNS resolution">
9 <link rel="prev" href="resolver.html" title="DNS resolution">
10 <link rel="next" href="GProxyResolver.html" title="GProxyResolver">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="resolver.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="resolver.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GIO Reference Manual</th>
21 <td><a accesskey="n" href="GProxyResolver.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GResolver.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GResolver.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GResolver.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#GResolver.signals" class="shortcut">Signals</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="GResolver"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="GResolver.top_of_page"></a>GResolver</span></h2>
38 <p>GResolver — Asynchronous and cancellable DNS resolver</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="GResolver.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">
45 #include &lt;gio/gio.h&gt;
46
47                     <a class="link" href="GResolver.html#GResolver-struct" title="GResolver">GResolver</a>;
48 <a class="link" href="GResolver.html" title="GResolver"><span class="returnvalue">GResolver</span></a> *         <a class="link" href="GResolver.html#g-resolver-get-default" title="g_resolver_get_default ()">g_resolver_get_default</a>              (<em class="parameter"><code><span class="type">void</span></code></em>);
49 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-set-default" title="g_resolver_set_default ()">g_resolver_set_default</a>              (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>);
50 <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-by-name" title="g_resolver_lookup_by_name ()">g_resolver_lookup_by_name</a>           (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
51                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *hostname</code></em>,
52                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
53                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
54 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-lookup-by-name-async" title="g_resolver_lookup_by_name_async ()">g_resolver_lookup_by_name_async</a>     (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
55                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *hostname</code></em>,
56                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
57                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
58                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
59 <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-by-name-finish" title="g_resolver_lookup_by_name_finish ()">g_resolver_lookup_by_name_finish</a>    (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
60                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
61                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
62 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-free-addresses" title="g_resolver_free_addresses ()">g_resolver_free_addresses</a>           (<em class="parameter"><code><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *addresses</code></em>);
63 <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-by-address" title="g_resolver_lookup_by_address ()">g_resolver_lookup_by_address</a>        (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
64                                                          <em class="parameter"><code><a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a> *address</code></em>,
65                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
66                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
67 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-lookup-by-address-async" title="g_resolver_lookup_by_address_async ()">g_resolver_lookup_by_address_async</a>  (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
68                                                          <em class="parameter"><code><a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a> *address</code></em>,
69                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
70                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
71                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
72 <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-by-address-finish" title="g_resolver_lookup_by_address_finish ()">g_resolver_lookup_by_address_finish</a> (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
73                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
74                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
75 <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-service" title="g_resolver_lookup_service ()">g_resolver_lookup_service</a>           (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
76                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *service</code></em>,
77                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>,
78                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *domain</code></em>,
79                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
80                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
81 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-lookup-service-async" title="g_resolver_lookup_service_async ()">g_resolver_lookup_service_async</a>     (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
82                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *service</code></em>,
83                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>,
84                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *domain</code></em>,
85                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
86                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
87                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
88 <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-service-finish" title="g_resolver_lookup_service_finish ()">g_resolver_lookup_service_finish</a>    (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
89                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
90                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
91 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-free-targets" title="g_resolver_free_targets ()">g_resolver_free_targets</a>             (<em class="parameter"><code><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *targets</code></em>);
92 <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-records" title="g_resolver_lookup_records ()">g_resolver_lookup_records</a>           (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
93                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *rrname</code></em>,
94                                                          <em class="parameter"><code><span class="type">GResolverRecordType</span> record_type</code></em>,
95                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
96                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
97 <span class="returnvalue">void</span>                <a class="link" href="GResolver.html#g-resolver-lookup-records-async" title="g_resolver_lookup_records_async ()">g_resolver_lookup_records_async</a>     (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
98                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *rrname</code></em>,
99                                                          <em class="parameter"><code><span class="type">GResolverRecordType</span> record_type</code></em>,
100                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
101                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
102                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
103 <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GResolver.html#g-resolver-lookup-records-finish" title="g_resolver_lookup_records_finish ()">g_resolver_lookup_records_finish</a>    (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
104                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
105                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
106
107 #define             <a class="link" href="GResolver.html#G-RESOLVER-ERROR:CAPS" title="G_RESOLVER_ERROR">G_RESOLVER_ERROR</a>
108 enum                <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError">GResolverError</a>;
109 </pre>
110 </div>
111 <div class="refsect1">
112 <a name="GResolver.object-hierarchy"></a><h2>Object Hierarchy</h2>
113 <pre class="synopsis">
114   <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>
115    +----GResolver
116 </pre>
117 </div>
118 <div class="refsect1">
119 <a name="GResolver.signals"></a><h2>Signals</h2>
120 <pre class="synopsis">
121   "<a class="link" href="GResolver.html#GResolver-reload" title='The "reload" signal'>reload</a>"                                         : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
122 </pre>
123 </div>
124 <div class="refsect1">
125 <a name="GResolver.description"></a><h2>Description</h2>
126 <p>
127 <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> provides cancellable synchronous and asynchronous DNS
128 resolution, for hostnames (<a class="link" href="GResolver.html#g-resolver-lookup-by-address" title="g_resolver_lookup_by_address ()"><code class="function">g_resolver_lookup_by_address()</code></a>,
129 <a class="link" href="GResolver.html#g-resolver-lookup-by-name" title="g_resolver_lookup_by_name ()"><code class="function">g_resolver_lookup_by_name()</code></a> and their async variants) and SRV
130 (service) records (<a class="link" href="GResolver.html#g-resolver-lookup-service" title="g_resolver_lookup_service ()"><code class="function">g_resolver_lookup_service()</code></a>).
131 </p>
132 <p>
133 <a class="link" href="GNetworkAddress.html" title="GNetworkAddress"><span class="type">GNetworkAddress</span></a> and <a class="link" href="GNetworkService.html" title="GNetworkService"><span class="type">GNetworkService</span></a> provide wrappers around
134 <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> functionality that also implement <a class="link" href="GSocketConnectable.html" title="GSocketConnectable"><span class="type">GSocketConnectable</span></a>,
135 making it easy to connect to a remote host/service.
136 </p>
137 </div>
138 <div class="refsect1">
139 <a name="GResolver.details"></a><h2>Details</h2>
140 <div class="refsect2">
141 <a name="GResolver-struct"></a><h3>GResolver</h3>
142 <pre class="programlisting">typedef struct _GResolver GResolver;</pre>
143 <p>
144 The object that handles DNS resolution. Use <a class="link" href="GResolver.html#g-resolver-get-default" title="g_resolver_get_default ()"><code class="function">g_resolver_get_default()</code></a>
145 to get the default resolver.
146 </p>
147 </div>
148 <hr>
149 <div class="refsect2">
150 <a name="g-resolver-get-default"></a><h3>g_resolver_get_default ()</h3>
151 <pre class="programlisting"><a class="link" href="GResolver.html" title="GResolver"><span class="returnvalue">GResolver</span></a> *         g_resolver_get_default              (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
152 <p>
153 Gets the default <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>. You should unref it when you are done
154 with it. <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> may use its reference count as a hint about how
155 many threads it should allocate for concurrent DNS resolutions.
156 </p>
157 <div class="variablelist"><table border="0">
158 <col align="left" valign="top">
159 <tbody><tr>
160 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
161 <td>the default <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
162 </td>
163 </tr></tbody>
164 </table></div>
165 <p class="since">Since 2.22</p>
166 </div>
167 <hr>
168 <div class="refsect2">
169 <a name="g-resolver-set-default"></a><h3>g_resolver_set_default ()</h3>
170 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_set_default              (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>);</pre>
171 <p>
172 Sets <em class="parameter"><code>resolver</code></em> to be the application's default resolver (reffing
173 <em class="parameter"><code>resolver</code></em>, and unreffing the previous default resolver, if any).
174 Future calls to <a class="link" href="GResolver.html#g-resolver-get-default" title="g_resolver_get_default ()"><code class="function">g_resolver_get_default()</code></a> will return this resolver.
175 </p>
176 <p>
177 This can be used if an application wants to perform any sort of DNS
178 caching or "pinning"; it can implement its own <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> that
179 calls the original default resolver for DNS operations, and
180 implements its own cache policies on top of that, and then set
181 itself as the default resolver for all later code to use.
182 </p>
183 <div class="variablelist"><table border="0">
184 <col align="left" valign="top">
185 <tbody><tr>
186 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
187 <td>the new default <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
188 </td>
189 </tr></tbody>
190 </table></div>
191 <p class="since">Since 2.22</p>
192 </div>
193 <hr>
194 <div class="refsect2">
195 <a name="g-resolver-lookup-by-name"></a><h3>g_resolver_lookup_by_name ()</h3>
196 <pre class="programlisting"><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             g_resolver_lookup_by_name           (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
197                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *hostname</code></em>,
198                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
199                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
200 <p>
201 Synchronously resolves <em class="parameter"><code>hostname</code></em> to determine its associated IP
202 address(es). <em class="parameter"><code>hostname</code></em> may be an ASCII-only or UTF-8 hostname, or
203 the textual form of an IP address (in which case this just becomes
204 a wrapper around <a class="link" href="GInetAddress.html#g-inet-address-new-from-string" title="g_inet_address_new_from_string ()"><code class="function">g_inet_address_new_from_string()</code></a>).
205 </p>
206 <p>
207 On success, <a class="link" href="GResolver.html#g-resolver-lookup-by-name" title="g_resolver_lookup_by_name ()"><code class="function">g_resolver_lookup_by_name()</code></a> will return a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
208 <a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a>, sorted in order of preference and guaranteed to not
209 contain duplicates. That is, if using the result to connect to
210 <em class="parameter"><code>hostname</code></em>, you should attempt to connect to the first address
211 first, then the second if the first fails, etc. If you are using
212 the result to listen on a socket, it is appropriate to add each
213 result using e.g. <a class="link" href="GSocketListener.html#g-socket-listener-add-address" title="g_socket_listener_add_address ()"><code class="function">g_socket_listener_add_address()</code></a>.
214 </p>
215 <p>
216 If the DNS resolution fails, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to a
217 value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>.
218 </p>
219 <p>
220 If <em class="parameter"><code>cancellable</code></em> is non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it can be used to cancel the
221 operation, in which case <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
222 <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
223 </p>
224 <p>
225 If you are planning to connect to a socket on the resolved IP
226 address, it may be easier to create a <a class="link" href="GNetworkAddress.html" title="GNetworkAddress"><span class="type">GNetworkAddress</span></a> and use its
227 <a class="link" href="GSocketConnectable.html" title="GSocketConnectable"><span class="type">GSocketConnectable</span></a> interface.
228 </p>
229 <div class="variablelist"><table border="0">
230 <col align="left" valign="top">
231 <tbody>
232 <tr>
233 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
234 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
235 </td>
236 </tr>
237 <tr>
238 <td><p><span class="term"><em class="parameter"><code>hostname</code></em> :</span></p></td>
239 <td>the hostname to look up</td>
240 </tr>
241 <tr>
242 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
243 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
244 </td>
245 </tr>
246 <tr>
247 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
248 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
249 </td>
250 </tr>
251 <tr>
252 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
253 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>
254 of <a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. You
255 must unref each of the addresses and free the list when you are
256 done with it. (You can use <a class="link" href="GResolver.html#g-resolver-free-addresses" title="g_resolver_free_addresses ()"><code class="function">g_resolver_free_addresses()</code></a> to do this.). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GInetAddress][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
257 </td>
258 </tr>
259 </tbody>
260 </table></div>
261 <p class="since">Since 2.22</p>
262 </div>
263 <hr>
264 <div class="refsect2">
265 <a name="g-resolver-lookup-by-name-async"></a><h3>g_resolver_lookup_by_name_async ()</h3>
266 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_lookup_by_name_async     (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
267                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *hostname</code></em>,
268                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
269                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
270                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
271 <p>
272 Begins asynchronously resolving <em class="parameter"><code>hostname</code></em> to determine its
273 associated IP address(es), and eventually calls <em class="parameter"><code>callback</code></em>, which
274 must call <a class="link" href="GResolver.html#g-resolver-lookup-by-name-finish" title="g_resolver_lookup_by_name_finish ()"><code class="function">g_resolver_lookup_by_name_finish()</code></a> to get the result.
275 See <a class="link" href="GResolver.html#g-resolver-lookup-by-name" title="g_resolver_lookup_by_name ()"><code class="function">g_resolver_lookup_by_name()</code></a> for more details.
276 </p>
277 <div class="variablelist"><table border="0">
278 <col align="left" valign="top">
279 <tbody>
280 <tr>
281 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
282 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
283 </td>
284 </tr>
285 <tr>
286 <td><p><span class="term"><em class="parameter"><code>hostname</code></em> :</span></p></td>
287 <td>the hostname to look up the address of</td>
288 </tr>
289 <tr>
290 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
291 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
292 </td>
293 </tr>
294 <tr>
295 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
296 <td>callback to call after resolution completes. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
297 </td>
298 </tr>
299 <tr>
300 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
301 <td>data for <em class="parameter"><code>callback</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
302 </td>
303 </tr>
304 </tbody>
305 </table></div>
306 <p class="since">Since 2.22</p>
307 </div>
308 <hr>
309 <div class="refsect2">
310 <a name="g-resolver-lookup-by-name-finish"></a><h3>g_resolver_lookup_by_name_finish ()</h3>
311 <pre class="programlisting"><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             g_resolver_lookup_by_name_finish    (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
312                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
313                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
314 <p>
315 Retrieves the result of a call to
316 <a class="link" href="GResolver.html#g-resolver-lookup-by-name-async" title="g_resolver_lookup_by_name_async ()"><code class="function">g_resolver_lookup_by_name_async()</code></a>.
317 </p>
318 <p>
319 If the DNS resolution failed, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
320 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>. If the operation was cancelled,
321 <em class="parameter"><code>error</code></em> will be set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
322 </p>
323 <div class="variablelist"><table border="0">
324 <col align="left" valign="top">
325 <tbody>
326 <tr>
327 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
328 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
329 </td>
330 </tr>
331 <tr>
332 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
333 <td>the result passed to your <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a>
334 </td>
335 </tr>
336 <tr>
337 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
338 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
339 </td>
340 </tr>
341 <tr>
342 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
343 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>
344 of <a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. See <a class="link" href="GResolver.html#g-resolver-lookup-by-name" title="g_resolver_lookup_by_name ()"><code class="function">g_resolver_lookup_by_name()</code></a>
345 for more details. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GInetAddress][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
346 </td>
347 </tr>
348 </tbody>
349 </table></div>
350 <p class="since">Since 2.22</p>
351 </div>
352 <hr>
353 <div class="refsect2">
354 <a name="g-resolver-free-addresses"></a><h3>g_resolver_free_addresses ()</h3>
355 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_free_addresses           (<em class="parameter"><code><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *addresses</code></em>);</pre>
356 <p>
357 Frees <em class="parameter"><code>addresses</code></em> (which should be the return value from
358 <a class="link" href="GResolver.html#g-resolver-lookup-by-name" title="g_resolver_lookup_by_name ()"><code class="function">g_resolver_lookup_by_name()</code></a> or <a class="link" href="GResolver.html#g-resolver-lookup-by-name-finish" title="g_resolver_lookup_by_name_finish ()"><code class="function">g_resolver_lookup_by_name_finish()</code></a>).
359 (This is a convenience method; you can also simply free the results
360 by hand.)
361 </p>
362 <div class="variablelist"><table border="0">
363 <col align="left" valign="top">
364 <tbody><tr>
365 <td><p><span class="term"><em class="parameter"><code>addresses</code></em> :</span></p></td>
366 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a>
367 </td>
368 </tr></tbody>
369 </table></div>
370 <p class="since">Since 2.22</p>
371 </div>
372 <hr>
373 <div class="refsect2">
374 <a name="g-resolver-lookup-by-address"></a><h3>g_resolver_lookup_by_address ()</h3>
375 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             g_resolver_lookup_by_address        (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
376                                                          <em class="parameter"><code><a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a> *address</code></em>,
377                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
378                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
379 <p>
380 Synchronously reverse-resolves <em class="parameter"><code>address</code></em> to determine its
381 associated hostname.
382 </p>
383 <p>
384 If the DNS resolution fails, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
385 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>.
386 </p>
387 <p>
388 If <em class="parameter"><code>cancellable</code></em> is non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it can be used to cancel the
389 operation, in which case <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
390 <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
391 </p>
392 <div class="variablelist"><table border="0">
393 <col align="left" valign="top">
394 <tbody>
395 <tr>
396 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
397 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
398 </td>
399 </tr>
400 <tr>
401 <td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
402 <td>the address to reverse-resolve</td>
403 </tr>
404 <tr>
405 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
406 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
407 </td>
408 </tr>
409 <tr>
410 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
411 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
412 </td>
413 </tr>
414 <tr>
415 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
416 <td>a hostname (either ASCII-only, or in ASCII-encoded
417 form), or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.</td>
418 </tr>
419 </tbody>
420 </table></div>
421 <p class="since">Since 2.22</p>
422 </div>
423 <hr>
424 <div class="refsect2">
425 <a name="g-resolver-lookup-by-address-async"></a><h3>g_resolver_lookup_by_address_async ()</h3>
426 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_lookup_by_address_async  (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
427                                                          <em class="parameter"><code><a class="link" href="GInetAddress.html" title="GInetAddress"><span class="type">GInetAddress</span></a> *address</code></em>,
428                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
429                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
430                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
431 <p>
432 Begins asynchronously reverse-resolving <em class="parameter"><code>address</code></em> to determine its
433 associated hostname, and eventually calls <em class="parameter"><code>callback</code></em>, which must
434 call <a class="link" href="GResolver.html#g-resolver-lookup-by-address-finish" title="g_resolver_lookup_by_address_finish ()"><code class="function">g_resolver_lookup_by_address_finish()</code></a> to get the final result.
435 </p>
436 <div class="variablelist"><table border="0">
437 <col align="left" valign="top">
438 <tbody>
439 <tr>
440 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
441 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
442 </td>
443 </tr>
444 <tr>
445 <td><p><span class="term"><em class="parameter"><code>address</code></em> :</span></p></td>
446 <td>the address to reverse-resolve</td>
447 </tr>
448 <tr>
449 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
450 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
451 </td>
452 </tr>
453 <tr>
454 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
455 <td>callback to call after resolution completes. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
456 </td>
457 </tr>
458 <tr>
459 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
460 <td>data for <em class="parameter"><code>callback</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
461 </td>
462 </tr>
463 </tbody>
464 </table></div>
465 <p class="since">Since 2.22</p>
466 </div>
467 <hr>
468 <div class="refsect2">
469 <a name="g-resolver-lookup-by-address-finish"></a><h3>g_resolver_lookup_by_address_finish ()</h3>
470 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *             g_resolver_lookup_by_address_finish (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
471                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
472                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
473 <p>
474 Retrieves the result of a previous call to
475 <a class="link" href="GResolver.html#g-resolver-lookup-by-address-async" title="g_resolver_lookup_by_address_async ()"><code class="function">g_resolver_lookup_by_address_async()</code></a>.
476 </p>
477 <p>
478 If the DNS resolution failed, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
479 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>. If the operation was cancelled,
480 <em class="parameter"><code>error</code></em> will be set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
481 </p>
482 <div class="variablelist"><table border="0">
483 <col align="left" valign="top">
484 <tbody>
485 <tr>
486 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
487 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
488 </td>
489 </tr>
490 <tr>
491 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
492 <td>the result passed to your <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a>
493 </td>
494 </tr>
495 <tr>
496 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
497 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
498 </td>
499 </tr>
500 <tr>
501 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
502 <td>a hostname (either ASCII-only, or in ASCII-encoded
503 form), or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error.</td>
504 </tr>
505 </tbody>
506 </table></div>
507 <p class="since">Since 2.22</p>
508 </div>
509 <hr>
510 <div class="refsect2">
511 <a name="g-resolver-lookup-service"></a><h3>g_resolver_lookup_service ()</h3>
512 <pre class="programlisting"><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             g_resolver_lookup_service           (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
513                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *service</code></em>,
514                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>,
515                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *domain</code></em>,
516                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
517                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
518 <p>
519 Synchronously performs a DNS SRV lookup for the given <em class="parameter"><code>service</code></em> and
520 <em class="parameter"><code>protocol</code></em> in the given <em class="parameter"><code>domain</code></em> and returns an array of <a class="link" href="GSrvTarget.html" title="GSrvTarget"><span class="type">GSrvTarget</span></a>.
521 <em class="parameter"><code>domain</code></em> may be an ASCII-only or UTF-8 hostname. Note also that the
522 <em class="parameter"><code>service</code></em> and <em class="parameter"><code>protocol</code></em> arguments <span class="emphasis"><em>do not</em></span>
523 include the leading underscore that appears in the actual DNS
524 entry.
525 </p>
526 <p>
527 On success, <a class="link" href="GResolver.html#g-resolver-lookup-service" title="g_resolver_lookup_service ()"><code class="function">g_resolver_lookup_service()</code></a> will return a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
528 <a class="link" href="GSrvTarget.html" title="GSrvTarget"><span class="type">GSrvTarget</span></a>, sorted in order of preference. (That is, you should
529 attempt to connect to the first target first, then the second if
530 the first fails, etc.)
531 </p>
532 <p>
533 If the DNS resolution fails, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
534 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>.
535 </p>
536 <p>
537 If <em class="parameter"><code>cancellable</code></em> is non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it can be used to cancel the
538 operation, in which case <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
539 <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
540 </p>
541 <p>
542 If you are planning to connect to the service, it is usually easier
543 to create a <a class="link" href="GNetworkService.html" title="GNetworkService"><span class="type">GNetworkService</span></a> and use its <a class="link" href="GSocketConnectable.html" title="GSocketConnectable"><span class="type">GSocketConnectable</span></a>
544 interface.
545 </p>
546 <div class="variablelist"><table border="0">
547 <col align="left" valign="top">
548 <tbody>
549 <tr>
550 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
551 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
552 </td>
553 </tr>
554 <tr>
555 <td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
556 <td>the service type to look up (eg, "ldap")</td>
557 </tr>
558 <tr>
559 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
560 <td>the networking protocol to use for <em class="parameter"><code>service</code></em> (eg, "tcp")</td>
561 </tr>
562 <tr>
563 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
564 <td>the DNS domain to look up the service in</td>
565 </tr>
566 <tr>
567 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
568 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
569 </td>
570 </tr>
571 <tr>
572 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
573 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
574 </td>
575 </tr>
576 <tr>
577 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
578 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GSrvTarget.html" title="GSrvTarget"><span class="type">GSrvTarget</span></a>,
579 or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. You must free each of the targets and the list when you are
580 done with it. (You can use <a class="link" href="GResolver.html#g-resolver-free-targets" title="g_resolver_free_targets ()"><code class="function">g_resolver_free_targets()</code></a> to do this.). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GSrvTarget][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
581 </td>
582 </tr>
583 </tbody>
584 </table></div>
585 <p class="since">Since 2.22</p>
586 </div>
587 <hr>
588 <div class="refsect2">
589 <a name="g-resolver-lookup-service-async"></a><h3>g_resolver_lookup_service_async ()</h3>
590 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_lookup_service_async     (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
591                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *service</code></em>,
592                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>,
593                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *domain</code></em>,
594                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
595                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
596                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
597 <p>
598 Begins asynchronously performing a DNS SRV lookup for the given
599 <em class="parameter"><code>service</code></em> and <em class="parameter"><code>protocol</code></em> in the given <em class="parameter"><code>domain</code></em>, and eventually calls
600 <em class="parameter"><code>callback</code></em>, which must call <a class="link" href="GResolver.html#g-resolver-lookup-service-finish" title="g_resolver_lookup_service_finish ()"><code class="function">g_resolver_lookup_service_finish()</code></a> to
601 get the final result. See <a class="link" href="GResolver.html#g-resolver-lookup-service" title="g_resolver_lookup_service ()"><code class="function">g_resolver_lookup_service()</code></a> for more
602 details.
603 </p>
604 <div class="variablelist"><table border="0">
605 <col align="left" valign="top">
606 <tbody>
607 <tr>
608 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
609 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
610 </td>
611 </tr>
612 <tr>
613 <td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
614 <td>the service type to look up (eg, "ldap")</td>
615 </tr>
616 <tr>
617 <td><p><span class="term"><em class="parameter"><code>protocol</code></em> :</span></p></td>
618 <td>the networking protocol to use for <em class="parameter"><code>service</code></em> (eg, "tcp")</td>
619 </tr>
620 <tr>
621 <td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
622 <td>the DNS domain to look up the service in</td>
623 </tr>
624 <tr>
625 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
626 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
627 </td>
628 </tr>
629 <tr>
630 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
631 <td>callback to call after resolution completes. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
632 </td>
633 </tr>
634 <tr>
635 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
636 <td>data for <em class="parameter"><code>callback</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
637 </td>
638 </tr>
639 </tbody>
640 </table></div>
641 <p class="since">Since 2.22</p>
642 </div>
643 <hr>
644 <div class="refsect2">
645 <a name="g-resolver-lookup-service-finish"></a><h3>g_resolver_lookup_service_finish ()</h3>
646 <pre class="programlisting"><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             g_resolver_lookup_service_finish    (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
647                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
648                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
649 <p>
650 Retrieves the result of a previous call to
651 <a class="link" href="GResolver.html#g-resolver-lookup-service-async" title="g_resolver_lookup_service_async ()"><code class="function">g_resolver_lookup_service_async()</code></a>.
652 </p>
653 <p>
654 If the DNS resolution failed, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
655 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>. If the operation was cancelled,
656 <em class="parameter"><code>error</code></em> will be set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
657 </p>
658 <div class="variablelist"><table border="0">
659 <col align="left" valign="top">
660 <tbody>
661 <tr>
662 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
663 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
664 </td>
665 </tr>
666 <tr>
667 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
668 <td>the result passed to your <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a>
669 </td>
670 </tr>
671 <tr>
672 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
673 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
674 </td>
675 </tr>
676 <tr>
677 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
678 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GSrvTarget.html" title="GSrvTarget"><span class="type">GSrvTarget</span></a>,
679 or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. See <a class="link" href="GResolver.html#g-resolver-lookup-service" title="g_resolver_lookup_service ()"><code class="function">g_resolver_lookup_service()</code></a> for more details. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GSrvTarget][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
680 </td>
681 </tr>
682 </tbody>
683 </table></div>
684 <p class="since">Since 2.22</p>
685 </div>
686 <hr>
687 <div class="refsect2">
688 <a name="g-resolver-free-targets"></a><h3>g_resolver_free_targets ()</h3>
689 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_free_targets             (<em class="parameter"><code><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *targets</code></em>);</pre>
690 <p>
691 Frees <em class="parameter"><code>targets</code></em> (which should be the return value from
692 <a class="link" href="GResolver.html#g-resolver-lookup-service" title="g_resolver_lookup_service ()"><code class="function">g_resolver_lookup_service()</code></a> or <a class="link" href="GResolver.html#g-resolver-lookup-service-finish" title="g_resolver_lookup_service_finish ()"><code class="function">g_resolver_lookup_service_finish()</code></a>).
693 (This is a convenience method; you can also simply free the
694 results by hand.)
695 </p>
696 <div class="variablelist"><table border="0">
697 <col align="left" valign="top">
698 <tbody><tr>
699 <td><p><span class="term"><em class="parameter"><code>targets</code></em> :</span></p></td>
700 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="GSrvTarget.html" title="GSrvTarget"><span class="type">GSrvTarget</span></a>
701 </td>
702 </tr></tbody>
703 </table></div>
704 <p class="since">Since 2.22</p>
705 </div>
706 <hr>
707 <div class="refsect2">
708 <a name="g-resolver-lookup-records"></a><h3>g_resolver_lookup_records ()</h3>
709 <pre class="programlisting"><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             g_resolver_lookup_records           (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
710                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *rrname</code></em>,
711                                                          <em class="parameter"><code><span class="type">GResolverRecordType</span> record_type</code></em>,
712                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
713                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
714 <p>
715 Synchronously performs a DNS record lookup for the given <em class="parameter"><code>rrname</code></em> and returns
716 a list of records as <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuples. See <span class="type">GResolverRecordType</span> for
717 information on what the records contain for each <em class="parameter"><code>record_type</code></em>.
718 </p>
719 <p>
720 If the DNS resolution fails, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
721 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>.
722 </p>
723 <p>
724 If <em class="parameter"><code>cancellable</code></em> is non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it can be used to cancel the
725 operation, in which case <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
726 <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
727 </p>
728 <div class="variablelist"><table border="0">
729 <col align="left" valign="top">
730 <tbody>
731 <tr>
732 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
733 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
734 </td>
735 </tr>
736 <tr>
737 <td><p><span class="term"><em class="parameter"><code>rrname</code></em> :</span></p></td>
738 <td>the DNS name to lookup the record for</td>
739 </tr>
740 <tr>
741 <td><p><span class="term"><em class="parameter"><code>record_type</code></em> :</span></p></td>
742 <td>the type of DNS record to lookup</td>
743 </tr>
744 <tr>
745 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
746 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
747 </td>
748 </tr>
749 <tr>
750 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
751 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
752 </td>
753 </tr>
754 <tr>
755 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
756 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>,
757 or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. You must free each of the records and the list when you are
758 done with it. (You can use <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a> to do this.). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GVariant][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
759 </td>
760 </tr>
761 </tbody>
762 </table></div>
763 <p class="since">Since 2.34</p>
764 </div>
765 <hr>
766 <div class="refsect2">
767 <a name="g-resolver-lookup-records-async"></a><h3>g_resolver_lookup_records_async ()</h3>
768 <pre class="programlisting"><span class="returnvalue">void</span>                g_resolver_lookup_records_async     (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
769                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *rrname</code></em>,
770                                                          <em class="parameter"><code><span class="type">GResolverRecordType</span> record_type</code></em>,
771                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
772                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
773                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
774 <p>
775 Begins asynchronously performing a DNS lookup for the given
776 <em class="parameter"><code>rrname</code></em>, and eventually calls <em class="parameter"><code>callback</code></em>, which must call
777 <a class="link" href="GResolver.html#g-resolver-lookup-records-finish" title="g_resolver_lookup_records_finish ()"><code class="function">g_resolver_lookup_records_finish()</code></a> to get the final result. See
778 <a class="link" href="GResolver.html#g-resolver-lookup-records" title="g_resolver_lookup_records ()"><code class="function">g_resolver_lookup_records()</code></a> for more details.
779 </p>
780 <div class="variablelist"><table border="0">
781 <col align="left" valign="top">
782 <tbody>
783 <tr>
784 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
785 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
786 </td>
787 </tr>
788 <tr>
789 <td><p><span class="term"><em class="parameter"><code>rrname</code></em> :</span></p></td>
790 <td>the DNS name to lookup the record for</td>
791 </tr>
792 <tr>
793 <td><p><span class="term"><em class="parameter"><code>record_type</code></em> :</span></p></td>
794 <td>the type of DNS record to lookup</td>
795 </tr>
796 <tr>
797 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
798 <td>a <a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
799 </td>
800 </tr>
801 <tr>
802 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
803 <td>callback to call after resolution completes. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
804 </td>
805 </tr>
806 <tr>
807 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
808 <td>data for <em class="parameter"><code>callback</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
809 </td>
810 </tr>
811 </tbody>
812 </table></div>
813 <p class="since">Since 2.34</p>
814 </div>
815 <hr>
816 <div class="refsect2">
817 <a name="g-resolver-lookup-records-finish"></a><h3>g_resolver_lookup_records_finish ()</h3>
818 <pre class="programlisting"><a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             g_resolver_lookup_records_finish    (<em class="parameter"><code><a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver</code></em>,
819                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
820                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
821 <p>
822 Retrieves the result of a previous call to
823 <a class="link" href="GResolver.html#g-resolver-lookup-records-async" title="g_resolver_lookup_records_async ()"><code class="function">g_resolver_lookup_records_async()</code></a>. Returns a list of records as <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>
824 tuples. See <span class="type">GResolverRecordType</span> for information on what the records contain.
825 </p>
826 <p>
827 If the DNS resolution failed, <em class="parameter"><code>error</code></em> (if non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) will be set to
828 a value from <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a>. If the operation was cancelled,
829 <em class="parameter"><code>error</code></em> will be set to <a class="link" href="gio-GIOError.html#G-IO-ERROR-CANCELLED:CAPS"><code class="literal">G_IO_ERROR_CANCELLED</code></a>.
830 </p>
831 <div class="variablelist"><table border="0">
832 <col align="left" valign="top">
833 <tbody>
834 <tr>
835 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
836 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
837 </td>
838 </tr>
839 <tr>
840 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
841 <td>the result passed to your <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a>
842 </td>
843 </tr>
844 <tr>
845 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
846 <td>return location for a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
847 </td>
848 </tr>
849 <tr>
850 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
851 <td>a <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a href="./../glib/glib/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>,
852 or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on error. You must free each of the records and the list when you are
853 done with it. (You can use <a href="./../glib/glib/glib-Doubly-Linked-Lists.html#g-list-free-full"><code class="function">g_list_free_full()</code></a> with <a href="./../glib/glib/glib-GVariant.html#g-variant-unref"><code class="function">g_variant_unref()</code></a> to do this.). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GVariant][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
854 </td>
855 </tr>
856 </tbody>
857 </table></div>
858 <p class="since">Since 2.34</p>
859 </div>
860 <hr>
861 <div class="refsect2">
862 <a name="G-RESOLVER-ERROR:CAPS"></a><h3>G_RESOLVER_ERROR</h3>
863 <pre class="programlisting">#define G_RESOLVER_ERROR (g_resolver_error_quark ())
864 </pre>
865 <p>
866 Error domain for <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>. Errors in this domain will be from the
867 <a class="link" href="GResolver.html#GResolverError" title="enum GResolverError"><span class="type">GResolverError</span></a> enumeration. See <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> for more information on
868 error domains.
869 </p>
870 </div>
871 <hr>
872 <div class="refsect2">
873 <a name="GResolverError"></a><h3>enum GResolverError</h3>
874 <pre class="programlisting">typedef enum {
875   G_RESOLVER_ERROR_NOT_FOUND,
876   G_RESOLVER_ERROR_TEMPORARY_FAILURE,
877   G_RESOLVER_ERROR_INTERNAL
878 } GResolverError;
879 </pre>
880 <p>
881 An error code used with <a class="link" href="GResolver.html#G-RESOLVER-ERROR:CAPS" title="G_RESOLVER_ERROR"><code class="literal">G_RESOLVER_ERROR</code></a> in a <a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> returned
882 from a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> routine.
883 </p>
884 <div class="variablelist"><table border="0">
885 <col align="left" valign="top">
886 <tbody>
887 <tr>
888 <td><p><a name="G-RESOLVER-ERROR-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">G_RESOLVER_ERROR_NOT_FOUND</code></span></p></td>
889 <td>the requested name/address/service was not
890     found
891 </td>
892 </tr>
893 <tr>
894 <td><p><a name="G-RESOLVER-ERROR-TEMPORARY-FAILURE:CAPS"></a><span class="term"><code class="literal">G_RESOLVER_ERROR_TEMPORARY_FAILURE</code></span></p></td>
895 <td>the requested information could not
896     be looked up due to a network error or similar problem
897 </td>
898 </tr>
899 <tr>
900 <td><p><a name="G-RESOLVER-ERROR-INTERNAL:CAPS"></a><span class="term"><code class="literal">G_RESOLVER_ERROR_INTERNAL</code></span></p></td>
901 <td>unknown error
902 </td>
903 </tr>
904 </tbody>
905 </table></div>
906 <p class="since">Since 2.22</p>
907 </div>
908 </div>
909 <div class="refsect1">
910 <a name="GResolver.signal-details"></a><h2>Signal Details</h2>
911 <div class="refsect2">
912 <a name="GResolver-reload"></a><h3>The <code class="literal">"reload"</code> signal</h3>
913 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a> *resolver,
914                                                         <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)      : <a href="./../gobject/gobject/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
915 <p>
916 Emitted when the resolver notices that the system resolver
917 configuration has changed.
918 </p>
919 <div class="variablelist"><table border="0">
920 <col align="left" valign="top">
921 <tbody>
922 <tr>
923 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
924 <td>a <a class="link" href="GResolver.html" title="GResolver"><span class="type">GResolver</span></a>
925 </td>
926 </tr>
927 <tr>
928 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
929 <td>user data set when the signal handler was connected.</td>
930 </tr>
931 </tbody>
932 </table></div>
933 </div>
934 </div>
935 </div>
936 <div class="footer">
937 <hr>
938           Generated by GTK-Doc V1.18</div>
939 </body>
940 </html>