summaryrefslogtreecommitdiffstats
path: root/sshuttle/methods/pf.py
diff options
context:
space:
mode:
authorBrian May <brian@linuxpenguins.xyz>2015-12-05 20:21:36 +1100
committerBrian May <brian@linuxpenguins.xyz>2015-12-05 20:21:36 +1100
commita3fbf860ff0d676fe0cb73325b4487ba3ca31d78 (patch)
treef660a4d142bb33ecb7cad5362b5befdef9cd6bbc /sshuttle/methods/pf.py
parent7a9e36d211bdc76c08353774df515ae4ce1c65ac (diff)
Fix more MacOSX/Python3.5 issues.
Diffstat (limited to 'sshuttle/methods/pf.py')
-rw-r--r--sshuttle/methods/pf.py35
1 files changed, 20 insertions, 15 deletions
diff --git a/sshuttle/methods/pf.py b/sshuttle/methods/pf.py
index 8b68101..e988531 100644
--- a/sshuttle/methods/pf.py
+++ b/sshuttle/methods/pf.py
@@ -186,29 +186,34 @@ class Method(BaseMethod):
# definition
for f, swidth, sexclude, snet in sorted(
subnets, key=lambda s: (s[1], s[2]), reverse=True):
- includes.append("%s%s/%s" %
- ("!" if sexclude else "", snet, swidth))
+ includes.append(b"%s%s/%d" %
+ (b"!" if sexclude else b"",
+ snet.encode("ASCII"),
+ swidth))
- tables.append('table <forward_subnets> {%s}' % ','.join(includes))
+ tables.append(
+ b'table <forward_subnets> {%s}' % b','.join(includes))
translating_rules.append(
- 'rdr pass on lo0 proto tcp '
- 'to <forward_subnets> -> 127.0.0.1 port %r' % port)
+ b'rdr pass on lo0 proto tcp '
+ b'to <forward_subnets> -> 127.0.0.1 port %r' % port)
filtering_rules.append(
- 'pass out route-to lo0 inet proto tcp '
- 'to <forward_subnets> keep state')
+ b'pass out route-to lo0 inet proto tcp '
+ b'to <forward_subnets> keep state')
if dnsport:
- tables.append('table <dns_servers> {%s}' % ','.join(
- [ns[1] for ns in nslist]))
+ tables.append(
+ b'table <dns_servers> {%s}' %
+ b','.join([ns[1].encode("ASCII") for ns in nslist]))
translating_rules.append(
- 'rdr pass on lo0 proto udp to '
- '<dns_servers> port 53 -> 127.0.0.1 port %r' % dnsport)
+ b'rdr pass on lo0 proto udp to '
+ b'<dns_servers> port 53 -> 127.0.0.1 port %r' % dnsport)
filtering_rules.append(
- 'pass out route-to lo0 inet proto udp to '
- '<dns_servers> port 53 keep state')
+ b'pass out route-to lo0 inet proto udp to '
+ b'<dns_servers> port 53 keep state')
- rules = '\n'.join(tables + translating_rules + filtering_rules) \
- + '\n'
+ rules = b'\n'.join(tables + translating_rules + filtering_rules) \
+ + b'\n'
+ assert isinstance(rules, bytes)
pf_status = pfctl('-s all')[0]
if b'\nrdr-anchor "sshuttle" all\n' not in pf_status: