]>
git.ipfire.org Git - people/trikolon/ipfire-2.x.git/blob - html/cgi-bin/index.cgi
5 # This code is distributed under the terms of the GPL
7 # (c) The SmoothWall Team
9 # $Id: index.cgi,v 1.15.2.18 2005/09/17 13:51:47 gespinasse Exp $
14 # enable only the following on debugging purpose
16 #use CGI::Carp 'fatalsToBrowser';
18 require 'CONFIG_ROOT/general-functions.pl';
19 require "${General::swroot}/lang.pl";
20 require "${General::swroot}/header.pl";
30 &Header
::showhttpheaders
();
32 $cgiparams{'ACTION'} = '';
33 &Header
::getcgihash
(\
%cgiparams);
34 $pppsettings{'VALID'} = '';
35 $pppsettings{'PROFILENAME'} = 'None';
36 &General
::readhash
("${General::swroot}/ppp/settings", \
%pppsettings);
37 &General
::readhash
("${General::swroot}/modem/settings", \
%modemsettings);
38 &General
::readhash
("${General::swroot}/ethernet/settings", \
%netsettings);
39 &General
::readhash
("${General::swroot}/ddns/settings", \
%ddnssettings);
41 my $connstate = &Header
::connectionstatus
();
42 if ($connstate =~ /$Lang::tr{'dod waiting'}/ || -e
"${General::swroot}/main/refreshindex") {
43 $refresh = "<meta http-equiv='refresh' content='30;'>";
44 } elsif ($connstate =~ /$Lang::tr{'connecting'}/) {
45 $refresh = "<meta http-equiv='refresh' content='5;'>";
48 &Header
::openpage
($Lang::tr
{'main page'}, 1, $refresh);
49 &Header
::openbigbox
('', 'center');
50 &Header
::openbox
('100%', 'center', &Header
::cleanhtml
(`/bin/uname -n`,"y"));
52 # hide buttons only when pppsettings mandatory used and not valid
53 if ( ( $pppsettings{'VALID'} eq 'yes' ) ||
54 ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {
58 <td align='center'><form method='post' action='/cgi-bin/dial.cgi'>
59 <input type='submit' name='ACTION' value='$Lang::tr{'dial'}' />
62 <td align='center'><form method='post' action='/cgi-bin/dial.cgi'>
63 <input type='submit' name='ACTION' value='$Lang::tr{'hangup'}' />
66 <td align='center'><form method='post' action="$ENV{'SCRIPT_NAME'}">
67 <input type='submit' name='ACTION' value='$Lang::tr{'refresh'}' />
74 print "<font face='Helvetica' size='4'><b>";
75 if ( !( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ ) ) {
76 print "<u>$Lang::tr{'current profile'} $pppsettings{'PROFILENAME'}</u><br />\n";
79 if ( ( $pppsettings{'VALID'} eq 'yes'&& $modemsettings{'VALID'} eq 'yes' ) ||
80 ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) {
82 print "</b></font>\n";
83 if ($connstate =~ /$Lang::tr{'connected'}/) {
84 my $fetch_ip='nothing';
85 if ($ddnssettings{'BEHINDROUTER'} eq 'FETCH_IP') {
86 if (open(IPADDR
,"${General::swroot}/ddns/ipcache")) {
90 my $host_name = (gethostbyaddr(pack("C4", split(/\./, $fetch_ip)), 2))[0];
91 print "<br />$Lang::tr{'ip address'} (internet): $fetch_ip <br /> $Lang::tr{'ipcops hostname'} (internet): $host_name <br />";
94 if (open(IPADDR
,"${General::swroot}/red/local-ipaddress")) {
95 my $ipaddr = <IPADDR
>;
98 if ($ipaddr ne $fetch_ip){ #do not show info twice
99 my $host_name = (gethostbyaddr(pack("C4", split(/\./, $ipaddr)), 2))[0];
100 print "<br />$Lang::tr{'ip address'}: $ipaddr <br /> $Lang::tr{'ipcops hostname'}: $host_name <br />";
105 } elsif ($modemsettings{'VALID'} eq 'no') {
106 print "$Lang::tr{'modem settings have errors'}\n </b></font>\n";
108 print "$Lang::tr{'profile has errors'}\n </b></font>\n";
112 # Memory usage warning
113 my @free = `/usr/bin/free`;
114 $free[1] =~ m/(\d+)/;
116 $free[2] =~ m/(\d+)/;
118 my $pct = int 100 * ($mem - $used) / $mem;
119 if ($used / $mem > 90) {
120 $warnmessage .= "<li> $Lang::tr{'high memory usage'}: $pct% !</li>\n";
123 # Diskspace usage warning
126 my @df = `/bin/df -B M -x rootfs`;
127 foreach my $line (@df) {
128 next if $line =~ m/^Filesystem/;
129 if ($line =~ m/root/ ) {
130 $line =~ m/^.* (\d+)M.*$/;
131 @temp = split(/ +/,$line);
133 # available:plain value in MB, and not %used as 10% is too much to waste on small disk
134 # and root size should not vary during time
135 $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>\n";
139 # $line =~ m/^.* (\d+)m.*$/;
140 $line =~ m/^.* (\d+)\%.*$/;
142 @temp = split(/ /,$line);
144 $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>\n";
150 open(AV
, "<${General::swroot}/patches/available") or die "Could not open available patches database ($!)";
153 open(PF
, "<${General::swroot}/patches/installed") or die "Could not open installed patches file. ($!)<br />";
157 @temp = split(/\|/,$_);
158 @av = grep(!/^$temp[0]/, @av);
164 $warnmessage .= "<li> $Lang::tr{'there are updates'}</li>";
166 my $age = &General
::age
("/${General::swroot}/patches/available");
167 if ($age =~ m/(\d{1,3})d/) {
169 $warnmessage .= "<li>$Lang::tr{'updates is old1'} $age $Lang::tr{'updates is old2'}</li>\n";
174 print "<ol>$warnmessage</ol>";
178 system('/usr/bin/uptime');
183 # Test browser, and direct User where to turn off Javascript if necessary
184 # only display message if Javascript is currently enabled
185 if (${Header
::javascript
}) {
187 <script type='text/javascript'>\n
188 if(navigator.platform.indexOf("MacPPC")>(-1)){
191 + "$Lang::tr{'javascript menu error1'}"
192 + " <a href='/cgi-bin/gui.cgi'>$Lang::tr{'gui settings'}</a> "
193 + "$Lang::tr{'javascript menu error2'}"
202 &Header
::closebigbox
();
204 &Header
::closepage
();