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 aeb4393ea..000000000 --- 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 HcmV?d00001 literal 23991 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 F{{Z(brVaoA 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 HcmV?d00001 literal 83463 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

SBk*vjzrmdN;}S>e40|= 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 diff --git a/config/rootfiles/common/misc-progs b/config/rootfiles/common/misc-progs index 6dddeb765..009f2d4b5 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 4efbb9656..25a2b16b8 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 6e10c72ec..cff2b821c 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 84de4ab9f..e60956544 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 3436dd3b3..951fe843d 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 c83897e0e..5e61c3dfa 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 d10bfd5d8..8ea1ab002 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 385d7c1f8..01da488cc 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 7dd334cda..0087cb54a 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 5ee5b3c9d..6f3a66fbd 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 fdd526f7a..000000000 --- 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 6460a19ba..e8e83711c 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 b134606d0..25b2c7c07 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 036626c7b..000000000 --- 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 000000000..57025757c --- /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 5568a186e..39289b6c3 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