gio.proxy_mixin

Module for [Proxy] interface mixin

Templates 2

tmplProxyT()

A [gio.proxy.Proxy] handles connecting to a remote host via a given type of proxy server. It is implemented by the gio-proxy extension point. The extensions are named after their proxy protocol name. As an example, a SOCKS5 proxy implementation can be retrieved with the name socks5 using the function [gio.ioextension_point.IOExtensionPoint.getExtensionByName].

Functions

Given connection to communicate with a proxy (eg, a #GSocketConnection that is connected to the proxy server), this does the necessary handshake to connect to proxy_address, and if required, wraps the #GIOStream to handle proxy payload.

Parameters

connectiona #GIOStream
proxyAddressa #GProxyAddress
cancellablea #GCancellable

Returns

a #GIOStream that will replace connection. This might

be the same as connection, in which case a reference will be added.

Throws

[ErrorWrap]
void connectAsync(gio.iostream.IOStream connection, gio.proxy_address.ProxyAddress proxyAddress, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)

Asynchronous version of [gio.proxy.Proxy.connect].

Parameters

connectiona #GIOStream
proxyAddressa #GProxyAddress
cancellablea #GCancellable
callbacka #GAsyncReadyCallback

See [gio.proxy.Proxy.connect].

Parameters

resulta #GAsyncResult

Returns

a #GIOStream.

Throws

[ErrorWrap]
bool supportsHostname()

Some proxy protocols expect to be passed a hostname, which they will resolve to an IP address themselves. Others, like SOCKS4, do not allow this. This function will return false if proxy is implementing such a protocol. When false is returned, the caller should resolve the destination hostname first, and then pass a #GProxyAddress containing the stringified IP address to [gio.proxy.Proxy.connect] or [gio.proxy.Proxy.connectAsync].

Returns

true if hostname resolution is supported.
tmplProxyGidBuilderT()