Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/rpms/sugar/0064-sugar-session-export-manual-Gnome-proxy-settings-as-.patch
blob: a5aa53e8d61a0402d6dd4a8cdf6ab9daf160a6bd (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
From 005a15f4c6954d5a2d25f3762b1f702117e854e2 Mon Sep 17 00:00:00 2001
From: Jerry Vonau <jvonau@shaw.ca>
Date: Mon, 12 Dec 2011 19:09:06 +0100
Subject: [PATCH sugar 64/74] sugar-session: export manual Gnome proxy
 settings as $http_proxy

Some applications and tools and even some parts of Sugar will use the
http_proxy environment variable if set, but don't use the Gnome (GConf) proxy
settings.

After changing the GConf proxy settings, Sugar needs to be restarted for the
http_proxy environment variable to be updated.

[factored out into separate function; some clean-ups; added description]
Signed-off-by: Sascha Silbe <silbe@activitycentral.com>
---
 bin/sugar-session |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)

diff --git a/bin/sugar-session b/bin/sugar-session
index ee0048d..7eaa8f1 100755
--- a/bin/sugar-session
+++ b/bin/sugar-session
@@ -2,6 +2,7 @@
 # Copyright (C) 2006, Red Hat, Inc.
 # Copyright (C) 2009, One Laptop Per Child Association Inc
 # Copyright (C) 2010, Plan Ceibal <comunidad@plan.ceibal.edu.uy>
+# Copyright (C) 2011, OLPC-AU.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -211,6 +212,30 @@ def setup_accessibility_cb():
     accessibility_manager = accessibility.AccessibilityManager()
     accessibility_manager.setup_accessibility()
 
+
+def export_proxy_settings():
+    """Export manual proxy settings from GConf as environment variables
+
+    Some applications and tools and even some parts of Sugar will use
+    the http_proxy environment variable if set, but don't use the Gnome
+    (GConf) proxy settings.
+    """
+    client = gconf.client_get_default()
+    if client.get_string('/system/proxy/mode') != 'manual':
+        return
+
+    http_host = client.get_string('/system/http_proxy/host')
+    http_port = client.get_int('/system/http_proxy/port')
+    use_auth = client.get_bool('/system/http_proxy/use_authentication')
+    proxy_info = '%s:%d' % (http_host, http_port)
+    if use_auth:
+        user = client.get_string('/system/http_proxy/authentication_user')
+        pword = client.get_string('/system/http_proxy/authentication_password')
+        proxy_info = '%s:%s@%s' % (user, pword, proxy_info)
+
+    os.environ['http_proxy'] = 'http://%s/' % proxy_info
+
+
 def main():
     try:
         from sugar import env
@@ -253,6 +278,7 @@ def main():
     if timezone is not None and timezone:
         os.environ['TZ'] = timezone
 
+    export_proxy_settings()
     set_fonts()
 
     # this must be added early, so that it executes and unfreezes the screen
-- 
1.7.6