summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian May <brian@linuxpenguins.xyz>2015-12-07 07:14:26 +1100
committerBrian May <brian@linuxpenguins.xyz>2015-12-07 07:14:26 +1100
commit118171af7fe7d57fe28d27a581d92ea2e63820ae (patch)
tree8daa18728032d9fa5425347125fafa250c8f156b
parent3367124e6b3d9ef01228329fc58328ed43cce83a (diff)
Fix get_tcp_dstip with MacOSX/Python3.5
-rw-r--r--sshuttle/methods/pf.py13
-rw-r--r--sshuttle/tests/test_methods_pf.py4
2 files changed, 9 insertions, 8 deletions
diff --git a/sshuttle/methods/pf.py b/sshuttle/methods/pf.py
index 2c1fcf6..d5357c5 100644
--- a/sshuttle/methods/pf.py
+++ b/sshuttle/methods/pf.py
@@ -156,14 +156,15 @@ class Method(BaseMethod):
proxy = sock.getsockname()
argv = (sock.family, socket.IPPROTO_TCP,
- peer[0], peer[1], proxy[0], proxy[1])
- pfile.write("QUERY_PF_NAT %d,%d,%s,%d,%s,%d\n" % argv)
+ peer[0].encode("ASCII"), peer[1],
+ proxy[0].encode("ASCII"), proxy[1])
+ pfile.write(b"QUERY_PF_NAT %d,%d,%s,%d,%s,%d\n" % argv)
pfile.flush()
line = pfile.readline()
- debug2("QUERY_PF_NAT %d,%d,%s,%d,%s,%d" % argv + ' > ' + line)
- if line.startswith('QUERY_PF_NAT_SUCCESS '):
- (ip, port) = line[21:].split(',')
- return (ip, int(port))
+ debug2(b"QUERY_PF_NAT %d,%d,%s,%d,%s,%d" % argv + b' > ' + line)
+ if line.startswith(b'QUERY_PF_NAT_SUCCESS '):
+ (ip, port) = line[21:].split(b',')
+ return (ip.decode("ASCII"), int(port))
return sock.getsockname()
diff --git a/sshuttle/tests/test_methods_pf.py b/sshuttle/tests/test_methods_pf.py
index b27b310..cb719f7 100644
--- a/sshuttle/tests/test_methods_pf.py
+++ b/sshuttle/tests/test_methods_pf.py
@@ -20,7 +20,7 @@ def test_get_tcp_dstip():
firewall = Mock()
firewall.pfile.readline.return_value = \
- "QUERY_PF_NAT_SUCCESS 127.0.0.3,1026\n"
+ b"QUERY_PF_NAT_SUCCESS 127.0.0.3,1026\n"
method = get_method('pf')
method.set_firewall(firewall)
@@ -31,7 +31,7 @@ def test_get_tcp_dstip():
call.getsockname(),
]
assert firewall.mock_calls == [
- call.pfile.write('QUERY_PF_NAT 2,6,127.0.0.1,1024,127.0.0.2,1025\n'),
+ call.pfile.write(b'QUERY_PF_NAT 2,6,127.0.0.1,1024,127.0.0.2,1025\n'),
call.pfile.flush(),
call.pfile.readline()
]