Module: Gio::Proxy

Defined in:


A #GProxy 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 g_io_extension_point_get_extension_by_name().

Instance Method Summary collapse

Instance Method Details

#connect(connection, proxy_address, cancellable) ⇒ Gio::IOStream

Given connection to communicate with a proxy (eg, a GSocket::Connection 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.



  • (Gio::IOStream)

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

#connect_async(connection, proxy_address, cancellable, callback, user_data) ⇒ nil

Asynchronous version of g_proxy_connect().


  • connection (Gio::IOStream)

    a #GIOStream

  • proxy_address (Gio::ProxyAddress)

    a GProxy::Address

  • cancellable (Gio::Cancellable)

    a #GCancellable

  • callback (Gio::AsyncReadyCallback)

    a GAsync::ReadyCallback

  • user_data (GObject)

    callback data


  • (nil)

#connect_finish(result) ⇒ Gio::IOStream

See g_proxy_connect().




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 GProxy::Address containing the stringified IP address to g_proxy_connect() or g_proxy_connect_async().


  • (TrueClass)

    true if hostname resolution is supported.