diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-07-03 22:27:16 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-07-03 22:27:16 +1200 |
commit | 9c30e2e86d162e664d4b987479bd59155c712ec7 (patch) | |
tree | 946d10067127ab591835df668f9fe307ccef9e90 /libmproxy/proxy.py | |
parent | ef986202ee7a4428274cd26c6491047daa791c5b (diff) | |
download | mitmproxy-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.py | 4 |
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: |