my @metadata=();
-my $chk_cron_dly = "${General::swroot}/updatexlrator/autocheck/cron.daily";
-my $chk_cron_wly = "${General::swroot}/updatexlrator/autocheck/cron.weekly";
-my $chk_cron_mly = "${General::swroot}/updatexlrator/autocheck/cron.monthly";
-
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
&General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
sub savesettings
{
- if (-e $chk_cron_dly) { unlink($chk_cron_dly); }
- if (-e $chk_cron_wly) { unlink($chk_cron_wly); }
- if (-e $chk_cron_mly) { unlink($chk_cron_mly); }
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'daily'))
{
- symlink("../bin/checkup",$chk_cron_dly)
- } else {
- symlink("/bin/false",$chk_cron_dly)
+ system('/usr/local/bin/updxlratorctrl cron daily >/dev/null 2>&1');
}
- if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly'))
+ if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly'))
{
- symlink("../bin/checkup",$chk_cron_wly)
- } else {
- symlink("/bin/false",$chk_cron_wly)
+ system('/usr/local/bin/updxlratorctrl cron weekly >/dev/null 2>&1');
}
- if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly'))
+ if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly'))
{
- symlink("../bin/checkup",$chk_cron_mly)
- } else {
- symlink("/bin/false",$chk_cron_mly)
+ system('/usr/local/bin/updxlratorctrl cron monthly >/dev/null 2>&1');
}
# don't save those variable to the settings file,
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2010 Michael Tremer & Christian Schmidt #
+# Copyright (C) 2005-2010 IPFire Team #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
my $sourceurlfile = "${General::swroot}/urlfilter/autoupdate/autoupdate.urls";
my $updconffile = "${General::swroot}/urlfilter/autoupdate/autoupdate.conf";
my $updflagfile = "${General::swroot}/urlfilter/blacklists/.autoupdate.last";
-my $upd_cron_dly = "${General::swroot}/urlfilter/autoupdate/cron.daily";
-my $upd_cron_wly = "${General::swroot}/urlfilter/autoupdate/cron.weekly";
-my $upd_cron_mly = "${General::swroot}/urlfilter/autoupdate/cron.monthly";
my $errormessage='';
my $updatemessage='';
print FILE "CUSTOM_UPDATE_URL=$filtersettings{'CUSTOM_UPDATE_URL'}\n";
close FILE;
- if (-e $upd_cron_dly) { unlink($upd_cron_dly); }
- if (-e $upd_cron_wly) { unlink($upd_cron_wly); }
- if (-e $upd_cron_mly) { unlink($upd_cron_mly); }
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'daily'))
{
- symlink("../bin/autoupdate.pl",$upd_cron_dly)
- } else {
- symlink("/bin/false",$upd_cron_dly)
+ system('/usr/local/bin/urlfilterctrl cron daily >/dev/null 2>&1');
}
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'weekly'))
{
- symlink("../bin/autoupdate.pl",$upd_cron_wly)
- } else {
- symlink("/bin/false",$upd_cron_wly)
+ system('/usr/local/bin/urlfilterctrl cron weekly >/dev/null 2>&1');
}
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'monthly'))
{
- symlink("../bin/autoupdate.pl",$upd_cron_mly)
- } else {
- symlink("/bin/false",$upd_cron_mly)
+ system('/usr/local/bin/urlfilterctrl cron monthly >/dev/null 2>&1');
}
}
}
wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \
redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \
smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \
- setaliases
+ setaliases urlfilterctrl updxlratorctrl
SUID_UPDX = updxsetperms
install : all
--- /dev/null
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include "setuid.h"
+
+int main(int argc, char *argv[]){
+ if ( argc < 2 ){
+ printf("invalid parameter(s)\n");
+ return(1);
+ }
+
+ if (!(initsetuid()))
+ exit(1);
+
+ if (strcmp(argv[1], "cron") == 0){
+ safe_system("rm /etc/fcron.*/updxlrator 2&>/dev/null");
+
+ if (strcmp(argv[2], "daily") == 0){
+ safe_system("ln -s /var/ipfire/updatexlrator/bin/checkup /etc/fcron.daily/updxlrator");
+ } else if (strcmp(argv[2], "weekly") == 0){
+ safe_system("ln -s /var/ipfire/updatexlrator/bin/checkup /etc/fcron.weekly/updxlrator");
+ } else if (strcmp(argv[2], "monthly") == 0){
+ safe_system("ln -s /var/ipfire/updatexlrator/bin/checkup /etc/fcron.monthly/updxlrator");
+ }else{
+ printf("invalid parameter(s)\n");
+ return(1);
+ }
+ }
+ return 0;
+}
--- /dev/null
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include "setuid.h"
+
+int main(int argc, char *argv[]){
+ if ( argc < 2 ){
+ printf("invalid parameter(s)\n");
+ return(1);
+ }
+
+ if (!(initsetuid()))
+ exit(1);
+
+ if (strcmp(argv[1], "cron") == 0){
+ safe_system("rm /etc/fcron.*/urlfilter 2&>/dev/null");
+
+ if (strcmp(argv[2], "daily") == 0){
+ safe_system("ln -s /var/ipfire/urlfilter/bin/autoupdate.pl /etc/fcron.daily/urlfilter");
+ } else if (strcmp(argv[2], "weekly") == 0){
+ safe_system("ln -s /var/ipfire/urlfilter/bin/autoupdate.pl /etc/fcron.weekly/urlfilter");
+ } else if (strcmp(argv[2], "monthly") == 0){
+ safe_system("ln -s /var/ipfire/urlfilter/bin/autoupdate.pl /etc/fcron.monthly/urlfilter");
+ }else{
+ printf("invalid parameter(s)\n");
+ return(1);
+ }
+ }
+ return 0;
+}