diff options
author | Fata Nugraha <fata.nugraha@grabtaxi.com> | 2023-08-04 19:50:57 +0700 |
---|---|---|
committer | Brian May <brian@linuxpenguins.xyz> | 2023-08-07 20:00:32 +1000 |
commit | 7c140daf0731887874610bc454809539828308e6 (patch) | |
tree | e56597b2ee6cabbae5bcec738b16892cb87da7cd /sshuttle/client.py | |
parent | 755e522effe2f9eb9262239fd047812a41ce25bf (diff) |
Pass group to firewall
Diffstat (limited to 'sshuttle/client.py')
-rw-r--r-- | sshuttle/client.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sshuttle/client.py b/sshuttle/client.py index 25b3440..5d1d990 100644 --- a/sshuttle/client.py +++ b/sshuttle/client.py @@ -319,7 +319,7 @@ class FirewallClient: def setup(self, subnets_include, subnets_exclude, nslist, redirectport_v6, redirectport_v4, dnsport_v6, dnsport_v4, udp, - user, tmark): + user, group, tmark): self.subnets_include = subnets_include self.subnets_exclude = subnets_exclude self.nslist = nslist @@ -329,6 +329,7 @@ class FirewallClient: self.dnsport_v4 = dnsport_v4 self.udp = udp self.user = user + self.group = group self.tmark = tmark def check(self): @@ -367,9 +368,14 @@ class FirewallClient: user = bytes(self.user, 'utf-8') else: user = b'%d' % self.user - - self.pfile.write(b'GO %d %s %s %d\n' % - (udp, user, bytes(self.tmark, 'ascii'), os.getpid())) + if self.group is None: + group = b'-' + elif isinstance(self.group, str): + group = bytes(self.group, 'utf-8') + else: + group = b'%d' % self.group + self.pfile.write(b'GO %d %s %s %s %d\n' % + (udp, user, group, bytes(self.tmark, 'ascii'), os.getpid())) self.pfile.flush() line = self.pfile.readline() |