#!/usr/bin/perl # # IPFire CGIs # # This code is distributed under the terms of the GPL # # (c) The IPFire Team # use strict; # enable only the following on debugging purpose use warnings; use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl"; my %upnpsettings = (); my %checked = (); my %netsettings = (); my $message = ""; my $errormessage = ""; my %selected= () ; &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); my %servicenames = ( 'UPnP Daemon' => 'upnpd', ); &Header::showhttpheaders(); ############################################################################################################################ ############################################### Setzen von Standartwerten ################################################## $upnpsettings{'DEBUGMODE'} = '3'; $upnpsettings{'FORWARDRULES'} = 'yes'; $upnpsettings{'FORWARDCHAIN'} = 'FORWARD'; $upnpsettings{'PREROUTINGCHAIN'} = 'PORTFW'; $upnpsettings{'DOWNSTREAM'} = '900000'; $upnpsettings{'UPSTREAM'} = '16000000'; $upnpsettings{'DESCRIPTION'} = 'gatedesc.xml'; $upnpsettings{'XML'} = '/etc/linuxigd'; $upnpsettings{'ENABLED'} = 'off'; $upnpsettings{'GREENi'} = 'on'; $upnpsettings{'BLUEi'} = 'off'; $upnpsettings{'REDi'} = 'off'; $upnpsettings{'ORANGEi'} = 'off'; $upnpsettings{'GREENe'} = 'off'; $upnpsettings{'BLUEe'} = 'off'; $upnpsettings{'REDe'} = 'on'; $upnpsettings{'ORANGEe'} = 'off'; ### Values that have to be initialized $upnpsettings{'ACTION'} = ''; &General::readhash("${General::swroot}/upnp/settings", \%upnpsettings); &Header::getcgihash(\%upnpsettings); &Header::openpage('UPnP', 1, ''); &Header::openbigbox('100%', 'left', '', $errormessage); ############################################################################################################################ ################################################### Speichern der Config ################################################### if ($upnpsettings{'ACTION'} eq $Lang::tr{'save'}) { &General::writehash("${General::swroot}/upnp/settings", \%upnpsettings); open (FILE, ">${General::swroot}/upnp/upnpd.conf") or die "Can't save the upnp config: $!"; flock (FILE, 2); print FILE <$errormessage\n"; print " \n"; &Header::closebox(); } $checked{'GREENi'}{'on'} = ''; $checked{'GREENi'}{'off'} = ''; $checked{'GREENi'}{"$upnpsettings{'GREENi'}"} = 'checked'; $checked{'BLUEi'}{'on'} = ''; $checked{'BLUEi'}{'off'} = ''; $checked{'BLUEi'}{"$upnpsettings{'BLUEi'}"} = 'checked'; $checked{'REDi'}{'on'} = ''; $checked{'REDi'}{'off'} = ''; $checked{'REDi'}{"$upnpsettings{'REDi'}"} = 'checked'; $checked{'ORANGEi'}{'on'} = ''; $checked{'ORANGEi'}{'off'} = ''; $checked{'ORANGEi'}{"$upnpsettings{'ORANGEi'}"} = 'checked'; $checked{'GREENe'}{'on'} = ''; $checked{'GREENe'}{'off'} = ''; $checked{'GREENe'}{"$upnpsettings{'GREENe'}"} = 'checked'; $checked{'BLUEe'}{'on'} = ''; $checked{'BLUEe'}{'off'} = ''; $checked{'BLUEe'}{"$upnpsettings{'BLUEe'}"} = 'checked'; $checked{'REDe'}{'on'} = ''; $checked{'REDe'}{'off'} = ''; $checked{'REDe'}{"$upnpsettings{'REDe'}"} = 'checked'; $checked{'ORANGEe'}{'on'} = ''; $checked{'ORANGEe'}{'off'} = ''; $checked{'ORANGEe'}{"$upnpsettings{'ORANGEe'}"} = 'checked'; ############################################################################################################################ ############################################################################################################################ &Header::openbox('100%', 'center', 'UPnP'); print < END ; if ( $message ne "" ) { print "\n"; } else { print "\n"; } print "
$message"; } my $lines = 0; my $key = ''; foreach $key (sort keys %servicenames) { if ($lines % 2) { print "
$key\n"; my $shortname = $servicenames{$key}; my $status = &isrunning($shortname); print "$status\n"; $lines++; } print <Alle Dienste:
END ; #print <
#
#

# # # # # # #
External Interface
 RED - $netsettings{'RED_DEV'}

# $Lang::tr{'green'} - $netsettings{'GREEN_DEV'}

#END #; # if (&Header::blue_used()){ # print <$Lang::tr{'wireless'} - $netsettings{'BLUE_DEV'}

#END #; # } # if (&Header::orange_used()){ # print <$Lang::tr{'dmz'} - $netsettings{'ORANGE_DEV'}

#END #; # } # print <


Internal Interface
 RED - $netsettings{'RED_DEV'}

# $Lang::tr{'green'} - $netsettings{'GREEN_DEV'}

#END #; # if (&Header::blue_used()){ # print <$Lang::tr{'wireless'} - $netsettings{'BLUE_DEV'}

#END #; # } # if (&Header::orange_used()){ # print <$Lang::tr{'dmz'} - $netsettings{'ORANGE_DEV'}

#END #; # } # print <
print <

$Lang::tr{'options'}


Debug Mode:
Forward Rules:
Forward Chain:
Prerouting Chain:
Down Stream:
Up Strean:
Description Document:
XML Document:





END ; &Header::closebox(); &Header::closebigbox(); &Header::closepage(); ############################################################################################################################ ############################################################################################################################ sub isrunning { my $cmd = $_[0]; my $status = "$Lang::tr{'stopped'}"; my $pid = ''; my $testcmd = ''; my $exename; $cmd =~ /(^[a-z]+)/; $exename = $1; if (open(FILE, "/var/run/${cmd}.pid")) { $pid = ; chomp $pid; close FILE; if (open(FILE, "/proc/${pid}/status")) { while () { if (/^Name:\W+(.*)/) { $testcmd = $1; } } close FILE; if ($testcmd =~ /$exename/) { $status = "$Lang::tr{'running'}"; } } } return $status; }