Ended core 5 and started core 6
[people/pmueller/ipfire-2.x.git] / src / misc-progs / qosctrl.c
1 /* This file is part of the IPFire Firewall.
2  *
3  * This program is distributed under the terms of the GNU General Public
4  * Licence.  See the file COPYING for details.
5  *
6  */
7
8 #include <stdlib.h>
9 #include <stdio.h>
10 #include <string.h>
11 #include <unistd.h>
12 #include <sys/types.h>
13 #include <fcntl.h>
14 #include "setuid.h"
15
16 int main(int argc, char *argv[]) {
17
18         int fd = -1;
19
20         if (!(initsetuid()))
21                 exit(1);
22
23         if (argc < 2) {
24                 fprintf(stderr, "\nNo argument given.\n\nqosctrl (start|stop|restart|status|generate)\n\n");
25                 exit(1);
26         }
27
28         if (strcmp(argv[1], "generate") == 0) {
29                 safe_system("/usr/bin/perl /var/ipfire/qos/bin/makeqosscripts.pl > /var/ipfire/qos/bin/qos.sh");
30         }
31
32         if ((fd = open("/var/ipfire/qos/bin/qos.sh", O_RDONLY)) != -1) {
33                 close(fd);
34         } else {
35                 // If there is no qos.sh do nothing.
36                 exit(0);
37         }
38
39         safe_system("chmod 755 /var/ipfire/qos/bin/qos.sh &>/dev/null");
40         if (strcmp(argv[1], "start") == 0) {
41                 safe_system("/var/ipfire/qos/bin/qos.sh start");
42         } else if (strcmp(argv[1], "stop") == 0) {
43                 safe_system("/var/ipfire/qos/bin/qos.sh clear");
44         } else if (strcmp(argv[1], "status") == 0) {
45                 safe_system("/var/ipfire/qos/bin/qos.sh status");
46         } else if (strcmp(argv[1], "restart") == 0) {
47                 safe_system("/var/ipfire/qos/bin/qos.sh restart");
48         } else {
49                 if (strcmp(argv[1], "generate") == 0) {exit(0);}
50                 fprintf(stderr, "\nBad argument given.\n\nqosctrl (start|stop|restart|status|generate)\n\n");
51                 exit(1);
52         }
53
54         return 0;
55 }