Interface

GioProxy

since: 2.26

Description

interface Gio.Proxy : GObject.Object

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().

Available since: 2.26

Prerequisite

In order to implement Proxy, your type must inherit fromGObject.

Functions

g_proxy_get_default_for_protocol

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

since: 2.26

Instance methods

g_proxy_connect

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.

since: 2.26

g_proxy_connect_async

Asynchronous version of g_proxy_connect().

since: 2.26

g_proxy_connect_finish

See g_proxy_connect().

since: 2.26

g_proxy_supports_hostname

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 g_proxy_connect() or g_proxy_connect_async().

since: 2.26

Interface structure

struct GioProxyInterface {
  GTypeInterface g_iface;
  GIOStream* (* connect) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GError** error
  );
  void (* connect_async) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GIOStream* (* connect_finish) (
    GProxy* proxy,
    GAsyncResult* result,
    GError** error
  );
  gboolean (* supports_hostname) (
    GProxy* proxy
  );
  
}

Provides an interface for handling proxy connection and payload.

Interface members
g_iface
GTypeInterface
 

The parent interface.

connect
GIOStream* (* connect) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GError** error
  )
 No description available.
connect_async
void (* connect_async) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 No description available.
connect_finish
GIOStream* (* connect_finish) (
    GProxy* proxy,
    GAsyncResult* result,
    GError** error
  )
 No description available.
supports_hostname
gboolean (* supports_hostname) (
    GProxy* proxy
  )
 No description available.

Virtual methods

Gio.Proxy.connect

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.

since: 2.26

Gio.Proxy.connect_async

Asynchronous version of g_proxy_connect().

since: 2.26

Gio.Proxy.connect_finish

See g_proxy_connect().

since: 2.26

Gio.Proxy.supports_hostname

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 g_proxy_connect() or g_proxy_connect_async().

since: 2.26