[Pkg-privacy-commits] [onioncat] 305/340: add option argument 'none' to -t and -l to disable incoming/outgoind sessions
Ximin Luo
infinity0 at moszumanska.debian.org
Sat Aug 22 13:04:51 UTC 2015
This is an automated email from the git hooks/post-receive script.
infinity0 pushed a commit to branch debian
in repository onioncat.
commit 250efeed39115f05382d096e82269b7b35546649
Author: eagle <eagle at 58e1ccc2-750e-0410-8d0d-f93ca75ab447>
Date: Thu Jul 4 11:25:47 2013 +0000
add option argument 'none' to -t and -l to disable incoming/outgoind sessions
git-svn-id: https://www.cypherpunk.at/svn/onioncat/trunk@557 58e1ccc2-750e-0410-8d0d-f93ca75ab447
---
man/ocat.1 | 8 +++++++-
src/ocat.c | 23 ++++++++++++++++++-----
src/ocatroute.c | 2 +-
src/ocatsocks.c | 4 ++++
4 files changed, 30 insertions(+), 7 deletions(-)
diff --git a/man/ocat.1 b/man/ocat.1
index ffbe7ca..d6170b0 100644
--- a/man/ocat.1
+++ b/man/ocat.1
@@ -104,8 +104,11 @@ with the command name \fBgcat\fP.
.TP
\fB\-l\fP \fI[ip:]port\fP
Bind Onioncat to specific \fIip \fP and/or \fIport\fP number for incoming
-connections. This defaults to 127.0.0.1:8060. This option could be set
+connections. It defaults to 127.0.0.1:8060. This option could be set
multiple times. IPv6 addresses must be given in square brackets.
+.br
+The parameter \fI"none"\fP deactivates the listener completely. This is for
+special purpose only and shall not be used in regular operation.
.TP
\fB\-L\fP \fIlog_file\fP
Log output to \fIlog_file\fP. If option is omitted, OnionCat logs to syslog if
@@ -149,6 +152,9 @@ not be changed.
Set Tor SOCKS \fIIP\fP and/or \fIport\fP. If no \fIIP\fP is specified 127.0.0.1
will be used, if no \fIport\fP is specified 9050 will be used as defaults. IPv6
addresses must be escaped by square brackets.
+.br
+The special parameter \fI"none"\fP disables OnionCat from making outbound
+connections. This shall be used only in special test scenarios.
.TP
\fB\-T\fP \fItun_dev\fP
TUN device file to open for creation of TUN interface. It defaults to
diff --git a/src/ocat.c b/src/ocat.c
index 69936e0..d925af7 100644
--- a/src/ocat.c
+++ b/src/ocat.c
@@ -370,7 +370,12 @@ int parse_opt(int argc, char *argv[])
break;
case 'l':
- add_listener(optarg);
+ if (CNF(oc_listen_cnt) == -1)
+ break;
+ if (!strcasecmp(optarg, "none"))
+ CNF(oc_listen_cnt) = -1;
+ else
+ add_listener(optarg);
break;
case 'L':
@@ -410,7 +415,9 @@ int parse_opt(int argc, char *argv[])
break;
case 't':
- if (strsockaddr(optarg, (struct sockaddr*) CNF(socks_dst)) == -1)
+ if (!strcasecmp(optarg, "none"))
+ CNF(socks_dst)->sin_family = 0;
+ else if (strsockaddr(optarg, (struct sockaddr*) CNF(socks_dst)) == -1)
exit(1);
break;
@@ -583,13 +590,16 @@ int main(int argc, char *argv[])
if (CNF(create_pid_file))
mk_pid_file();
- if (!CNF(oc_listen))
+ if (!CNF(oc_listen_cnt))
add_listener(def);
// start socket receiver thread
run_ocat_thread("receiver", socket_receiver, NULL);
// create listening socket and start socket acceptor
- run_ocat_thread("acceptor", socket_acceptor, NULL);
+ if (CNF(oc_listen_cnt) > 0)
+ run_ocat_thread("acceptor", socket_acceptor, NULL);
+ else
+ log_msg(LOG_INFO, "acceptor not started");
// starting socket cleaner
run_ocat_thread("cleaner", socket_cleaner, NULL);
@@ -627,7 +637,10 @@ int main(int argc, char *argv[])
// create socks connector thread and communication queue
if (pipe(CNF(socksfd)) == -1)
log_msg(LOG_EMERG, "couldn't create socks connector pipe: \"%s\"", strerror(errno)), exit(1);
- run_ocat_thread("connector", socks_connector_sel, NULL);
+ if (CNF(socks_dst)->sin_family)
+ run_ocat_thread("connector", socks_connector_sel, NULL);
+ else
+ log_msg(LOG_INFO, "connector not started");
#ifdef PACKET_QUEUE
// start packet dequeuer
diff --git a/src/ocatroute.c b/src/ocatroute.c
index fbbf682..fd9bb78 100644
--- a/src/ocatroute.c
+++ b/src/ocatroute.c
@@ -984,7 +984,7 @@ void *socket_cleaner(void *ptr)
if (act_time - stat_wup >= STAT_WAKEUP)
{
stat_wup = act_time;
- log_msg(LOG_INFO, "stats: ... (not implemented yet)");
+ //log_msg(LOG_INFO, "stats: ... (not implemented yet)");
lock_setup();
if (CNF(clear_stats))
diff --git a/src/ocatsocks.c b/src/ocatsocks.c
index 448064f..f9c69fd 100644
--- a/src/ocatsocks.c
+++ b/src/ocatsocks.c
@@ -220,6 +220,10 @@ void socks_queue(struct in6_addr addr, int perm)
{
SocksQueue_t *squeue, sq;
+ // dont queue if SOCKS is disabled (-t none)
+ if (!CNF(socks_dst)->sin_family)
+ return;
+
for (squeue = socks_queue_; squeue; squeue = squeue->next)
if (IN6_ARE_ADDR_EQUAL(&squeue->addr, &addr))
break;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-privacy/packages/onioncat.git
More information about the Pkg-privacy-commits
mailing list