diff options
author | Brian May <brian@linuxpenguins.xyz> | 2015-12-07 07:14:26 +1100 |
---|---|---|
committer | Brian May <brian@linuxpenguins.xyz> | 2015-12-07 07:14:26 +1100 |
commit | 118171af7fe7d57fe28d27a581d92ea2e63820ae (patch) | |
tree | 8daa18728032d9fa5425347125fafa250c8f156b | |
parent | 3367124e6b3d9ef01228329fc58328ed43cce83a (diff) |
Fix get_tcp_dstip with MacOSX/Python3.5
-rw-r--r-- | sshuttle/methods/pf.py | 13 | ||||
-rw-r--r-- | sshuttle/tests/test_methods_pf.py | 4 |
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() ] |