[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [torsocks/master] Add --address and --port for torsocks.



commit 4073958481faaf3220b09a3a499e1f104d969d29
Author: Alexander Færøy <ahf@xxxxxxx>
Date:   Mon Oct 12 23:21:25 2015 +0200

    Add --address and --port for torsocks.
    
    This patch adds two new arguments for the torsocks script: --address
    (-a), for specifying the address of the Tor instance to use, and --port
    (-P), for specifying the port of the Tor instance to use.
---
 doc/torsocks.1        |  6 ++++++
 doc/torsocks.8        |  8 ++++++++
 src/bin/torsocks.in   | 38 ++++++++++++++++++++++++++++----------
 src/common/defaults.h |  4 ++++
 src/lib/torsocks.c    | 18 +++++++++++++++++-
 5 files changed, 63 insertions(+), 11 deletions(-)

diff --git a/doc/torsocks.1 b/doc/torsocks.1
index 0e3c341..e4ac628 100644
--- a/doc/torsocks.1
+++ b/doc/torsocks.1
@@ -47,6 +47,12 @@ Set password for the SOCKS5 authentication. Use for circuit isolation in Tor.
 Note that you MUST have a username set either by the command line, environment
 variable or configuration file (torsocks.conf(5)).
 .TP
+.BR "\-a, \-\-address"
+Set Tor address.
+.TP
+.BR "\-P, \-\-port"
+Set Tor port.
+.TP
 .BR "\-i, \-\-isolate"
 Automatic tor isolation. Set the username and password for the SOCKS5
 authentication method to a PID/current time based value automatically. Username
diff --git a/doc/torsocks.8 b/doc/torsocks.8
index ac3863a..c3f477f 100644
--- a/doc/torsocks.8
+++ b/doc/torsocks.8
@@ -95,6 +95,14 @@ Set the password for the SOCKS5 authentication method. Username MUST be set
 also with the variable above.
 
 .PP
+.IP TORSOCKS_TOR_ADDRESS
+Set the Tor address. (default: 127.0.0.1)
+
+.PP
+.IP TORSOCKS_TOR_PORT
+Set the Tor port. (default: 9050)
+
+.PP
 .IP TORSOCKS_ALLOW_INBOUND
 Allow inbound connections so the application can accept and listen for
 connections.
diff --git a/src/bin/torsocks.in b/src/bin/torsocks.in
index 5102fdc..b030ad2 100644
--- a/src/bin/torsocks.in
+++ b/src/bin/torsocks.in
@@ -140,16 +140,18 @@ usage ()
 	echo "usage: $0 command args"
 	echo ""
 	echo "Options:"
-	echo "  -h, --help      Show this help"
-	echo "      --shell     Spawn a torified shell"
-	echo "      --version   Show version"
-	echo "  -d, --debug     Set debug mode."
-	echo "  -u, --user NAME Username for the SOCKS5 authentication"
-	echo "  -p, --pass NAME Password for the SOCKS5 authentication"
-	echo "  -i, --isolate   Automatic tor isolation. Can't be used with -u/-p"
-	echo "  on, off         Set/Unset your shell to use Torsocks by default"
-	echo "                  Make sure to source the call when using this option. (See Examples)"
-	echo "  show, sh        Show the current value of the LD_PRELOAD"
+	echo "  -h, --help         Show this help"
+	echo "      --shell        Spawn a torified shell"
+	echo "      --version      Show version"
+	echo "  -d, --debug        Set debug mode."
+	echo "  -u, --user NAME    Username for the SOCKS5 authentication"
+	echo "  -p, --pass NAME    Password for the SOCKS5 authentication"
+	echo "  -i, --isolate      Automatic tor isolation. Can't be used with -u/-p"
+	echo "  -a, --address HOST Specify Tor address"
+	echo "  -P, --port PORT    Specify Tor port"
+	echo "  on, off            Set/Unset your shell to use Torsocks by default"
+	echo "                     Make sure to source the call when using this option. (See Examples)"
+	echo "  show, sh           Show the current value of the LD_PRELOAD"
 	echo ""
 	echo "Examples:"
 	echo ""
@@ -230,6 +232,22 @@ do
 			export TORSOCKS_PASSWORD=$2
 			shift
 			;;
+		-a|--address)
+			if [ -z $2 ]; then
+				echo "Missing address to -a" >&2
+				exit 1
+			fi
+			export TORSOCKS_TOR_ADDRESS=$2
+			shift
+			;;
+		-P|--port)
+			if [ -z $2 ]; then
+				echo "Missing port to -P" >&2
+				exit 1
+			fi
+			export TORSOCKS_TOR_PORT=$2
+			shift
+			;;
 		-i|--isolate)
 			export TORSOCKS_ISOLATE_PID=1
 			;;
diff --git a/src/common/defaults.h b/src/common/defaults.h
index ab51690..958e7cd 100644
--- a/src/common/defaults.h
+++ b/src/common/defaults.h
@@ -63,6 +63,10 @@
 #define DEFAULT_SOCKS5_USER_ENV     "TORSOCKS_USERNAME"
 #define DEFAULT_SOCKS5_PASS_ENV     "TORSOCKS_PASSWORD"
 
+/* Env. variable for Tor hostname and port. */
+#define DEFAULT_TOR_ADDRESS_ENV     "TORSOCKS_TOR_ADDRESS"
+#define DEFAULT_TOR_PORT_ENV        "TORSOCKS_TOR_PORT"
+
 /* Control if torsocks allows inbound connection or not. */
 #define DEFAULT_ALLOW_INBOUND_ENV   "TORSOCKS_ALLOW_INBOUND"
 
diff --git a/src/lib/torsocks.c b/src/lib/torsocks.c
index 7944e57..731b33c 100644
--- a/src/lib/torsocks.c
+++ b/src/lib/torsocks.c
@@ -75,7 +75,7 @@ static void clean_exit(int status)
 static void read_env(void)
 {
 	int ret;
-	const char *username, *password, *allow_in, *isolate_pid;
+	const char *username, *password, *allow_in, *isolate_pid, *tor_address, *tor_port;
 
 	if (is_suid) {
 		goto end;
@@ -97,6 +97,22 @@ static void read_env(void)
 		}
 	}
 
+	tor_address = getenv(DEFAULT_TOR_ADDRESS_ENV);
+	if (tor_address) {
+		ret = conf_file_set_tor_address(tor_address, &tsocks_config);
+		if (ret < 0) {
+			goto error;
+		}
+	}
+
+	tor_port = getenv(DEFAULT_TOR_PORT_ENV);
+	if (tor_port) {
+		ret = conf_file_set_tor_port(tor_port, &tsocks_config);
+		if (ret < 0) {
+			goto error;
+		}
+	}
+
 	username = getenv(DEFAULT_SOCKS5_USER_ENV);
 	password = getenv(DEFAULT_SOCKS5_PASS_ENV);
 	if (!username && !password) {



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits