summaryrefslogtreecommitdiffstats
path: root/sshuttle/client.py
diff options
context:
space:
mode:
authorFata Nugraha <fata.nugraha@grabtaxi.com>2023-08-04 19:50:57 +0700
committerBrian May <brian@linuxpenguins.xyz>2023-08-07 20:00:32 +1000
commit7c140daf0731887874610bc454809539828308e6 (patch)
treee56597b2ee6cabbae5bcec738b16892cb87da7cd /sshuttle/client.py
parent755e522effe2f9eb9262239fd047812a41ce25bf (diff)
Pass group to firewall
Diffstat (limited to 'sshuttle/client.py')
-rw-r--r--sshuttle/client.py14
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()