From d95bfe986b12022920645d5c7f60dd97ab7b3a81 Mon Sep 17 00:00:00 2001 From: ms Date: Sun, 11 Feb 2007 16:29:00 +0000 Subject: [PATCH 1/1] =?utf8?q?PPPoE=20Verbindungen=20sollten=20nun=20aus?= =?utf8?q?=20dem=20Webinterface=20aufegbaut=20werden=20k=C3=B6nnen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@409 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- config/rootfiles/common/misc-progs | 1 + html/cgi-bin/dial.cgi | 4 +-- src/misc-progs/Makefile | 6 ++++- src/misc-progs/redctrl.c | 42 ++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 src/misc-progs/redctrl.c diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 65e1920a7c..b5a0615306 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -12,6 +12,7 @@ usr/local/bin/logwatch usr/local/bin/openvpnctrl usr/local/bin/qosctrl usr/local/bin/rebuildhosts +usr/local/bin/redctrl usr/local/bin/restartapplejuice usr/local/bin/restartdhcp usr/local/bin/restartntpd diff --git a/html/cgi-bin/dial.cgi b/html/cgi-bin/dial.cgi index 8ca13846ba..05b005b6c7 100644 --- a/html/cgi-bin/dial.cgi +++ b/html/cgi-bin/dial.cgi @@ -60,10 +60,10 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'}) } if ($cgiparams{'ACTION'} eq $Lang::tr{'dial'}) { - system('/etc/rc.d/init.d/red','start') == 0 + system('/usr/local/bin/redctrl','start') == 0 or &General::log("Dial failed: $?"); } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'hangup'}) { - system('/etc/rc.d/init.d/red','stop') == 0 + system('/usr/local/bin/redctrl','stop') == 0 or &General::log("Hangup failed: $?"); } sleep 1; diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index 28ea7cf583..ef1f360938 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -10,7 +10,8 @@ SUID_PROGS = setdmzholes setportfw setfilters setxtaccess restartdhcp restartsno setaliases ipfirebackup restartntpd \ restartapplejuice setdate rebuildhosts \ restartsyslogd logwatch openvpnctrl timecheckctrl \ - restartwireless getipstat qosctrl launch-ether-wake + restartwireless getipstat qosctrl launch-ether-wake \ + redctrl install : all install -m 755 $(PROGS) /usr/local/bin @@ -42,6 +43,9 @@ openvpnctrl: openvpnctrl.c setuid.o ../install+setup/libsmooth/varval.o qosctrl: qosctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ qosctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ +redctrl: redctrl.c setuid.o ../install+setup/libsmooth/varval.o + $(COMPILE) -I../install+setup/libsmooth/ redctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ + launch-ether-wake: launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ launch-ether-wake.c setuid.o ../install+setup/libsmooth/varval.o -o $@ diff --git a/src/misc-progs/redctrl.c b/src/misc-progs/redctrl.c new file mode 100644 index 0000000000..4ef5f33e53 --- /dev/null +++ b/src/misc-progs/redctrl.c @@ -0,0 +1,42 @@ +/* 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 +#include "setuid.h" + +int main(int argc, char *argv[]) { + + if (!(initsetuid())) + exit(1); + + if (argc < 2) { + fprintf(stderr, "\nNo argument given.\n\nredctrl (start|stop|restart|clear)\n\n"); + exit(1); + } + + if (strcmp(argv[1], "start") == 0) { + safe_system("/etc/rc.d/init.d/red start"); + } else if (strcmp(argv[1], "stop") == 0) { + safe_system("/etc/rc.d/init.d/red stop"); + } else if (strcmp(argv[1], "restart") == 0) { + safe_system("/etc/rc.d/init.d/red stop"); + safe_system("sleep 3"); + safe_system("/etc/rc.d/init.d/red start"); + } else if (strcmp(argv[1], "clear") == 0) { + safe_system("/etc/rc.d/init.d/red clear"); + } else { + fprintf(stderr, "\nBad argument given.\n\nredctrl (start|stop|restart|clear)\n\n"); + exit(1); + } + + return 0; +} -- 2.39.2