summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTianyi Cui <tianyicui@gmail.com>2011-04-19 20:19:06 +0800
committerAvery Pennarun <apenwarr@gmail.com>2012-07-06 15:13:30 -0400
commit29d2e06bf5cd3d575015e23c638ca9e5a10ee29c (patch)
treece4b5884177e4e8feee451982b841625350372dd
parentbff16100509ed94e93c0331819f1a0730fc0431a (diff)
Added --exclude-from feature.sshuttle-0.61
(Slightly modified by apenwarr)
-rw-r--r--Documentation/sshuttle.md4
-rwxr-xr-xmain.py3
2 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/sshuttle.md b/Documentation/sshuttle.md
index 59901ec..4caf6cc 100644
--- a/Documentation/sshuttle.md
+++ b/Documentation/sshuttle.md
@@ -94,6 +94,10 @@ entire subnet to the VPN.
`0/0 -x 1.2.3.0/24` to forward everything except the
local subnet over the VPN, for example.
+--exclude-from=*file*
+: exclude the subnets specified in a file, one subnet per
+ line. Useful when you have lots of subnets to exclude.
+
-v, --verbose
: print more information about the session. This option
can be used more than once for increased verbosity. By
diff --git a/main.py b/main.py
index daf3b87..34d9fb1 100755
--- a/main.py
+++ b/main.py
@@ -57,6 +57,7 @@ dns capture local DNS requests and forward to the remote DNS server
python= path to python interpreter on the remote server
r,remote= ssh hostname (and optional username) of remote sshuttle server
x,exclude= exclude this subnet (can be used more than once)
+exclude-from= exclude the subnets in a file (whitespace separated)
v,verbose increase debug message verbosity
e,ssh-cmd= the command to use to connect to the remote [ssh]
seed-hosts= with -H, use these hostnames for initial scan (comma-separated)
@@ -104,6 +105,8 @@ try:
for k,v in flags:
if k in ('-x','--exclude'):
excludes.append(v)
+ if k in ('-X', '--exclude-from'):
+ excludes += open(v).read().split()
remotename = opt.remote
if remotename == '' or remotename == '-':
remotename = None