Picking up GNOME proxy settings

Porting applications to use DConf proxy settings

In GNOME 3, proxy configuration moved to the GSettings/dconf keys under org.gnome.system.proxy. You can examine them with the gsettings tool:

$ gsettings list-recursively org.gnome.system.proxy
org.gnome.system.proxy autoconfig-url ''
org.gnome.system.proxy ignore-hosts ['localhost', '127.0.0.0/8']
org.gnome.system.proxy mode 'none'
org.gnome.system.proxy use-same-proxy true
org.gnome.system.proxy.ftp host ''
org.gnome.system.proxy.ftp port 0
org.gnome.system.proxy.http authentication-password ''
org.gnome.system.proxy.http authentication-user ''
org.gnome.system.proxy.http enabled false
org.gnome.system.proxy.http host ''
org.gnome.system.proxy.http port 8080
org.gnome.system.proxy.http use-authentication false
org.gnome.system.proxy.https host ''
org.gnome.system.proxy.https port 0
org.gnome.system.proxy.socks host ''
org.gnome.system.proxy.socks port 0

Porting

The best tool to use is the GProxyResolver API from GIO, introduced in GLib 2.26.

You might also choose to use the GSettings API directly, or call out to the gsettings tool as an external process. Bug 648237 gives more information on how the values should be interpreted. If you use the gsettings tool (which, for the record, we don't recommend), note that its output always includes quotes around string values:

$ gsettings get org.gnome.system.proxy.http host
'127.0.0.1'

At a higher level, the GIO networking APIs such as GSocketClient do this automatically.