From 39a7cc119ab47d4ef5c06d61c99abbeb09a9f130 Mon Sep 17 00:00:00 2001 From: ms Date: Mon, 5 Jun 2006 11:30:07 +0000 Subject: [PATCH] =?UTF-8?q?Hinzugef=C3=BCgt:=20=20=20*=20Kleiner=20Tux=20i?= =?UTF-8?q?m=20Webinterface=20f=C3=BCr=20den=20eXciter=20und=20den=20Benne?= =?UTF-8?q?=20:)=20Ge=C3=A4ndert:=20=20=20*=20time.cgi=20=C3=BCberarbeitet?= =?UTF-8?q?=20und=20Funktion=20verbessert.=20=20=20*=20index.cgi=20-=20noc?= =?UTF-8?q?h=20ein=20Paar=20Fehler=20behoben=20oder=20was=20hinzugef=C3=BC?= =?UTF-8?q?gt.=20=20=20*=20FLASH-Eintrag=20aus=20der=20crontab=20gel=C3=B6?= =?UTF-8?q?scht.=20=20=20*=20Online-Hilfe-Rettungsringe=20(die=20h=C3=A4ss?= =?UTF-8?q?lichen)=20aus=20den=20CGIs=20entfernt.=20=20=20*=20Logger=20von?= =?UTF-8?q?=20ipcop=20nach=20ipfire=20umgestellt.=20Gel=C3=B6scht:=20=20?= =?UTF-8?q?=20*=20Nicht=20ben=C3=B6tigte=20Reste=20vom=20IPCop=20entfernt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@160 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- config/cfgroot/general-functions.pl | 6 +-- config/cfgroot/header.pl | 2 +- config/cfgroot/time-settings | 2 +- config/cron/crontab | 3 -- html/cgi-bin/dhcp.cgi | 4 +- html/cgi-bin/index.cgi | 10 ++-- html/cgi-bin/portfw.cgi | 4 +- html/cgi-bin/shutdown.cgi | 4 +- html/cgi-bin/time.cgi | 80 ++-------------------------- html/cgi-bin/wireless.cgi | 4 +- html/html/images/iptux.png | Bin 0 -> 35477 bytes src/ROOTFILES.i386 | 3 +- src/misc-progs/Makefile | 5 +- src/misc-progs/timecheckctrl.c | 25 +++++++++ src/scripts/makegraphs | 16 +++--- src/scripts/updatelists.pl | 42 --------------- src/scripts/updatesetup | 23 -------- 17 files changed, 57 insertions(+), 176 deletions(-) create mode 100644 html/html/images/iptux.png create mode 100644 src/misc-progs/timecheckctrl.c delete mode 100644 src/scripts/updatelists.pl delete mode 100644 src/scripts/updatesetup diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index b40327a62..d8c2bb959 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -23,14 +23,14 @@ $|=1; # line buffering $General::version = 'VERSION'; $General::swroot = 'CONFIG_ROOT'; $General::noipprefix = 'noipg-'; -$General::adminmanualurl = 'http://www.ipcop.org/1.4.0/en/admin/html'; +$General::adminmanualurl = 'http://users.ipfire.eu'; sub log { my $logmessage = $_[0]; $logmessage =~ /([\w\W]*)/; $logmessage = $1; - system('/usr/bin/logger', '-t', 'ipcop', $logmessage); + system('/usr/bin/logger', '-t', 'ipfire', $logmessage); } sub readhash @@ -481,7 +481,7 @@ sub FetchPublicIp { my ($out, $response) = Net::SSLeay::get_http( 'checkip.dyndns.org', 80, "/", - Net::SSLeay::make_headers('User-Agent' => 'Ipcop' ) + Net::SSLeay::make_headers('User-Agent' => 'IPFire' ) ); if ($response =~ m%HTTP/1\.. 200 OK%) { $out =~ /Current IP Address: (\d+.\d+.\d+.\d+)/; diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 065bb690b..3d84c1cc2 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -760,7 +760,7 @@ END &showsubsection($menu); print <

