1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
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">
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">
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>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GProxyResolver.synopsis" class="shortcut">Top</a>
26 <a href="#GProxyResolver.description" class="shortcut">Description</a>
28 <a href="#GProxyResolver.object-hierarchy" class="shortcut">Object Hierarchy</a>
30 <a href="#GProxyResolver.prerequisites" class="shortcut">Prerequisites</a>
33 <div class="refentry">
34 <a name="GProxyResolver"></a><div class="titlepage"></div>
35 <div class="refnamediv"><table width="100%"><tr>
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>
40 <td valign="top" align="right"></td>
42 <div class="refsynopsisdiv">
43 <a name="GProxyResolver.synopsis"></a><h2>Synopsis</h2>
44 <pre class="synopsis">
45 #include <gio/gio.h>
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>);
66 <div class="refsect1">
67 <a name="GProxyResolver.object-hierarchy"></a><h2>Object Hierarchy</h2>
68 <pre class="synopsis">
73 <div class="refsect1">
74 <a name="GProxyResolver.prerequisites"></a><h2>Prerequisites</h2>
76 GProxyResolver requires
77 <a href="./../gobject/gobject/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
79 <div class="refsect1">
80 <a name="GProxyResolver.description"></a><h2>Description</h2>
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>.
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>
93 A helper class to enumerate proxies base on URI.
95 <p class="since">Since 2.26</p>
98 <div class="refsect2">
99 <a name="GProxyResolverInterface"></a><h3>struct GProxyResolverInterface</h3>
100 <pre class="programlisting">struct GProxyResolverInterface {
101 GTypeInterface g_iface;
104 gboolean (* is_supported) (GProxyResolver *resolver);
106 gchar ** (* lookup) (GProxyResolver *resolver,
108 GCancellable *cancellable,
111 void (* lookup_async) (GProxyResolver *resolver,
113 GCancellable *cancellable,
114 GAsyncReadyCallback callback,
117 gchar ** (* lookup_finish) (GProxyResolver *resolver,
118 GAsyncResult *result,
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"
129 Extension point for proxy resolving functionality.
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>
138 Gets the default <a class="link" href="GProxyResolver.html" title="GProxyResolver"><span class="type">GProxyResolver</span></a> for the system.
140 <div class="variablelist"><table border="0">
141 <col align="left" valign="top">
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>
148 <p class="since">Since 2.26</p>
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>
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.)
159 <div class="variablelist"><table border="0">
160 <col align="left" valign="top">
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>
168 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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>
174 <p class="since">Since 2.26</p>
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>
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"><protocol>://[user[:password]@]host:port</code>
187 or <code class="literal">direct://</code>, where <protocol> could be
188 http, rtsp, socks or other proxying protocol.
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
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.
202 <div class="variablelist"><table border="0">
203 <col align="left" valign="top">
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>
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>
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>
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>
225 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
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>
233 <p class="since">Since 2.26</p>
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>
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
247 <div class="variablelist"><table border="0">
248 <col align="left" valign="top">
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>
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>
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>
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>
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>
276 <p class="since">Since 2.26</p>
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>
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.
289 <div class="variablelist"><table border="0">
290 <col align="left" valign="top">
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>
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>
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>
308 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
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>
316 <p class="since">Since 2.26</p>
322 Generated by GTK-Doc V1.18</div>