aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-07-03 22:27:16 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-07-03 22:27:16 +1200
commit9c30e2e86d162e664d4b987479bd59155c712ec7 (patch)
tree946d10067127ab591835df668f9fe307ccef9e90 /libmproxy/proxy.py
parentef986202ee7a4428274cd26c6491047daa791c5b (diff)
downloadmitmproxy-9c30e2e86d162e664d4b987479bd59155c712ec7.tar.gz
mitmproxy-9c30e2e86d162e664d4b987479bd59155c712ec7.tar.bz2
mitmproxy-9c30e2e86d162e664d4b987479bd59155c712ec7.zip
Correct handing of IDNA encoding of internationalized domain names.
- Use IDNA encoding for hostnames gleaned by upstream-cert sniffing - Use IDNA decoding for URL display in mitmproxy and mitmdump.
Diffstat (limited to 'libmproxy/proxy.py')
-rw-r--r--libmproxy/proxy.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/libmproxy/proxy.py b/libmproxy/proxy.py
index d96c8df4..2294a894 100644
--- a/libmproxy/proxy.py
+++ b/libmproxy/proxy.py
@@ -238,7 +238,7 @@ class ProxyHandler(tcp.BaseHandler):
if self.config.upstream_cert:
cert = certutils.get_remote_cert(host, port, sni)
sans = cert.altnames
- host = cert.cn
+ host = cert.cn.decode("utf8").encode("idna")
ret = certutils.dummy_cert(self.config.certdir, self.config.cacert, host, sans)
time.sleep(self.config.cert_wait_time)
if not ret:
@@ -255,7 +255,7 @@ class ProxyHandler(tcp.BaseHandler):
return line
def handle_sni(self, conn):
- self.sni = conn.get_servername()
+ self.sni = conn.get_servername().decode("utf8").encode("idna")
def read_request(self, client_conn):
if self.config.transparent_proxy: