8
8
import sys
9
9
import os
10
10
import re
11
- from sshuttle .helpers import log , debug1 , debug3 , islocal , Fatal , family_to_string , \
12
- resolvconf_nameservers
11
+ from sshuttle .helpers import log , debug1 , debug3 , islocal , \
12
+ Fatal , family_to_string
13
13
from fcntl import ioctl
14
14
from ctypes import c_char , c_uint8 , c_uint16 , c_uint32 , Union , Structure , \
15
15
sizeof , addressof , memmove
@@ -353,7 +353,7 @@ def ipfw(*args):
353
353
raise Fatal ('%r returned %d' % (argv , rv ))
354
354
355
355
356
- def do_ipfw (port , dnsport , family , subnets , udp ):
356
+ def do_ipfw (port , dnsport , nslist , family , subnets , udp ):
357
357
# IPv6 not supported
358
358
if family not in [socket .AF_INET , ]:
359
359
raise Exception (
@@ -498,24 +498,28 @@ def do_pf(port, dnsport, nslist, family, subnets, udp):
498
498
499
499
tables .append ('table <forward_subnets> {%s}' % ',' .join (includes ))
500
500
translating_rules .append (
501
- 'rdr pass on lo0 proto tcp to <forward_subnets> -> 127.0.0.1 port %r' % port )
501
+ 'rdr pass on lo0 proto tcp '
502
+ 'to <forward_subnets> -> 127.0.0.1 port %r' % port )
502
503
filtering_rules .append (
503
- 'pass out route-to lo0 inet proto tcp to <forward_subnets> keep state' )
504
+ 'pass out route-to lo0 inet proto tcp '
505
+ 'to <forward_subnets> keep state' )
504
506
505
507
if dnsport :
506
508
tables .append ('table <dns_servers> {%s}' % ',' .join (
507
509
[ns [1 ] for ns in nslist ]))
508
510
translating_rules .append (
509
- 'rdr pass on lo0 proto udp to <dns_servers> port 53 -> 127.0.0.1 port %r' % dnsport )
511
+ 'rdr pass on lo0 proto udp to '
512
+ '<dns_servers> port 53 -> 127.0.0.1 port %r' % dnsport )
510
513
filtering_rules .append (
511
- 'pass out route-to lo0 inet proto udp to <dns_servers> port 53 keep state' )
514
+ 'pass out route-to lo0 inet proto udp to '
515
+ '<dns_servers> port 53 keep state' )
512
516
513
517
rules = '\n ' .join (tables + translating_rules + filtering_rules ) + '\n '
514
518
515
519
pf_status = pfctl ('-s all' )[0 ]
516
- if not '\n rdr-anchor "sshuttle" all\n ' in pf_status :
520
+ if '\n rdr-anchor "sshuttle" all\n ' not in pf_status :
517
521
pf_add_anchor_rule (PF_RDR , "sshuttle" )
518
- if not '\n anchor "sshuttle" all\n ' in pf_status :
522
+ if '\n anchor "sshuttle" all\n ' not in pf_status :
519
523
pf_add_anchor_rule (PF_PASS , "sshuttle" )
520
524
521
525
pfctl ('-a sshuttle -f /dev/stdin' , rules )
@@ -645,7 +649,7 @@ class pfioc_natlook(Structure):
645
649
646
650
def pf_get_dev ():
647
651
global _pf_fd
648
- if _pf_fd == None :
652
+ if _pf_fd is None :
649
653
_pf_fd = os .open ('/dev/pf' , os .O_RDWR )
650
654
651
655
return _pf_fd
@@ -666,8 +670,8 @@ def pf_query_nat(family, proto, src_ip, src_port, dst_ip, dst_port):
666
670
memmove (addressof (pnl .daddr ), socket .inet_pton (pnl .af , dst_ip ), length )
667
671
pnl .dxport .port = socket .htons (dst_port )
668
672
669
- ioctl (pf_get_dev (), DIOCNATLOOK , (c_char *
670
- sizeof (pnl )).from_address (addressof (pnl )))
673
+ ioctl (pf_get_dev (), DIOCNATLOOK , (
674
+ c_char * sizeof (pnl )).from_address (addressof (pnl )))
671
675
672
676
ip = socket .inet_ntop (
673
677
pnl .af , (c_char * length ).from_address (addressof (pnl .rdaddr )))
@@ -692,12 +696,12 @@ def pf_add_anchor_rule(type, name):
692
696
memmove (addressof (pr ) + RULE_ACTION_OFFSET ,
693
697
struct .pack ('I' , type ), 4 ) # rule.action = type
694
698
695
- memmove (addressof (pr ) + ACTION_OFFSET , struct .pack ('I' ,
696
- PF_CHANGE_GET_TICKET ), 4 ) # action = PF_CHANGE_GET_TICKET
699
+ memmove (addressof (pr ) + ACTION_OFFSET , struct .pack (
700
+ 'I' , PF_CHANGE_GET_TICKET ), 4 ) # action = PF_CHANGE_GET_TICKET
697
701
ioctl (pf_get_dev (), DIOCCHANGERULE , pr )
698
702
699
- memmove (addressof (pr ) + ACTION_OFFSET , struct .pack ('I' ,
700
- PF_CHANGE_ADD_TAIL ), 4 ) # action = PF_CHANGE_ADD_TAIL
703
+ memmove (addressof (pr ) + ACTION_OFFSET , struct .pack (
704
+ 'I' , PF_CHANGE_ADD_TAIL ), 4 ) # action = PF_CHANGE_ADD_TAIL
701
705
ioctl (pf_get_dev (), DIOCCHANGERULE , pr )
702
706
703
707
@@ -709,7 +713,9 @@ def pf_add_anchor_rule(type, name):
709
713
# exit. In case that fails, it's not the end of the world; future runs will
710
714
# supercede it in the transproxy list, at least, so the leftover rules
711
715
# are hopefully harmless.
712
- def main (port_v6 , port_v4 , dnsport_v6 , dnsport_v4 , nslist , method , udp , syslog ):
716
+ def main (port_v6 , port_v4 ,
717
+ dnsport_v6 , dnsport_v4 ,
718
+ nslist , method , udp , syslog ):
713
719
assert (port_v6 >= 0 )
714
720
assert (port_v6 <= 65535 )
715
721
assert (port_v4 >= 0 )
@@ -797,14 +803,16 @@ def main(port_v6, port_v4, dnsport_v6, dnsport_v4, nslist, method, udp, syslog):
797
803
subnets_v6 = [i for i in subnets if i [0 ] == socket .AF_INET6 ]
798
804
if port_v6 :
799
805
do_wait = do_it (
800
- port_v6 , dnsport_v6 , nslist , socket .AF_INET6 , subnets_v6 , udp )
806
+ port_v6 , dnsport_v6 , nslist ,
807
+ socket .AF_INET6 , subnets_v6 , udp )
801
808
elif len (subnets_v6 ) > 0 :
802
809
debug1 ("IPv6 subnets defined but IPv6 disabled\n " )
803
810
804
811
subnets_v4 = [i for i in subnets if i [0 ] == socket .AF_INET ]
805
812
if port_v4 :
806
813
do_wait = do_it (
807
- port_v4 , dnsport_v4 , nslist , socket .AF_INET , subnets_v4 , udp )
814
+ port_v4 , dnsport_v4 , nslist ,
815
+ socket .AF_INET , subnets_v4 , udp )
808
816
elif len (subnets_v4 ) > 0 :
809
817
debug1 ('IPv4 subnets defined but IPv4 disabled\n ' )
810
818
0 commit comments