From 3ef6c343e00a6e186e1bcedad9b8bb6d3f324df9 Mon Sep 17 00:00:00 2001 From: ms Date: Mon, 4 Jun 2007 16:50:12 +0000 Subject: [PATCH] Das kleine AJAX-Bandbreitenmeter gefixt. Zeigte zu hohe Werte aufgrund eines Berechnungsfehlers an und die XML-Schnittstelle wurde nicht korrekt angesprochen. Bootsplash-Bilder entfernt. Snort-Scripte nochmal getestet. Laedt die Updates korrekt und wird auch korrekt gestartet. Snortctrl geschrieben, welche noch nicht aufgerufen wird. Grub-Patch verschoben. Clamav-Update. CDRom-Auswurf getestet. git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@606 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- .../bootsplash/config/bootsplash-1024x768.cfg | 43 --- .../bootsplash/images/bootsplash-1024x768.jpg | Bin 23991 -> 0 bytes config/bootsplash/images/silent-1024x768.jpg | Bin 83463 -> 0 bytes config/rootfiles/common/misc-progs | 2 +- doc/language_issues.de | 2 + doc/language_issues.en | 2 + doc/packages-list.txt | 1 + html/cgi-bin/speed.cgi | 4 +- html/html/themes/ipfire/include/functions.pl | 2 +- lfs/clamav | 4 +- lfs/grub | 2 +- src/initscripts/init.d/snort | 10 +- src/install+setup/install/Makefile | 3 +- src/install+setup/install/cdrom.c | 27 -- src/install+setup/install/main.c | 3 +- src/misc-progs/Makefile | 6 +- src/misc-progs/restartsnort.c | 326 ------------------ src/misc-progs/snortctrl.c | 38 ++ src/misc-progs/squidctrl.c | 2 +- .../{grub-0.97 => }/grub-gfxmenu-v8.diff | 0 20 files changed, 64 insertions(+), 413 deletions(-) delete mode 100644 config/bootsplash/config/bootsplash-1024x768.cfg delete mode 100644 config/bootsplash/images/bootsplash-1024x768.jpg delete mode 100644 config/bootsplash/images/silent-1024x768.jpg delete mode 100644 src/install+setup/install/cdrom.c delete mode 100644 src/misc-progs/restartsnort.c create mode 100644 src/misc-progs/snortctrl.c rename src/patches/{grub-0.97 => }/grub-gfxmenu-v8.diff (100%) diff --git a/config/bootsplash/config/bootsplash-1024x768.cfg b/config/bootsplash/config/bootsplash-1024x768.cfg deleted file mode 100644 index aeb4393ea1..0000000000 --- a/config/bootsplash/config/bootsplash-1024x768.cfg +++ /dev/null @@ -1,43 +0,0 @@ -# This is the configuration file for the 1024x768 bootsplash picture. -# -# This file is necessary to specify the coordinates of the text box on -# the splash screen. -# -# Comments are welcome by stepan@suse.de - -# config file version -version=3 - -# should the picture be displayed? -state=1 - -# fgcolor is the text forground color. -# bgcolor is the text background (i.e. transparent) color. -fgcolor=7 -bgcolor=0 - -# (tx, ty) are the (x, y) coordinates of the text window in pixels. -# tw/th is the width/height of the text window in pixels. -tx=5 -ty=110 -tw=1014 -th=658 - -# name of the picture file (full path recommended) -jpeg=/boot/splash/images/bootsplash-1024x768.jpg -silentjpeg=/boot/splash/images/silent-1024x768.jpg - -progress_enable=1 - -# background -box silent noover 100 700 920 730 #515151 -box silent inter 100 700 100 730 #ff0300 #fffa04 #ff0300 #fffa04 -box silent 100 700 920 730 #ff0300 #fffa04 #ff0300 #fffa04 - -# black border -box silent 100 699 920 699 #b5b5b5 -box silent 100 731 920 731 #b5b5b5 -box silent 99 699 99 731 #b5b5b5 -box silent 920 699 920 731 #b5b5b5 - -overpaintok=1 diff --git a/config/bootsplash/images/bootsplash-1024x768.jpg b/config/bootsplash/images/bootsplash-1024x768.jpg deleted file mode 100644 index 54ab11c3b8fa350e2e359e7fcf87291b98d436d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 23991 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 Sfad{5I62s>&tjmP!~X^MEv60t diff --git a/config/bootsplash/images/silent-1024x768.jpg b/config/bootsplash/images/silent-1024x768.jpg deleted file mode 100644 index 209ba2f737cad4466ba77d8abe4f94d7aae77981..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 83463 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 z zRvm*B=h(7oFE5#Im5y!$!sDgHlhw3`nA$uSL#Sba0!F_FzNn1!54J{YBH@IP=To(? zenu=|noAJ$4Sf7s*^IcoHb+TfCFgPYW@m4t>g#j73U0vxO@-r!4nZmLoEWxp7{ngO zjP*w56bRt#Q3zUG!us}|%cPWLpmfcO4)Lxh%z0 z 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 diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 6dddeb7652..009f2d4b5c 100644 --- a/config/rootfiles/common/misc-progs +++ b/config/rootfiles/common/misc-progs @@ -12,7 +12,7 @@ usr/local/bin/rebuildhosts usr/local/bin/redctrl usr/local/bin/monitorTraff #usr/local/bin/restartapplejuice -usr/local/bin/restartsnort +usr/local/bin/snortctrl usr/local/bin/restartssh usr/local/bin/restartsyslogd usr/local/bin/restartwireless diff --git a/doc/language_issues.de b/doc/language_issues.de index 4efbb96567..25a2b16b8f 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -264,6 +264,7 @@ WARNING: translation string unused: proxy no proxy local WARNING: translation string unused: psk WARNING: translation string unused: read sectors WARNING: translation string unused: reboot schedule +WARNING: translation string unused: rebooting WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: removable device advice @@ -284,6 +285,7 @@ WARNING: translation string unused: shaping list options WARNING: translation string unused: shared memory WARNING: translation string unused: shutdown control WARNING: translation string unused: shutdown2 +WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload WARNING: translation string unused: squid extension methods diff --git a/doc/language_issues.en b/doc/language_issues.en index 6e10c72ec6..cff2b821c7 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -273,6 +273,7 @@ WARNING: translation string unused: psk WARNING: translation string unused: quick control WARNING: translation string unused: read sectors WARNING: translation string unused: reboot schedule +WARNING: translation string unused: rebooting WARNING: translation string unused: refresh update list WARNING: translation string unused: released WARNING: translation string unused: reportfile @@ -292,6 +293,7 @@ WARNING: translation string unused: show areas WARNING: translation string unused: show lines WARNING: translation string unused: shutdown control WARNING: translation string unused: shutdown2 +WARNING: translation string unused: shutting down WARNING: translation string unused: sitekeyfile WARNING: translation string unused: smbreload WARNING: translation string unused: squid extension methods diff --git a/doc/packages-list.txt b/doc/packages-list.txt index 84de4ab9ff..e609565440 100644 --- a/doc/packages-list.txt +++ b/doc/packages-list.txt @@ -54,6 +54,7 @@ * cdrtools-2.01 * cftp-0.12 * clamav-0.90.2 +* clamav-0.90.3 * coreutils-5.96 * cpio-2.6 * cups-1.2.2 diff --git a/html/cgi-bin/speed.cgi b/html/cgi-bin/speed.cgi index 3436dd3b3a..951fe843d0 100644 --- a/html/cgi-bin/speed.cgi +++ b/html/cgi-bin/speed.cgi @@ -52,10 +52,10 @@ if(( $rxb_diff == $rxb_now ) && ( $txb_diff == $txb_now )) else { $rx_kbs = $rxb_diff / 1024; - $rx_kbs = $rx_kbs / 2.2; + $rx_kbs = $rx_kbs / 3.2; $rx_kbs = int($rx_kbs); $tx_kbs = $txb_diff / 1024; - $tx_kbs = $tx_kbs / 2.2; + $tx_kbs = $tx_kbs / 3.2; $tx_kbs = int($tx_kbs); } diff --git a/html/html/themes/ipfire/include/functions.pl b/html/html/themes/ipfire/include/functions.pl index c83897e0e0..5e61c3dfa3 100644 --- a/html/html/themes/ipfire/include/functions.pl +++ b/html/html/themes/ipfire/include/functions.pl @@ -202,7 +202,7 @@ END document.forms['speed'].rxkb.value = root2_node.firstChild.data; // document.getElementsByTagName("input")[0].style.color = "#00FF00"; - url = "/cgi/bin/speed.cgi?rxb_last=" + root3_node.firstChild.data + "&txb_last=" + root4_node.firstChild.data; + url = "/cgi-bin/speed.cgi?rxb_last=" + root3_node.firstChild.data + "&txb_last=" + root4_node.firstChild.data; window.setTimeout("LoadInetInfo(url)", 3000); } diff --git a/lfs/clamav b/lfs/clamav index d10bfd5d87..8ea1ab0029 100644 --- a/lfs/clamav +++ b/lfs/clamav @@ -26,7 +26,7 @@ include Config -VER = 0.90.2 +VER = 0.90.3 THISAPP = clamav-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 39d1f07a399b551b55096b6ec7325c33 +$(DL_FILE)_MD5 = d42ccf7a32daeb7c7cc3c8c23a7793ea install : $(TARGET) diff --git a/lfs/grub b/lfs/grub index 385d7c1f8f..01da488cc2 100644 --- a/lfs/grub +++ b/lfs/grub @@ -77,7 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # This fails, but doesn't matter -cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-disk_geometry-1.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.97/grub-gfxmenu-v8.diff + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-gfxmenu-v8.diff cd $(DIR_APP) && perl -pi -e 's,/usr/lib/grub/i386-pc,/usr/share/grub/i386-pc,' docs/grub.texi cd $(DIR_APP) && sed -i 's/AM_INIT_AUTOMAKE/&\nAM_PROG_AS/' configure.ac diff --git a/src/initscripts/init.d/snort b/src/initscripts/init.d/snort index 7dd334cdab..0087cb54a7 100755 --- a/src/initscripts/init.d/snort +++ b/src/initscripts/init.d/snort @@ -55,32 +55,36 @@ DNS2=`cat /var/ipfire/red/dns2` if [ "$DNS2" ]; then echo "var DNS_SERVERS [$DNS1,$DNS2]" >> /etc/snort/vars else - echo "car DNS_SERVERS $DNS1" >> /etc/snort/vars + echo "var DNS_SERVERS $DNS1" >> /etc/snort/vars fi case "$1" in start) for DEVICE in $DEVICES; do boot_mesg "Starting Intrusion Detection System on $DEVICE..." - loadproc /usr/sbin/snort -c snort.conf -i $DEVICE -D -l /var/log/snort --pid-path /var/run/snort_$DEVICE.pid + /usr/sbin/snort -c /etc/snort/snort.conf -i $DEVICE -D -l /var/log/snort --pid-path /var/run/snort_$DEVICE.pid + evaluate_retval done ;; + stop) for DEVICE in $DEVICES; do boot_mesg "Stopping Intrusion Detection System on $DEVICE..." killproc -p /var/run/snort_$DEVICE.pid /var/run done ;; + status) statusproc /usr/sbin/snort ;; + restart) $0 stop $0 start ;; *) - echo "Usage: $0 {start|stop|restart|status|update}" + echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac diff --git a/src/install+setup/install/Makefile b/src/install+setup/install/Makefile index 5ee5b3c9de..6f3a66fbd7 100644 --- a/src/install+setup/install/Makefile +++ b/src/install+setup/install/Makefile @@ -23,8 +23,7 @@ clean : ###### -OBJS=main.o ide.o cdrom.o nic.o net.o config.o ../libsmooth/libsmooth.o \ - usb.o scsi.o unattended.o +OBJS=main.o ide.o nic.o net.o config.o ../libsmooth/libsmooth.o usb.o scsi.o unattended.o install: $(OBJS) $(LINK) $(OBJS) -o $@ $(LIBS) diff --git a/src/install+setup/install/cdrom.c b/src/install+setup/install/cdrom.c deleted file mode 100644 index fdd526f7a4..0000000000 --- a/src/install+setup/install/cdrom.c +++ /dev/null @@ -1,27 +0,0 @@ -/* SmoothWall install program. - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * CDROM menu. Get "misc" driver name etc. - * - */ - -#include "install.h" - -extern FILE *flog; -extern char *mylog; - -extern char **ctr; - -/* Ejects the CDROM. returns 0 for failure, 1 for success. */ -int ejectcdrom(char *dev) -{ - char command; - sprintf(command, "eject -r /dev/%s", dev); - if (mysystem(command)) - return 0; - else - return 1; -} diff --git a/src/install+setup/install/main.c b/src/install+setup/install/main.c index 6460a19bac..e8e83711c1 100644 --- a/src/install+setup/install/main.c +++ b/src/install+setup/install/main.c @@ -606,7 +606,8 @@ int main(int argc, char *argv[]) mysystem("ln -s grub.conf /harddisk/boot/grub/menu.lst"); mysystem("umount /cdrom"); - ejectcdrom(sourcedrive); + snprintf(commandstring, STRING_SIZE, "eject /dev/%s", sourcedrive); + mysystem(commandstring); if (!unattended) { sprintf(message, ctr[TR_CONGRATULATIONS_LONG], diff --git a/src/misc-progs/Makefile b/src/misc-progs/Makefile index b134606d06..25b2c7c072 100644 --- a/src/misc-progs/Makefile +++ b/src/misc-progs/Makefile @@ -6,7 +6,7 @@ COMPILE=$(CC) $(CFLAGS) PROGS = iowrap SUID_PROGS = setdmzholes setportfw setfilters setxtaccess \ squidctrl restartssh ipfirereboot setaliases \ - ipsecctrl timectrl dhcpctrl restartsnort \ + ipsecctrl timectrl dhcpctrl snortctrl \ monitorTraff restartapplejuice rebuildhosts \ restartsyslogd logwatch openvpnctrl \ restartwireless getipstat qosctrl launch-ether-wake \ @@ -100,8 +100,8 @@ restartssh: restartssh.c setuid.o ../install+setup/libsmooth/varval.o squidctrl: squidctrl.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ squidctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ -restartsnort: restartsnort.c setuid.o ../install+setup/libsmooth/varval.o - $(COMPILE) -I../install+setup/libsmooth/ restartsnort.c setuid.o ../install+setup/libsmooth/varval.o -o $@ +snortctrl: snortctrl.c setuid.o ../install+setup/libsmooth/varval.o + $(COMPILE) -I../install+setup/libsmooth/ snortctrl.c setuid.o ../install+setup/libsmooth/varval.o -o $@ restartsyslogd: restartsyslogd.c setuid.o ../install+setup/libsmooth/varval.o $(COMPILE) -I../install+setup/libsmooth/ restartsyslogd.c setuid.o ../install+setup/libsmooth/varval.o -o $@ diff --git a/src/misc-progs/restartsnort.c b/src/misc-progs/restartsnort.c deleted file mode 100644 index 036626c7bc..0000000000 --- a/src/misc-progs/restartsnort.c +++ /dev/null @@ -1,326 +0,0 @@ -/* SmoothWall helper program - restartsnort - * - * This program is distributed under the terms of the GNU General Public - * Licence. See the file COPYING for details. - * - * (c) Lawrence Manning, 2001 - * Restarting snort. - * - * $Id: restartsnort.c,v 1.8.2.3 2005/10/16 12:36:14 rkerr Exp $ - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "libsmooth.h" -#include "setuid.h" - -struct keyvalue *kv = NULL; -FILE *varsfile = NULL; - -void exithandler(void) -{ - if (varsfile) - fclose (varsfile); - - if (kv) - freekeyvalues(kv); -} - -int killsnort(char *interface) -{ - int fd; - char pidname[STRING_SIZE] = ""; - char buffer[STRING_SIZE] = ""; - int pid; - - sprintf(pidname, "/var/run/snort_%s.pid", interface); - - if ((fd = open(pidname, O_RDONLY)) != -1) - { - if (read(fd, buffer, STRING_SIZE - 1) == -1) - fprintf(stderr, "Couldn't read from pid file\n"); - else - { - pid = atoi(buffer); - if (pid <= 1) - fprintf(stderr, "Bad pid value\n"); - else - { - if (kill(pid, SIGTERM) == -1) - fprintf(stderr, "Unable to send SIGTERM\n"); - close (fd); - return 0; - } - } - close(fd); - } - return 1; -} - -int main(int argc, char *argv[]) -{ - int fd = -1; - FILE *ifacefile, *ipfile, *dns1file, *dns2file; - char iface[STRING_SIZE] = ""; - char locip[STRING_SIZE] = ""; - char dns1[STRING_SIZE] = ""; - char dns2[STRING_SIZE] = ""; - char command[STRING_SIZE] = ""; - char greendev[STRING_SIZE] = ""; - char orangedev[STRING_SIZE] = ""; - char bluedev[STRING_SIZE] = ""; - char greenip[STRING_SIZE] = ""; - char orangeip[STRING_SIZE] = ""; - char blueip[STRING_SIZE] = ""; - struct stat st; - int i; - int restartred = 0, restartgreen = 0, restartblue = 0, restartorange = 0; - - if (!(initsetuid())) - exit(1); - - atexit(exithandler); - - for (i=0; i 0) { - fprintf(stderr, "Couldn't find GREEN device\n"); - exit(1); - } - if (!VALID_DEVICE(greendev)) - { - fprintf(stderr, "Bad GREEN_DEV: %s\n", greendev); - exit(1); - } - if (!(findkey(kv, "GREEN_ADDRESS", greenip))) { - fprintf(stderr, "Couldn't find GREEN address\n"); - exit(1); - } - if (!VALID_IP(greenip)) { - fprintf(stderr, "Bad GREEN_ADDRESS: %s\n", greenip); - exit(1); - } - - if (findkey(kv, "ORANGE_DEV", orangedev) && strlen (orangedev) > 0) { - if (!VALID_DEVICE(orangedev)) - { - fprintf(stderr, "Bad ORANGE_DEV: %s\n", orangedev); - exit(1); - } - if (!(findkey(kv, "ORANGE_ADDRESS", orangeip))) { - fprintf(stderr, "Couldn't find ORANGE address\n"); - exit(1); - } - if (!VALID_IP(orangeip)) { - fprintf(stderr, "Bad ORANGE_ADDRESS: %s\n", orangeip); - exit(1); - } - } - - if (findkey(kv, "BLUE_DEV", bluedev) && strlen (bluedev) > 0) { - if (!VALID_DEVICE(bluedev)) - { - fprintf(stderr, "Bad BLUE_DEV: %s\n", bluedev); - exit(1); - } - if (!(findkey(kv, "BLUE_ADDRESS", blueip))) { - fprintf(stderr, "Couldn't find BLUE address\n"); - exit(1); - } - if (!VALID_IP(blueip)) { - fprintf(stderr, "Bad BLUE_ADDRESS: %s\n", blueip); - exit(1); - } - } - - stat(CONFIG_ROOT "/red/active", &st); - - if (S_ISREG(st.st_mode)) { - if (!(ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) - { - fprintf(stderr, "Couldn't open iface file\n"); - exit(0); - } - - if (fgets(iface, STRING_SIZE, ifacefile)) - { - if (iface[strlen(iface) - 1] == '\n') - iface[strlen(iface) - 1] = '\0'; - } - fclose(ifacefile); - if (!VALID_DEVICE(iface)) - { - fprintf(stderr, "Bad iface: %s\n", iface); - exit(0); - } - - if (!(ipfile = fopen(CONFIG_ROOT "/red/local-ipaddress", "r"))) - { - fprintf(stderr, "Couldn't open local ip file\n"); - exit(0); - } - if (fgets(locip, STRING_SIZE, ipfile)) - { - if (locip[strlen(locip) - 1] == '\n') - locip[strlen(locip) - 1] = '\0'; - } - fclose (ipfile); - if (strlen(locip) && !VALID_IP(locip)) - { - fprintf(stderr, "Bad local IP: %s\n", locip); - exit(1); - } - - if (!(dns1file = fopen(CONFIG_ROOT "/red/dns1", "r"))) - { - fprintf(stderr, "Couldn't open dns1 file\n"); - exit(0); - } - if (fgets(dns1, STRING_SIZE, dns1file)) - { - if (dns1[strlen(dns1) - 1] == '\n') - dns1[strlen(dns1) - 1] = '\0'; - } - fclose (dns1file); - if (strlen(dns1) && !VALID_IP(dns1)) - { - fprintf(stderr, "Bad DNS1 IP: %s\n", dns1); - exit(1); - } - - if (!(dns2file = fopen(CONFIG_ROOT "/red/dns2", "r"))) - { - fprintf(stderr, "Couldn't open dns2 file\n"); - exit(1); - } - if (fgets(dns2, STRING_SIZE, dns2file)) - { - if (dns2[strlen(dns2) - 1] == '\n') - dns2[strlen(dns2) - 1] = '\0'; - } - fclose (dns2file); - if (strlen(dns2) && !VALID_IP(dns2)) - { - fprintf(stderr, "Bad DNS2 IP: %s\n", dns2); - exit(1); - } - } - - if (restartred) - killsnort(iface); - - if (restartblue) - killsnort(bluedev); - - if (restartorange) - killsnort(orangedev); - - if (restartgreen) - killsnort(greendev); - - if (!(varsfile = fopen("/etc/snort/vars", "w"))) - { - fprintf(stderr, "Couldn't create vars file\n"); - exit(1); - } - if (strlen(blueip)) { - if (strlen(orangeip)) { - if (strlen(locip)) { - fprintf(varsfile, "var HOME_NET [%s,%s,%s,%s]\n", greenip, orangeip, blueip, locip); - } else { - fprintf(varsfile, "var HOME_NET [%s,%s,%s]\n", greenip, orangeip, blueip); - } - } else { - if (strlen(locip)) { - fprintf(varsfile, "var HOME_NET [%s,%s,%s]\n", greenip, blueip, locip); - } else { - fprintf(varsfile, "var HOME_NET [%s,%s]\n", greenip, blueip); - } - } - } else { - if (strlen(orangeip)) { - if (strlen(locip)) { - fprintf(varsfile, "var HOME_NET [%s,%s,%s]\n", greenip, orangeip, locip); - } else { - fprintf(varsfile, "var HOME_NET [%s,%s]\n", greenip, orangeip); - } - } else { - if (strlen(locip)) { - fprintf(varsfile, "var HOME_NET [%s,%s]\n", greenip, locip); - } else { - fprintf(varsfile, "var HOME_NET [%s]\n", greenip); - } - } - } - if (strlen(dns1)) - { - if (strlen(dns2)) - fprintf(varsfile, "var DNS_SERVERS [%s,%s]\n", dns1, dns2); - else - fprintf(varsfile, "var DNS_SERVERS %s\n", dns1); - } else { - fprintf(varsfile, "var DNS_SERVERS []\n"); - } - fclose(varsfile); - varsfile = NULL; - - if (restartred && strlen(iface) && (fd = open(CONFIG_ROOT "/snort/enable", O_RDONLY)) != -1) - { - close(fd); - snprintf(command, STRING_SIZE -1, - "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s", - iface); - safe_system(command); - } - if (restartblue && strlen(bluedev) && (fd = open(CONFIG_ROOT "/snort/enable_blue", O_RDONLY)) != -1 && bluedev) - { - close(fd); - snprintf(command, STRING_SIZE -1, - "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s", - bluedev); - safe_system(command); - } - if (restartorange && strlen(orangedev) && (fd = open(CONFIG_ROOT "/snort/enable_orange", O_RDONLY)) != -1 && orangedev) - { - close(fd); - snprintf(command, STRING_SIZE -1, - "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s", - orangedev); - safe_system(command); - } - if (restartgreen && (fd = open(CONFIG_ROOT "/snort/enable_green", O_RDONLY)) != -1) - { - close(fd); - snprintf(command, STRING_SIZE -1, - "/usr/sbin/snort -c /etc/snort/snort.conf -D -u snort -g snort -d -e -o -p -b -A fast -m 022 -i %s", - greendev); - safe_system(command); - } - - return 0; -} diff --git a/src/misc-progs/snortctrl.c b/src/misc-progs/snortctrl.c new file mode 100644 index 0000000000..57025757c6 --- /dev/null +++ b/src/misc-progs/snortctrl.c @@ -0,0 +1,38 @@ +/* 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\nsnortctrl (start|stop|restart)\n\n"); + exit(1); + } + + if (strcmp(argv[1], "start") == 0) { + safe_system("/etc/rc.d/init.d/snort start"); + } else if (strcmp(argv[1], "stop") == 0) { + safe_system("/etc/rc.d/init.d/snort stop"); + } else if (strcmp(argv[1], "restart") == 0) { + safe_system("/etc/rc.d/init.d/snort restart"); + } else { + fprintf(stderr, "\nBad argument given.\n\nsnortctrl (start|stop|restart)\n\n"); + exit(1); + } + + return 0; +} diff --git a/src/misc-progs/squidctrl.c b/src/misc-progs/squidctrl.c index 5568a186e1..39289b6c3d 100644 --- a/src/misc-progs/squidctrl.c +++ b/src/misc-progs/squidctrl.c @@ -38,7 +38,7 @@ int main(int argc, char *argv[]) { } else if (strcmp(argv[1], "disable") == 0) { safe_system("rm -f /etc/rc.d/rc*.d/*squid >/dev/null 2>&1"); } else { - fprintf(stderr, "\nBad argument given.\n\nredctrl (start|stop|restart|flush)\n\n"); + fprintf(stderr, "\nBad argument given.\n\nsquidctrl (start|stop|restart|flush)\n\n"); exit(1); } diff --git a/src/patches/grub-0.97/grub-gfxmenu-v8.diff b/src/patches/grub-gfxmenu-v8.diff similarity index 100% rename from src/patches/grub-0.97/grub-gfxmenu-v8.diff rename to src/patches/grub-gfxmenu-v8.diff -- 2.39.2