[Phonehome-commits] r64 - trunk/frontend/src
pamadio at garage.maemo.org
pamadio at garage.maemo.org
Sat Oct 18 23:33:40 EEST 2008
Author: pamadio
Date: 2008-10-18 23:33:39 +0300 (Sat, 18 Oct 2008)
New Revision: 64
Modified:
trunk/frontend/src/phonehome-gui
Log:
front end works with http manual proxy
Modified: trunk/frontend/src/phonehome-gui
===================================================================
--- trunk/frontend/src/phonehome-gui 2008-10-18 19:45:43 UTC (rev 63)
+++ trunk/frontend/src/phonehome-gui 2008-10-18 20:33:39 UTC (rev 64)
@@ -27,10 +27,22 @@
import xmlrpclib
import conic
import dbus
+import httplib
_ = gettext.gettext
+class ProxiedTransport(xmlrpclib.Transport):
+ def set_proxy(self, proxy):
+ self.proxy = proxy
+ def make_connection(self, host):
+ self.realhost = host
+ h = httplib.HTTP(self.proxy)
+ return h
+ def send_request(self, connection, handler, request_body):
+ connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler))
+ def send_host(self, connection, host):
+ connection.putheader('Host', self.realhost)
+
-
class phonehome_frontend(hildon.Program):
def __init__(self):
self.program=hildon.Program()
@@ -42,8 +54,11 @@
self.connection = conic.Connection()
self.connection.connect("connection-event", self.connection_cb)
self.connection.set_property("automatic-connection-events", True)
- self.http_proxy=None
- self.https_proxy=None
+ self.proxy_mode=conic.PROXY_MODE_NONE
+ self.http_proxy=False
+ self.https_proxy=False
+ self.http_proxy_port=0
+ self.https_proxy_port=0
self.gconf_default=gconf.client_get_default()
self.gconf_root="/apps/osso/phonehome"
@@ -114,8 +129,20 @@
passw=self.password_entry.get_text()
server_url=self.server_entry.get_text()
print id,passw,server_url
- try:
+ print "proxy_mode=",self.proxy_mode
+
+
+ if self.proxy_mode==conic.PROXY_MODE_NONE:
server=xmlrpclib.ServerProxy(server_url)
+ elif self.proxy_mode==conic.PROXY_MODE_MANUAL:
+ p = ProxiedTransport()
+ p.set_proxy("%s:%s"%(self.http_proxy,self.http_proxy_port))
+ server=xmlrpclib.ServerProxy(server_url,transport=p)
+ else:
+ sysnote.system_note_infoprint(_("Automatic proxy mode not supported"))
+ return
+
+ try:
sysnote=osso.SystemNote(self.osso_context)
if(server.test_login(id,passw)):
msg=_("Connection successfull")
@@ -125,15 +152,27 @@
msg=_("Connection failed")
sysnote.system_note_infoprint(msg)
+
def connection_cb(self,connection, event):
status = event.get_status()
if status == conic.STATUS_CONNECTED:
+ self.proxy_mode=self.connection.get_proxy_mode()
+
print "on est connecte"
- self.http_proxy=self.connection.get_proxy_host(conic.PROXY_PROTOCOL_HTTP)
- self.https_proxy=self.connection.get_proxy_host(conic.PROXY_PROTOCOL_HTTPS)
+ if self.proxy_mode==conic.PROXY_MODE_MANUAL:
+ self.http_proxy=self.connection.get_proxy_host(conic.PROXY_PROTOCOL_HTTP)
+ self.http_proxy_port=self.connection.get_proxy_port(conic.PROXY_PROTOCOL_HTTP)
+ self.https_proxy=self.connection.get_proxy_host(conic.PROXY_PROTOCOL_HTTPS)
+ self.https_proxy_port=self.connection.get_proxy_port(conic.PROXY_PROTOCOL_HTTPS)
+ else:
+ self.http_proxy=False
+ self.https_proxy=False
+ self.http_proxy_port=0
+ self.https_proxy=0
+
print "proxy=",self.http_proxy
-
+ print "port=",self.http_proxy_port
"""
locale.setlocale(locale.LC_ALL, "fr_FR")
os.environ["LANGUAGE"]="fr_FR"
More information about the Phonehome-commits
mailing list