Gio.Proxy

g GObject.GInterface GObject.GInterface Gio.Proxy Gio.Proxy GObject.GInterface->Gio.Proxy

Implementations:
 None

Methods

class get_default_for_protocol (protocol)
  connect (connection, proxy_address, cancellable)
  connect_async (connection, proxy_address, cancellable, callback, *user_data)
  connect_finish (result)
  supports_hostname ()

Virtual Methods

  do_connect (connection, proxy_address, cancellable)
  do_connect_async (connection, proxy_address, cancellable, callback, *user_data)
  do_connect_finish (result)
  do_supports_hostname ()

Properties

None

Signals

None

Fields

None

Class Details

class Gio.Proxy
Bases:GObject.GInterface
Structure:Gio.ProxyInterface

A Gio.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.IOExtensionPoint.get_extension_by_name().

New in version 2.26.

classmethod get_default_for_protocol(protocol)[source]
Parameters:protocol (str) – the proxy protocol name (e.g. http, socks, etc)
Returns:return a Gio.Proxy or None if protocol is not supported.
Return type:Gio.Proxy

Find the gio-proxy extension point for a proxy implementation that supports the specified protocol.

New in version 2.26.

connect(connection, proxy_address, cancellable)[source]
Parameters:
Raises:

GLib.Error

Returns:

a Gio.IOStream that will replace connection. This might be the same as connection, in which case a reference will be added.

Return type:

Gio.IOStream

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

New in version 2.26.

connect_async(connection, proxy_address, cancellable, callback, *user_data)[source]
Parameters:

Asynchronous version of Gio.Proxy.connect().

New in version 2.26.

connect_finish(result)[source]
Parameters:result (Gio.AsyncResult) – a Gio.AsyncResult
Raises:GLib.Error
Returns:a Gio.IOStream.
Return type:Gio.IOStream

See Gio.Proxy.connect().

New in version 2.26.

supports_hostname()[source]
Returns:True if hostname resolution is supported.
Return type:bool

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 self is implementing such a protocol. When False is returned, the caller should resolve the destination hostname first, and then pass a Gio.ProxyAddress containing the stringified IP address to Gio.Proxy.connect() or Gio.Proxy.connect_async().

New in version 2.26.

do_connect(connection, proxy_address, cancellable) virtual
Parameters:
Returns:

a Gio.IOStream that will replace connection. This might be the same as connection, in which case a reference will be added.

Return type:

Gio.IOStream

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

New in version 2.26.

do_connect_async(connection, proxy_address, cancellable, callback, *user_data) virtual
Parameters:

Asynchronous version of Gio.Proxy.connect().

New in version 2.26.

do_connect_finish(result) virtual
Parameters:result (Gio.AsyncResult) – a Gio.AsyncResult
Returns:a Gio.IOStream.
Return type:Gio.IOStream

See Gio.Proxy.connect().

New in version 2.26.

do_supports_hostname() virtual
Returns:True if hostname resolution is supported.
Return type:bool

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 Gio.ProxyAddress containing the stringified IP address to Gio.Proxy.connect() or Gio.Proxy.connect_async().

New in version 2.26.