Setting the proxy:

The packagekitd daemon sets the network proxy for the packaging backend so that
packages can be downloaded when on a corporate or managed network.

The session proxy is read by a session process that is started at login time,
and then relayed to PackageKit. In GNOME, this is done by gnome-software, which
reads the settings from GSettings, and executes SetProxy on
org.freedesktop.PackageKit.

Note: this method is on the main interface, not a transaction interface. The
rationale for this is that every client using PackageKit should not have to
read and set the proxy at the start of each and every transaction, as this
would make each transaction slower to startup, and also require each client to
read and track the session proxy configuration.

To avoid this overhead, each session can register the proxy with the daemon
once, and then the daemon can remember the user identifier and the session that
it came from, and store this data in a database. When each transaction method
is executed, the uid and session that executed the call are used to lookup the
proxy settings and this is passed to the backend. This also allows the daemon to
have to correct proxy settings if the daemon times out (as it is designed to do)
and is restarted by a client application using DBus system activation.

