From 1228b17127265d5ef1a55b8d9211bccd0fb65596 Mon Sep 17 00:00:00 2001 From: Maxwel Leite Date: Mon, 14 Apr 2014 21:50:01 -0300 Subject: [PATCH] Support to work behind a proxy Simple modification to make work behind a http proxy (without authentication). The trick is get environment variable http_proxy to make work. Requires SocksiPy module (https://pypi.python.org/pypi/SocksiPy) to work. --- cloudprint/xmpp.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cloudprint/xmpp.py b/cloudprint/xmpp.py index 59231f4..216b0b6 100644 --- a/cloudprint/xmpp.py +++ b/cloudprint/xmpp.py @@ -3,6 +3,8 @@ import socket import select import time +import os, socks +from urlparse import urlparse from collections import deque from xml.etree.ElementTree import XMLParser, TreeBuilder @@ -113,7 +115,16 @@ def connect(self, host, port, use_ssl, sasl_token): LOGGER.info("Establishing connection to xmpp server %s:%i" % (host, port)) - self._xmppsock = socket.socket() + + http_proxy = os.environ.get('http_proxy') + if http_proxy is not None: + proxy= urlparse(http_proxy) + s = socks.socksocket() + s.setproxy(socks.PROXY_TYPE_HTTP, proxy.hostname, proxy.port) + self._xmppsock = s + else: + self._xmppsock = socket.socket() + self._wrappedsock = self._xmppsock try: