@@ -186,29 +186,34 @@ def setup_firewall(self, port, dnsport, nslist, family, subnets, udp):
186
186
# definition
187
187
for f , swidth , sexclude , snet in sorted (
188
188
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 ))
191
193
192
- tables .append ('table <forward_subnets> {%s}' % ',' .join (includes ))
194
+ tables .append (
195
+ b'table <forward_subnets> {%s}' % b',' .join (includes ))
193
196
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 )
196
199
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' )
199
202
200
203
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 ]))
203
207
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 )
206
210
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' )
209
213
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 )
212
217
213
218
pf_status = pfctl ('-s all' )[0 ]
214
219
if b'\n rdr-anchor "sshuttle" all\n ' not in pf_status :
0 commit comments