Skip to content

Commit a3fbf86

Browse files
committed
Fix more MacOSX/Python3.5 issues.
1 parent 7a9e36d commit a3fbf86

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

sshuttle/methods/pf.py

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -186,29 +186,34 @@ def setup_firewall(self, port, dnsport, nslist, family, subnets, udp):
186186
# definition
187187
for f, swidth, sexclude, snet in sorted(
188188
subnets, key=lambda s: (s[1], s[2]), reverse=True):
189-
includes.append("%s%s/%s" %
190-
("!" if sexclude else "", snet, swidth))
189+
includes.append(b"%s%s/%d" %
190+
(b"!" if sexclude else b"",
191+
snet.encode("ASCII"),
192+
swidth))
191193

192-
tables.append('table <forward_subnets> {%s}' % ','.join(includes))
194+
tables.append(
195+
b'table <forward_subnets> {%s}' % b','.join(includes))
193196
translating_rules.append(
194-
'rdr pass on lo0 proto tcp '
195-
'to <forward_subnets> -> 127.0.0.1 port %r' % port)
197+
b'rdr pass on lo0 proto tcp '
198+
b'to <forward_subnets> -> 127.0.0.1 port %r' % port)
196199
filtering_rules.append(
197-
'pass out route-to lo0 inet proto tcp '
198-
'to <forward_subnets> keep state')
200+
b'pass out route-to lo0 inet proto tcp '
201+
b'to <forward_subnets> keep state')
199202

200203
if dnsport:
201-
tables.append('table <dns_servers> {%s}' % ','.join(
202-
[ns[1] for ns in nslist]))
204+
tables.append(
205+
b'table <dns_servers> {%s}' %
206+
b','.join([ns[1].encode("ASCII") for ns in nslist]))
203207
translating_rules.append(
204-
'rdr pass on lo0 proto udp to '
205-
'<dns_servers> port 53 -> 127.0.0.1 port %r' % dnsport)
208+
b'rdr pass on lo0 proto udp to '
209+
b'<dns_servers> port 53 -> 127.0.0.1 port %r' % dnsport)
206210
filtering_rules.append(
207-
'pass out route-to lo0 inet proto udp to '
208-
'<dns_servers> port 53 keep state')
211+
b'pass out route-to lo0 inet proto udp to '
212+
b'<dns_servers> port 53 keep state')
209213

210-
rules = '\n'.join(tables + translating_rules + filtering_rules) \
211-
+ '\n'
214+
rules = b'\n'.join(tables + translating_rules + filtering_rules) \
215+
+ b'\n'
216+
assert isinstance(rules, bytes)
212217

213218
pf_status = pfctl('-s all')[0]
214219
if b'\nrdr-anchor "sshuttle" all\n' not in pf_status:

0 commit comments

Comments
 (0)