summaryrefslogtreecommitdiff
path: root/docs/setting-the-proxy.txt
blob: 74065456efb1c355d69c4b13486055d151c3a301 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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.

If the system-wide ProxyHTTP or ProxyFTP are set in PackageKit.conf then these
are used by default. If these keys are blank or not present then the session
proxy can be used. The session proxies are the values that are set in the
network proxy configuration.

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 the gpk-update-icon
process, which reads the settings from GConf, 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.