diff --git a/config/cfgroot/time-settings b/config/cfgroot/time-settings index 2f74f9ccc..577b0b345 100644 --- a/config/cfgroot/time-settings +++ b/config/cfgroot/time-settings @@ -3,5 +3,5 @@ UPDATE_PERIOD=daily UPDATE_VALUE=1 UPDATE_METHOD=manually ENABLENTP=off -NTP_ADDR_1=pool.ntp.org +NTP_ADDR_1=de.pool.ntp.org VALID=yes diff --git a/config/cron/crontab b/config/cron/crontab index 435328bef..f51a686a4 100644 --- a/config/cron/crontab +++ b/config/cron/crontab @@ -9,9 +9,6 @@ HOME=/ # Log rotation 01 * * * * /usr/sbin/logrotate /etc/logrotate.conf -# Backup logs to flashdisk -01 * * * * [ -f "/etc/FLASH" ] && /etc/rc.d/rc.flash.down - # Set time */5 * * * * /usr/local/bin/timecheck > /dev/null 2>&1 diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi index be7e0bf53..11fbb6a18 100644 --- a/html/cgi-bin/dhcp.cgi +++ b/html/cgi-bin/dhcp.cgi @@ -576,9 +576,7 @@ print <* $Lang::tr{'this field may be blank'} $warnNTPmessage - - - $Lang::tr{ +   diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index 7bcf44522..9233628df 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -102,13 +102,12 @@ print < - +
$Lang::tr{'network'} IP $Lang::tr{'status'} -
$Lang::tr{'internet'}:
-
$ipaddr $connstate + $ipaddr + $connstate
$Lang::tr{'profile'}:
$Lang::tr{'dmz'}:
$netsettings{'ORANGE_ADDRESS'} Online END } - if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` ) { + if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` || + `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`; print <$Lang::tr{'vpn'}:
diff --git a/html/cgi-bin/portfw.cgi b/html/cgi-bin/portfw.cgi index fcd77e548..bd3333b1e 100644 --- a/html/cgi-bin/portfw.cgi +++ b/html/cgi-bin/portfw.cgi @@ -714,9 +714,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'edit'}){ } } print < - - $Lang::tr{
 
END diff --git a/html/cgi-bin/shutdown.cgi b/html/cgi-bin/shutdown.cgi index 4ccf805ae..cd0ace7d3 100644 --- a/html/cgi-bin/shutdown.cgi +++ b/html/cgi-bin/shutdown.cgi @@ -186,9 +186,7 @@ END - - - +   diff --git a/html/cgi-bin/time.cgi b/html/cgi-bin/time.cgi index aa96479da..9b599453b 100644 --- a/html/cgi-bin/time.cgi +++ b/html/cgi-bin/time.cgi @@ -19,7 +19,7 @@ use strict; #use warnings; #use CGI::Carp 'fatalsToBrowser'; -require 'CONFIG_ROOT/general-functions.pl'; +require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; @@ -46,49 +46,6 @@ $timesettings{'SETYEAR'} = ''; &Header::getcgihash(\%timesettings); -if ($timesettings{'ACTION'} eq $Lang::tr{'instant update'}) -{ - if ($timesettings{'SETHOUR'} eq '' || $timesettings{'SETHOUR'} < 0 || $timesettings{'SETHOUR'} > 23) { - $errormessage = $Lang::tr{'invalid time entered'}; - goto UPDTERROR; - } - if ($timesettings{'SETMINUTES'} eq '' || $timesettings{'SETMINUTES'} < 0 || $timesettings{'SETMINUTES'} > 59) { - $errormessage = $Lang::tr{'invalid time entered'}; - goto UPDTERROR; - } - if ($timesettings{'SETDAY'} eq '' || $timesettings{'SETDAY'} < 1 || $timesettings{'SETDAY'} > 31) { - $errormessage = $Lang::tr{'invalid date entered'}; - goto UPDTERROR; - } - if ($timesettings{'SETMONTH'} eq '' || $timesettings{'SETMONTH'} < 1 || $timesettings{'SETMONTH'} > 12) { - $errormessage = $Lang::tr{'invalid date entered'}; - goto UPDTERROR; - } - if ($timesettings{'SETYEAR'} eq '' || $timesettings{'SETYEAR'} < 2003 || $timesettings{'SETYEAR'} > 2030) { - $errormessage = $Lang::tr{'invalid date entered'}; - goto UPDTERROR; - } - -UPDTERROR: - if ($errormessage) { - $timesettings{'VALID'} = 'no'; } - else { - $timesettings{'VALID'} = 'yes'; } - - if ($timesettings{'VALID'} eq 'yes') { - # we want date in YYYY-MM-DD HH:MM format for date command - # EAO changed datestring to ISO 6801 format 2003-08-11 - my $datestring = "$timesettings{'SETYEAR'}-$timesettings{'SETMONTH'}-$timesettings{'SETDAY'}"; - my $timestring = "$timesettings{'SETHOUR'}:$timesettings{'SETMINUTES'}"; - # EAO setdate.c also revised for ISO 6801 date format 2003-08-11 - system ('/usr/local/bin/setdate', $datestring, $timestring); - &General::log("$Lang::tr{'time date manually reset'} $datestring $timestring"); - } - unless ($errormessage) { - undef %timesettings; - } -} - if ($timesettings{'ACTION'} eq $Lang::tr{'save'}) { if ($timesettings{'ENABLENTP'} eq 'on') @@ -203,6 +160,7 @@ $timesettings{'ACTION'} = &Header::cleanhtml ($timesettings{'ACTION'}); if ($timesettings{'ACTION'} eq $Lang::tr{'set time now'} && $timesettings{'ENABLENTP'} eq 'on') { system ('/bin/touch', "${General::swroot}/time/settimenow"); + system ('/usr/local/bin/timecheckctrl >& /dev/null'); } &General::readhash("${General::swroot}/time/settings", \%timesettings); @@ -213,7 +171,7 @@ if ($timesettings{'VALID'} eq '') $timesettings{'UPDATE_METHOD'} = 'manually'; $timesettings{'UPDATE_VALUE'} = '1'; $timesettings{'UPDATE_PERIOD'} = 'daily'; - $timesettings{'NTP_ADDR_1'} = 'pool.ntp.org'; + $timesettings{'NTP_ADDR_1'} = 'de.pool.ntp.org'; $timesettings{'NTP_ADDR_2'} = 'pool.ntp.org'; } @@ -345,9 +303,7 @@ print <* $Lang::tr{'this field may be blank'} - - - +   END @@ -355,34 +311,6 @@ END &Header::closebox(); -&Header::openbox('100%', 'left', $Lang::tr{'update time'}); - -print < - - - - - - - - - - - - - - - -
$Lang::tr{'year'}:  $Lang::tr{'month'}:  $Lang::tr{'day'}:     $Lang::tr{'hours2'}:  $Lang::tr{'minutes'}: 
- - - - -END -; -&Header::closebox(); - print "\n"; &Header::closebigbox(); diff --git a/html/cgi-bin/wireless.cgi b/html/cgi-bin/wireless.cgi index 129e8df23..d73df7034 100644 --- a/html/cgi-bin/wireless.cgi +++ b/html/cgi-bin/wireless.cgi @@ -225,9 +225,7 @@ print < - - - $Lang::tr{ +   END diff --git a/html/html/images/iptux.png b/html/html/images/iptux.png new file mode 100644 index 0000000000000000000000000000000000000000..38a754ba03bb7ffa501bca4b51afdce8ba2486e5 GIT binary patch literal 35477 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 +#include "setuid.h" + +int main(void) +{ + if (!(initsetuid())) + exit(1); + + safe_system("/usr/local/bin/timecheck"); + + return 0; +} diff --git a/src/scripts/makegraphs b/src/scripts/makegraphs index 42773338a..1120fd848 100644 --- a/src/scripts/makegraphs +++ b/src/scripts/makegraphs @@ -89,7 +89,7 @@ sub updatecpugraph { "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-u 100", "-r", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t $tr{'cpu usage per'} $tr{$period}", "DEF:user=$rrdlog/cpu.rrd:user:AVERAGE", "DEF:system=$rrdlog/cpu.rrd:system:AVERAGE", @@ -156,7 +156,7 @@ sub updatememgraph { "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-u 100", "-r", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t $tr{'memory usage per'} $tr{$period}", "DEF:used=$rrdlog/mem.rrd:memused:AVERAGE", "DEF:free=$rrdlog/mem.rrd:memfree:AVERAGE", @@ -198,7 +198,7 @@ sub updatememgraph { "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-u 100", "-r", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t $tr{'swap usage per'} $tr{$period}", "DEF:used=$rrdlog/mem.rrd:swapused:AVERAGE", "DEF:free=$rrdlog/mem.rrd:swapfree:AVERAGE", @@ -269,7 +269,7 @@ sub updatediskgraph { "--alt-y-grid", "-w 600", "-h 100", "-l 0", "-r", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t $tr{'disk access per'} $tr{$period}", "DEF:read=$rrdlog/disk.rrd:readsect:AVERAGE", "DEF:write=$rrdlog/disk.rrd:writesect:AVERAGE", @@ -350,7 +350,7 @@ sub updateifgraph { "--alt-y-grid", "-w 600", "-h 100", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t $tr{'traffic on'} $interface ($tr{'graph per'} $tr{$period})", "-v$tr{'bytes per second'}", "DEF:incoming=$rrdlog/$interface.rrd:incoming:AVERAGE", @@ -398,7 +398,7 @@ sub updatefwhitsgraph { "--alt-y-grid", "-w 600", "-h 200", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t firewall hits over the last $interval", "DEF:amount=$rrdlog/firewallhits.rrd:amount:AVERAGE", "AREA:amount#6464FF:firewallhits", @@ -418,7 +418,7 @@ sub updatefwhitsgraph { "--alt-y-grid", "-w 600", "-h 200", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-t firewall hits over the last $interval", "DEF:amount=$rrdlog/firewallhits.rrd:amount:AVERAGE", "LINE2:amount#6464FF:firewallhits", @@ -545,7 +545,7 @@ sub updatelqgraph { "--lazy", "--color", "SHADEA#EAE9EE", "--color", "SHADEB#EAE9EE", - "--color", "BACK#EAE9EE", + "--color", "BACK#FFFFFF", "-v ms / pkts (% x10)", "DEF:roundtrip=$rrdlog/lq.rrd:roundtrip:AVERAGE", "DEF:loss=$rrdlog/lq.rrd:loss:AVERAGE", diff --git a/src/scripts/updatelists.pl b/src/scripts/updatelists.pl deleted file mode 100644 index 9b534d824..000000000 --- a/src/scripts/updatelists.pl +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/perl - -use strict; -use LWP::UserAgent; -require "CONFIG_ROOT/general-functions.pl"; - -my @this; -my $return = &downloadlist(); -if($return && $return->is_success) { - unless(open(LIST, ">CONFIG_ROOT/patches/available")) { - die "Could not open available lists database."; - } - flock LIST, 2; - @this = split(/----START LIST----\n/,$return->content); - print LIST $this[1]; - close(LIST); -} else { - die "Could not download patches list."; -} - -sub downloadlist { - unless(-e "CONFIG_ROOT/red/active") { - die "Not connected."; - } - - my $downloader = LWP::UserAgent->new; - $downloader->timeout(5); - - my %proxysettings; - &General::readhash("CONFIG_ROOT/proxy/settings", \%proxysettings); - - if ($_=$proxysettings{'UPSTREAM_PROXY'}) { - my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/); - if ($proxysettings{'UPSTREAM_USER'}) { - $downloader->proxy("http","http://$proxysettings{'UPSTREAM_USER'}:$proxysettings{'UPSTREAM_PASSWORD'}@"."$peer:$peerport/"); - } else { - $downloader->proxy("http","http://$peer:$peerport/"); - } - } - - return $downloader->get("http://www.ipcop.org/patches/${General::version}", 'Cache-Control', 'no-cache'); -} diff --git a/src/scripts/updatesetup b/src/scripts/updatesetup deleted file mode 100644 index ef9b23a9e..000000000 --- a/src/scripts/updatesetup +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -UPGRADEVERSION="1.4.x" # configured by ./make.sh newupdate -PREVIOUSVERSION="1.4."$((`echo $UPGRADEVERSION | /usr/bin/cut -f3 -d '.'`-1)) -echo "This is the $UPGRADEVERSION update patch for IPCop $PREVIOUSVERSION installing." - -CURRENTVERSION=`perl -e "require '/var/ipfire/general-functions.pl';print \\$General::version;"` -if [ "$CURRENTVERSION" != "$PREVIOUSVERSION" ]; then - echo "You are not running IPCop v$PREVIOUSVERSION for this patch to install." - echo "Aborting installation." - exit -1 -fi - -# general-functions might not be overwrited by patch... -/bin/sed -i -e "s+= '1.4.*$+= '$UPGRADEVERSION';+" /var/ipfire/general-functions.pl - -/bin/tar -zxpf patch.tar.gz -C / - -#build cachelang file after all "lang/*.pl" updates -perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang" - -killall mingetty #redisplay correct version -echo "end of $UPGRADEVERSION update"