Changeset 1181:f768c6025b94
- Timestamp:
- 06/10/08 01:10:03 (6 months ago)
- Author:
- Ali Afshar <aafshar@…>
- Message:
-
Support http proxy. Fixes lp:120543
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r1170
|
r1181
|
|
| 29 | 29 | import base64 |
| 30 | 30 | import shutil |
| | 31 | import httplib |
| 31 | 32 | |
| 32 | 33 | from kiwi.ui.objectlist import Column |
| … |
… |
|
| 61 | 62 | return tab[key] |
| 62 | 63 | |
| | 64 | # http://docs.python.org/lib/xmlrpc-client-example.html |
| | 65 | class ProxiedTransport(xmlrpclib.Transport): |
| | 66 | |
| | 67 | def set_proxy(self, proxy): |
| | 68 | self.proxy = proxy |
| | 69 | |
| | 70 | def make_connection(self, host): |
| | 71 | self.realhost = host |
| | 72 | h = httplib.HTTP(self.proxy) |
| | 73 | return h |
| | 74 | |
| | 75 | def send_request(self, connection, handler, request_body): |
| | 76 | connection.putrequest("POST", 'http://%s%s' % (self.realhost, handler)) |
| | 77 | |
| | 78 | def send_host(self, connection, host): |
| | 79 | connection.putheader('Host', self.realhost) |
| | 80 | |
| | 81 | def create_transport(): |
| | 82 | if 'http_proxy' in os.environ: |
| | 83 | host = os.environ['http_proxy'] |
| | 84 | t = ProxiedTransport() |
| | 85 | t.set_proxy(host) |
| | 86 | return t |
| | 87 | else: |
| | 88 | return xmlrpclib.Transport() |
| 63 | 89 | |
| 64 | 90 | class PluginsItem(object): |
| … |
… |
|
| 185 | 211 | if self.first_start: |
| 186 | 212 | self.first_start = False |
| 187 | | gcall(self.svc.fetch_available_plugins) |
| | 213 | def _fetch(): |
| | 214 | gcall(self.svc.fetch_available_plugins) |
| | 215 | gobject.idle_add(_fetch) |
| 188 | 216 | else: |
| 189 | 217 | self.svc.update_installed_plugins() |
| … |
… |
|
| 490 | 518 | self._view.start_pulse(_('Download available plugins')) |
| 491 | 519 | try: |
| 492 | | proxy = xmlrpclib.ServerProxy(self.rpc_url) |
| | 520 | proxy = xmlrpclib.ServerProxy(self.rpc_url, |
| | 521 | transport=create_transport()) |
| 493 | 522 | plist = proxy.plugins.list({'version': PIDA_VERSION}) |
| 494 | 523 | for k in plist: |
| … |
… |
|
| 597 | 626 | data = file.read() |
| 598 | 627 | file.close() |
| 599 | | proxy = xmlrpclib.ServerProxy(self.rpc_url) |
| | 628 | proxy = xmlrpclib.ServerProxy(self.rpc_url, |
| | 629 | transport=create_transport()) |
| 600 | 630 | code = proxy.plugins.push(login, password, |
| 601 | 631 | plugin, base64.b64encode(data)) |