From: Michael Tremer Date: Wed, 31 Jul 2013 10:52:26 +0000 (+0200) Subject: tor: Add torctrl binary. X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=27cb780589dd7436f16f68b12694898a171b3829 tor: Add torctrl binary. --- diff --git a/src/initscripts/init.d/tor b/src/initscripts/init.d/tor index 6ae03130e..82dab68bd 100644 --- a/src/initscripts/init.d/tor +++ b/src/initscripts/init.d/tor @@ -35,12 +35,21 @@ case "${1}" in ${0} start ;; + reload-or-restart) + # Reload the process if it is already running. Otherwise, restart. + if pidofproc -s /usr/bin/tor; then + $0 reload + else + $0 restart + fi + ;; + status) statusproc /usr/bin/tor ;; *) - echo "Usage: ${0} {start|stop|reload|restart|status}" + echo "Usage: ${0} {start|stop|reload|restart|reload-or-restart|status}" exit 1 ;; esac diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 2ec7878b5..df5a37038 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -33,7 +33,7 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \ redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \ smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \ setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes \ - getconntracktable wirelessclient dnsmasqctrl + getconntracktable wirelessclient dnsmasqctrl torctrl SUID_UPDX = updxsetperms install : all @@ -164,3 +164,6 @@ wirelessclient: wirelessclient.c setuid.o ../install+setup/libsmooth/varval.o dnsmasqctrl: dnsmasqctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ dnsmasqctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ + +torctrl: toctrl.c setuid.o ../install+setup/libsmooth/varval.o + $(COMPILE) -I../install+setup/libsmooth/ torctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ diff --git a/src/misc-progs/torctrl.c b/src/misc-progs/torctrl.c new file mode 100644 index 000000000..686a8da40 --- /dev/null +++ b/src/misc-progs/torctrl.c @@ -0,0 +1,32 @@ +/* This file is part of the IPFire Firewall. + * + * This program is distributed under the terms of the GNU General Public + * Licence. See the file COPYING for details. + * + */ + +#include +#include +#include +#include +#include +#include "setuid.h" + +int main(int argc, char *argv[]) { + if (!(initsetuid())) + exit(1); + + if (argc < 2) { + fprintf(stderr, "\nNo argument given.\n\ntorctrl (restart)\n\n"); + exit(1); + } + + if (strcmp(argv[1], "restart") == 0) { + safe_system("/etc/rc.d/init.d/tor reload-or-restart"); + } else { + fprintf(stderr, "\nBad argument given.\n\ntorctrl (restart)\n\n"); + exit(1); + } + + return 0; +}