Tizen 2.1 base
[platform/upstream/glib2.0.git] / docs / reference / gio / html / GProxyResolver.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>GProxyResolver</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="GResolver.html" title="GResolver">
10 <link rel="next" href="GSocketConnectable.html" title="GSocketConnectable">
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="GResolver.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="GSocketConnectable.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="#GProxyResolver.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GProxyResolver.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GProxyResolver.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#GProxyResolver.prerequisites" class="shortcut">Prerequisites</a>
31 </td></tr>
32 </table>
33 <div class="refentry">
34 <a name="GProxyResolver"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
36 <td valign="top">
37 <h2><span class="refentrytitle"><a name="GProxyResolver.top_of_page"></a>GProxyResolver</span></h2>
38 <p>GProxyResolver — Asynchronous and cancellable network proxy resolver</p>
39 </td>
40 <td valign="top" align="right"></td>
41 </tr></table></div>
42 <div class="refsynopsisdiv">
43 <a name="GProxyResolver.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">
45 #include &lt;gio/gio.h&gt;
46
47                     <a class="link" href="GProxyResolver.html#GProxyResolver-struct" title="GProxyResolver">GProxyResolver</a>;
48 struct              <a class="link" href="GProxyResolver.html#GProxyResolverInterface" title="struct GProxyResolverInterface">GProxyResolverInterface</a>;
49 #define             <a class="link" href="GProxyResolver.html#G-PROXY-RESOLVER-EXTENSION-POINT-NAME:CAPS" title="G_PROXY_RESOLVER_EXTENSION_POINT_NAME">G_PROXY_RESOLVER_EXTENSION_POINT_NAME</a>
50 <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="returnvalue">GProxyResolver</span></a> *    <a class="link" href="GProxyResolver.html#g-proxy-resolver-get-default" title="g_proxy_resolver_get_default ()">g_proxy_resolver_get_default</a>        (<em class="parameter"><code><span class="type">void</span></code></em>);
51 <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GProxyResolver.html#g-proxy-resolver-is-supported" title="g_proxy_resolver_is_supported ()">g_proxy_resolver_is_supported</a>       (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>);
52 <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="GProxyResolver.html#g-proxy-resolver-lookup" title="g_proxy_resolver_lookup ()">g_proxy_resolver_lookup</a>             (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>,
53                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
54                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
55                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
56 <span class="returnvalue">void</span>                <a class="link" href="GProxyResolver.html#g-proxy-resolver-lookup-async" title="g_proxy_resolver_lookup_async ()">g_proxy_resolver_lookup_async</a>       (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>,
57                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
58                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
59                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
60                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
61 <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            <a class="link" href="GProxyResolver.html#g-proxy-resolver-lookup-finish" title="g_proxy_resolver_lookup_finish ()">g_proxy_resolver_lookup_finish</a>      (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>,
62                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
63                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
64 </pre>
65 </div>
66 <div class="refsect1">
67 <a name="GProxyResolver.object-hierarchy"></a><h2>Object Hierarchy</h2>
68 <pre class="synopsis">
69   GInterface
70    +----GProxyResolver
71 </pre>
72 </div>
73 <div class="refsect1">
74 <a name="GProxyResolver.prerequisites"></a><h2>Prerequisites</h2>
75 <p>
76 GProxyResolver requires
77  <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
78 </div>
79 <div class="refsect1">
80 <a name="GProxyResolver.description"></a><h2>Description</h2>
81 <p>
82 <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> provides synchronous and asynchronous network proxy
83 resolution. <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> is used within <a class="link" href="GSocketClient.html" title="GSocketClient"><span class="type">GSocketClient</span></a> through
84 the method <a class="link" href="GSocketConnectable.html#g-socket-connectable-proxy-enumerate" title="g_socket_connectable_proxy_enumerate ()"><code class="function">g_socket_connectable_proxy_enumerate()</code></a>.
85 </p>
86 </div>
87 <div class="refsect1">
88 <a name="GProxyResolver.details"></a><h2>Details</h2>
89 <div class="refsect2">
90 <a name="GProxyResolver-struct"></a><h3>GProxyResolver</h3>
91 <pre class="programlisting">typedef struct _GProxyResolver GProxyResolver;</pre>
92 <p>
93 A helper class to enumerate proxies base on URI.
94 </p>
95 <p class="since">Since 2.26</p>
96 </div>
97 <hr>
98 <div class="refsect2">
99 <a name="GProxyResolverInterface"></a><h3>struct GProxyResolverInterface</h3>
100 <pre class="programlisting">struct GProxyResolverInterface {
101   GTypeInterface g_iface;
102
103   /* Virtual Table */
104   gboolean (* is_supported)  (GProxyResolver       *resolver);
105
106   gchar ** (* lookup)        (GProxyResolver       *resolver,
107                               const gchar          *uri,
108                               GCancellable         *cancellable,
109                               GError              **error);
110
111   void     (* lookup_async)  (GProxyResolver       *resolver,
112                               const gchar          *uri,
113                               GCancellable         *cancellable,
114                               GAsyncReadyCallback   callback,
115                               gpointer              user_data);
116
117   gchar ** (* lookup_finish) (GProxyResolver       *resolver,
118                               GAsyncResult         *result,
119                               GError              **error);
120 };
121 </pre>
122 </div>
123 <hr>
124 <div class="refsect2">
125 <a name="G-PROXY-RESOLVER-EXTENSION-POINT-NAME:CAPS"></a><h3>G_PROXY_RESOLVER_EXTENSION_POINT_NAME</h3>
126 <pre class="programlisting">#define G_PROXY_RESOLVER_EXTENSION_POINT_NAME "gio-proxy-resolver"
127 </pre>
128 <p>
129 Extension point for proxy resolving functionality.
130 See Extending GIO.
131 </p>
132 </div>
133 <hr>
134 <div class="refsect2">
135 <a name="g-proxy-resolver-get-default"></a><h3>g_proxy_resolver_get_default ()</h3>
136 <pre class="programlisting"><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="returnvalue">GProxyResolver</span></a> *    g_proxy_resolver_get_default        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
137 <p>
138 Gets the default <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> for the system.
139 </p>
140 <div class="variablelist"><table border="0">
141 <col align="left" valign="top">
142 <tbody><tr>
143 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
144 <td>the default <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
145 </td>
146 </tr></tbody>
147 </table></div>
148 <p class="since">Since 2.26</p>
149 </div>
150 <hr>
151 <div class="refsect2">
152 <a name="g-proxy-resolver-is-supported"></a><h3>g_proxy_resolver_is_supported ()</h3>
153 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            g_proxy_resolver_is_supported       (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>);</pre>
154 <p>
155 Checks if <em class="parameter"><code>resolver</code></em> can be used on this system. (This is used
156 internally; <a class="link" href="GProxyResolver.html#g-proxy-resolver-get-default" title="g_proxy_resolver_get_default ()"><code class="function">g_proxy_resolver_get_default()</code></a> will only return a proxy
157 resolver that returns <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for this method.)
158 </p>
159 <div class="variablelist"><table border="0">
160 <col align="left" valign="top">
161 <tbody>
162 <tr>
163 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
164 <td>a <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a>
165 </td>
166 </tr>
167 <tr>
168 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
169 <td>
170 <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>resolver</code></em> is supported.</td>
171 </tr>
172 </tbody>
173 </table></div>
174 <p class="since">Since 2.26</p>
175 </div>
176 <hr>
177 <div class="refsect2">
178 <a name="g-proxy-resolver-lookup"></a><h3>g_proxy_resolver_lookup ()</h3>
179 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            g_proxy_resolver_lookup             (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>,
180                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
181                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
182                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
183 <p>
184 Looks into the system proxy configuration to determine what proxy,
185 if any, to use to connect to <em class="parameter"><code>uri</code></em>. The returned proxy URIs are of the
186 form <code class="literal">&lt;protocol&gt;://[user[:password]@]host:port</code>
187 or <code class="literal">direct://</code>, where &lt;protocol&gt; could be
188 http, rtsp, socks or other proxying protocol.
189 </p>
190 <p>
191 If you don't know what network protocol is being used on the
192 socket, you should use <code class="literal">none</code> as the URI protocol.
193 In this case, the resolver might still return a generic proxy type
194 (such as SOCKS), but would not return protocol-specific proxy types
195 (such as http).
196 </p>
197 <p>
198 <code class="literal">direct://</code> is used when no proxy is needed.
199 Direct connection should not be attempted unless it is part of the
200 returned array of proxies.
201 </p>
202 <div class="variablelist"><table border="0">
203 <col align="left" valign="top">
204 <tbody>
205 <tr>
206 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
207 <td>a <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a>
208 </td>
209 </tr>
210 <tr>
211 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
212 <td>a URI representing the destination to connect to</td>
213 </tr>
214 <tr>
215 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
216 <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>
217 </td>
218 </tr>
219 <tr>
220 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
221 <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>
222 </td>
223 </tr>
224 <tr>
225 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
226 <td>A
227 NULL-terminated array of proxy URIs. Must be freed
228 with <a href="./../glib/glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
229 </td>
230 </tr>
231 </tbody>
232 </table></div>
233 <p class="since">Since 2.26</p>
234 </div>
235 <hr>
236 <div class="refsect2">
237 <a name="g-proxy-resolver-lookup-async"></a><h3>g_proxy_resolver_lookup_async ()</h3>
238 <pre class="programlisting"><span class="returnvalue">void</span>                g_proxy_resolver_lookup_async       (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>,
239                                                          <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
240                                                          <em class="parameter"><code><a class="link" href="GCancellable.html" title="GCancellable"><span class="type">GCancellable</span></a> *cancellable</code></em>,
241                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
242                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
243 <p>
244 Asynchronous lookup of proxy. See <a class="link" href="GProxyResolver.html#g-proxy-resolver-lookup" title="g_proxy_resolver_lookup ()"><code class="function">g_proxy_resolver_lookup()</code></a> for more
245 details.
246 </p>
247 <div class="variablelist"><table border="0">
248 <col align="left" valign="top">
249 <tbody>
250 <tr>
251 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
252 <td>a <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a>
253 </td>
254 </tr>
255 <tr>
256 <td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
257 <td>a URI representing the destination to connect to</td>
258 </tr>
259 <tr>
260 <td><p><span class="term"><em class="parameter"><code>cancellable</code></em> :</span></p></td>
261 <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>
262 </td>
263 </tr>
264 <tr>
265 <td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
266 <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>
267 </td>
268 </tr>
269 <tr>
270 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
271 <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>
272 </td>
273 </tr>
274 </tbody>
275 </table></div>
276 <p class="since">Since 2.26</p>
277 </div>
278 <hr>
279 <div class="refsect2">
280 <a name="g-proxy-resolver-lookup-finish"></a><h3>g_proxy_resolver_lookup_finish ()</h3>
281 <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **            g_proxy_resolver_lookup_finish      (<em class="parameter"><code><a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> *resolver</code></em>,
282                                                          <em class="parameter"><code><a class="link" href="GAsyncResult.html" title="GAsyncResult"><span class="type">GAsyncResult</span></a> *result</code></em>,
283                                                          <em class="parameter"><code><a href="./../glib/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
284 <p>
285 Call this function to obtain the array of proxy URIs when
286 <a class="link" href="GProxyResolver.html#g-proxy-resolver-lookup-async" title="g_proxy_resolver_lookup_async ()"><code class="function">g_proxy_resolver_lookup_async()</code></a> is complete. See
287 <a class="link" href="GProxyResolver.html#g-proxy-resolver-lookup" title="g_proxy_resolver_lookup ()"><code class="function">g_proxy_resolver_lookup()</code></a> for more details.
288 </p>
289 <div class="variablelist"><table border="0">
290 <col align="left" valign="top">
291 <tbody>
292 <tr>
293 <td><p><span class="term"><em class="parameter"><code>resolver</code></em> :</span></p></td>
294 <td>a <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a>
295 </td>
296 </tr>
297 <tr>
298 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
299 <td>the result passed to your <a class="link" href="GAsyncResult.html#GAsyncReadyCallback" title="GAsyncReadyCallback ()"><span class="type">GAsyncReadyCallback</span></a>
300 </td>
301 </tr>
302 <tr>
303 <td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
304 <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>
305 </td>
306 </tr>
307 <tr>
308 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
309 <td>A
310 NULL-terminated array of proxy URIs. Must be freed
311 with <a href="./../glib/glib/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span>
312 </td>
313 </tr>
314 </tbody>
315 </table></div>
316 <p class="since">Since 2.26</p>
317 </div>
318 </div>
319 </div>
320 <div class="footer">
321 <hr>
322           Generated by GTK-Doc V1.18</div>
323 </body>
324 </html>