From: ms Date: Mon, 12 Feb 2007 18:04:28 +0000 (+0000) Subject: UPNP.CGI hinzugefuegt X-Git-Tag: v2.3-beta1~845 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=97de2cae62f9d8bf61681561211fa8170d0808e2 UPNP.CGI hinzugefuegt SAMBA.CGI von Maniakikarus hinzugefuegt Bootskripte bearbeitet IPFIRE-DEVEL erstellt. git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@410 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- diff --git a/config/cfgroot/header.pl b/config/cfgroot/header.pl index 3a8adde121..a80d5880e4 100644 --- a/config/cfgroot/header.pl +++ b/config/cfgroot/header.pl @@ -360,7 +360,13 @@ sub genmenu { 'title' => "$tr{'outgoing firewall'}", 'enabled' => 1, }; - $subfirewall->{'60.fwopts'} = { + $subfirewall->{'60.upnp'} = { + 'caption' => 'UPnP', + 'uri' => '/cgi-bin/upnp.cgi', + 'title' => "Universal Plug and Play", + 'enabled' => 1, + }; + $subfirewall->{'70.fwopts'} = { 'caption' => $tr{'options fw'}, 'uri' => '/cgi-bin/optionsfw.cgi', 'title' => "$tr{'options fw'}", diff --git a/config/rootfiles/common/apache2 b/config/rootfiles/common/apache2 index 6ae9464d4a..c89c6fdb4e 100644 --- a/config/rootfiles/common/apache2 +++ b/config/rootfiles/common/apache2 @@ -1316,6 +1316,7 @@ srv/web/ipfire/cgi-bin/time.cgi srv/web/ipfire/cgi-bin/traffic.cgi srv/web/ipfire/cgi-bin/traffics.cgi srv/web/ipfire/cgi-bin/upload.cgi +srv/web/ipfire/cgi-bin/upnp.cgi srv/web/ipfire/cgi-bin/urlfilter.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi srv/web/ipfire/cgi-bin/wakeonlan.cgi diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot index b0d22926b9..48d67f3614 100644 --- a/config/rootfiles/common/configroot +++ b/config/rootfiles/common/configroot @@ -112,6 +112,8 @@ var/ipfire/time var/ipfire/urlfilter #var/ipfire/urlfilter/autoupdate #var/ipfire/urlfilter/bin +var/ipfire/upnp +#var/ipfire/upnp/settings var/ipfire/vpn #var/ipfire/vpn/caconfig #var/ipfire/vpn/config diff --git a/config/rootfiles/ver_devel/devel b/config/rootfiles/ver_devel/devel new file mode 100644 index 0000000000..32bb7c38b1 --- /dev/null +++ b/config/rootfiles/ver_devel/devel @@ -0,0 +1,30 @@ +bin +boot +etc +home +install +lib +media +mnt +opt +root +sbin +srv +tmp +#tools +usr/bin +usr/etc +usr/include +usr/info +usr/java +usr/lib +usr/libexec +usr/local +usr/man +usr/nagios +usr/sbin +usr/share +usr/sieve +#usr/src +usr/var +var diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index ecdd2561db..d70f87ab9b 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -19,6 +19,7 @@ require "${General::swroot}/header.pl"; my %sambasettings = (); my %checked = (); my %netsettings = (); +my %ovpnsettings = (); my $message = ""; my $errormessage = ""; my $shareentry = ""; @@ -28,12 +29,13 @@ my @proto = (); my %selected= () ; my $sharefile = "/var/ipfire/samba/shares"; &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); +&General::readhash("${General::swroot}/ovpn/settings", \%ovpnsettings); my %servicenames = ( - 'SMB Daemon' => 'smbd', - 'NetBIOS Nameserver' => 'nmbd', - 'Winbind Daemon' => 'winbindd' + 'SMB Daemon' => 'smbd', + 'NetBIOS Nameserver' => 'nmbd', + 'Winbind Daemon' => 'winbindd' ); &Header::showhttpheaders(); @@ -44,10 +46,14 @@ $sambasettings{'VALID'} = 'yes'; $sambasettings{'WORKGRP'} = 'homeip.net'; $sambasettings{'NETBIOSNAME'} = 'IPFIRE'; $sambasettings{'SRVSTRING'} = 'Samba Server %v running on IPFire 2.0'; -$sambasettings{'INTERFACES'} = ''; +$sambasettings{'INTERFACES'} = 'eth0'; $sambasettings{'SECURITY'} = 'share'; $sambasettings{'OSLEVEL'} = '20'; $sambasettings{'PDC'} = 'off'; +$sambasettings{'GREEN'} = 'on'; +$sambasettings{'BLUE'} = 'off'; +$sambasettings{'ORANGE'} = 'off'; +$sambasettings{'VPN'} = 'off'; $sambasettings{'WINSSERV'} = ''; $sambasettings{'WINS'} = 'off'; ### Values that have to be initialized @@ -64,16 +70,16 @@ $sambasettings{'ACTION'} = ''; if ($sambasettings{'ACTION'} eq $Lang::tr{'save'}) { - &General::writehash("${General::swroot}/samba/settings", \%sambasettings); + &General::writehash("${General::swroot}/samba/settings", \%sambasettings); } &General::readhash("${General::swroot}/samba/settings", \%sambasettings); if ($errormessage) { - &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); - print "$errormessage\n"; - print " \n"; - &Header::closebox(); + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "$errormessage\n"; + print " \n"; + &Header::closebox(); } $checked{'PDC'}{'on'} = ''; @@ -82,91 +88,125 @@ $checked{'PDC'}{"$sambasettings{'PDC'}"} = 'checked'; $checked{'WINS'}{'on'} = ''; $checked{'WINS'}{'off'} = ''; $checked{'WINS'}{"$sambasettings{'WINS'}"} = 'checked'; +$checked{'GREEN'}{'on'} = ''; +$checked{'GREEN'}{'off'} = ''; +$checked{'GREEN'}{"$sambasettings{'GREEN'}"} = 'checked'; +$checked{'BLUE'}{'on'} = ''; +$checked{'BLUE'}{'off'} = ''; +$checked{'BLUE'}{"$sambasettings{'BLUE'}"} = 'checked'; +$checked{'ORANGE'}{'on'} = ''; +$checked{'ORANGE'}{'off'} = ''; +$checked{'ORANGE'}{"$sambasettings{'ORANGE'}"} = 'checked'; +$checked{'VPN'}{'on'} = ''; +$checked{'VPN'}{'off'} = ''; +$checked{'VPN'}{"$sambasettings{'VPN'}"} = 'checked'; + +$selected{'MAPTOGUEST'}{'Never'} = ''; +$selected{'MAPTOGUEST'}{'Bad User'} = ''; +$selected{'MAPTOGUEST'}{'Bad Password'} = ''; +$selected{'MAPTOGUEST'}{$sambasettings{'MAPTOGUEST'}} = "selected='selected'"; +$selected{'SECURITY'}{'share'} = ''; +$selected{'SECURITY'}{'user'} = ''; +$selected{'SECURITY'}{'server'} = ''; +$selected{'SECURITY'}{'domain'} = ''; +$selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'"; ############################################################################################################################ ############################################################################################################################ &Header::openbox('100%', 'center', 'Samba'); print < + END ; - if ( $message ne "" ) { - print "\n"; } - else { - print "\n"; } - print "\n"; - my $shortname = $servicenames{$key}; - my $status = &isrunning($shortname); - print "$status\n"; - print <
- - - + if ( $message ne "" ) { + print "
\n"; } + else { + print "\n"; } + print "\n"; + my $shortname = $servicenames{$key}; + my $status = &isrunning($shortname); + print "$status\n"; + print <
+ + + END ; - print "
\n"; - $lines++; - } - print < - -
$message"; - } - - my $lines = 0; - my $key = ''; - foreach $key (sort keys %servicenames) - { - if ($lines % 2) { - print "
$key
$message"; + } + + my $lines = 0; + my $key = ''; + foreach $key (sort keys %servicenames) + { + if ($lines % 2) { + print "
$key
Alle Dienste: - - - -
-
-
- - \n"; + $lines++; + } + print < + +
Basisoptionen -
Workgroup: -
NetBIOS-Name: -
Server-String: -
Interfaces:
Alle Dienste: + + + +
+
+
+ +
+
+
Basisoptionen +
Workgroup: +
NetBIOS-Name: +
Server-String: +
Interfaces: OpenVpn - $ovpnsettings{'DDEVICE'} +
$Lang::tr{'green'} - $netsettings{'GREEN_DEV'} END ; - if (&Header::blue_used()){ - print <BLUE - + if (&Header::blue_used()){ + print < $Lang::tr{'wireless'} - $netsettings{'BLUE_DEV'} END ; - } - print < $Lang::tr{'dmz'} - $netsettings{'ORANGE_DEV'} +END +; + } + print < +
+
+
Sicherheitsoptionen +
Security: + +
+
+
Browsingoptionen +
OS Level: +
Primary Domain Controller:on / + off -
Sicherheitsoptionen -
Security: - -
Browsingoptionen -
OS Level: -
Primary Domain Controller:on / - off - -
WINS-Optionen -
WINS-Server: -
WINS-Support:on / - off - -
-
-
+ + + WINS-Optionen + WINS-Server: + WINS-Support:on / + off + + + + END ; &Header::closebox(); @@ -174,64 +214,82 @@ END &Header::openbox('100%', 'center', 'Shares'); print < - Name der FreigabePfadOptionen +
+ +
Name der FreigabePfadOptionen +END +; + open( FILE, "< $sharefile" ) or die "Unable to read $sharefile"; + @shares = ; + close FILE; + foreach $shareentry (sort @shares) + { + @shareline = split( /\;/, $shareentry ); + print <$shareline[0] + $shareline[2] + + END ; - open( FILE, "< $sharefile" ) or die "Unable to read $sharefile"; - @shares = ; - close FILE; - foreach $shareentry (sort @shares) - { - @shareline = split( /\;/, $shareentry ); - print <
$shareline[0] - $shareline[2] - - + if ($shareline[1] eq 'enabled') { + print <
+ + + + END ; - if ($shareline[1] eq 'enabled') { - print <
- - - - + } elsif ($shareline[1] eq 'disabled') { + print <
+ + + + END ; - } elsif ($shareline[1] eq 'disabled') { - print <
- - - - + } + print <
+ + + + +
+ + + +
+
END ; - } - print <
- - - -
-
- - - -
-
+ } + print <
Legende:   Freigabe bearbeiten |  Freigabe loeschen   +
END ; - } - print <Legende:   Freigabe bearbeiten |  Freigabe loeschen   - + +&Header::closebox(); + + +if ($sambasettings{'SECURITY'} eq 'user') +{ +&Header::openbox('100%', 'center', 'User'); + +print < + +
+
Benutzerverwaltung +
END ; &Header::closebox(); +} &Header::closebigbox(); &Header::closepage(); @@ -241,34 +299,33 @@ END 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; -} + 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; +} diff --git a/html/cgi-bin/upnp.cgi b/html/cgi-bin/upnp.cgi new file mode 100644 index 0000000000..4623d72c2f --- /dev/null +++ b/html/cgi-bin/upnp.cgi @@ -0,0 +1,181 @@ +#!/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(); + +$upnpsettings{'ENABLED'} = 'off'; +$upnpsettings{'GREEN'} = 'on'; +$upnpsettings{'BLUE'} = '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); + +############################################################################################################################ +############################################################################################################################ + +if ($upnpsettings{'ACTION'} eq $Lang::tr{'save'}) +{ + &General::writehash("${General::swroot}/upnp/settings", \%upnpsettings); +} +elsif ($upnpsettings{'ACTION'} eq 'Start') +{ + $upnpsettings{'ENABLED'} = 'on'; + &General::writehash("${General::swroot}/upnp/settings", \%upnpsettings); + system('/usr/local/bin/upnpctrl start'); +} +elsif ($upnpsettings{'ACTION'} eq 'Stop') +{ + $upnpsettings{'ENABLED'} = 'off'; + &General::writehash("${General::swroot}/upnp/settings", \%upnpsettings); + system('/usr/local/bin/upnpctrl stop'); +} +elsif ($upnpsettings{'ACTION'} eq $Lang::tr{'restart'}) +{ + &General::writehash("${General::swroot}/upnp/settings", \%upnpsettings); + system('/usr/local/bin/upnpctrl restart'); +} + +&General::readhash("${General::swroot}/upnp/settings", \%upnpsettings); + +if ($errormessage) { + &Header::openbox('100%', 'left', $Lang::tr{'error messages'}); + print "$errormessage\n"; + print " \n"; + &Header::closebox(); +} + +$checked{'GREEN'}{'on'} = ''; +$checked{'GREEN'}{'off'} = ''; +$checked{'GREEN'}{"$upnpsettings{'GREEN'}"} = 'checked'; +$checked{'BLUE'}{'on'} = ''; +$checked{'BLUE'}{'off'} = ''; +$checked{'BLUE'}{"$upnpsettings{'BLUE'}"} = '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: + + + +
+ +
+
+ +
$Lang::tr{'options'} +
$Lang::tr{'interfaces'} +   $Lang::tr{'green'} - $netsettings{'GREEN_DEV'} +END +; + if (&Header::blue_used()){ + print <  $Lang::tr{'wireless'} - $netsettings{'BLUE_DEV'} +END +; + } + print < +
+
+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; +} + diff --git a/lfs/cdrom b/lfs/cdrom index 33fc9a8a79..6f14c9ec23 100644 --- a/lfs/cdrom +++ b/lfs/cdrom @@ -54,10 +54,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) # Reason for this tar+untar+tar is removing of entries listed two or more in src/ROOTFILES mkdir -p /install/cdrom/doc find $(DIR_SRC)/config/rootfiles/common -maxdepth 1 -type f | xargs cat >> /tmp/ROOTFILES - find $(DIR_SRC)/config/rootfiles/ver_$(IPFVER) -maxdepth 1 -type f | xargs cat >> /tmp/ROOTFILES + find $(DIR_SRC)/config/rootfiles/ver_$(ED) -maxdepth 1 -type f | xargs cat >> /tmp/ROOTFILES tar -c -C / --files-from=/tmp/ROOTFILES \ -f /$(SNAME).tar --exclude='#*' --exclude='dev/pts/*' \ - --exclude='proc/*' --exclude='tmp/ROOTFILES' + --exclude='proc/*' --exclude='usr/src/ccache/*' --exclude='usr/src/cache/*' \ + --exclude='tmp/ROOTFILES' rm -f /tmp/ROOTFILES tar -x -C /tmp -f /$(SNAME).tar rm -f /$(SNAME).tar @@ -86,4 +87,4 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cp /usr/lib/syslinux/isolinux.bin /install/cdrom/boot/isolinux/isolinux.bin; \ cd /install/cdrom && mkisofs -J -r -V "$(NAME)_$(VERSION)" \ -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \ - -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-$(IPFVER).iso + -c boot/isolinux/boot.catalog . > /install/images/$(SNAME)-$(VERSION).$(MACHINE)-$(ED).iso diff --git a/lfs/configroot b/lfs/configroot index 2a33bc6233..27c2abd906 100644 --- a/lfs/configroot +++ b/lfs/configroot @@ -54,7 +54,7 @@ $(TARGET) : # Create all directories for i in addon-lang alcatelusb auth backup ca certs cnx_pci connscheduler crls ddns dhcp dhcpc dmzholes \ eagle-usb eciadsl ethernet isdn key langs logging main mbmon modem net-traffic nfs optionsfw outgoing/bin patches pakfire portfw \ - ppp private proxy/advanced qos/bin red remote snort time urlfilter/autoupdate urlfilter/bin vpn wakeonlan wireless xtaccess ; do \ + ppp private proxy/advanced qos/bin red remote snort time urlfilter/autoupdate urlfilter/bin upnp vpn wakeonlan wireless xtaccess ; do \ mkdir -p $(CONFIG_ROOT)/$$i; \ done @@ -65,7 +65,7 @@ $(TARGET) : isdn/settings main/hosts main/settings optionsfw/settings outgoing/settings outgoing/rules pakfire/settings \ portfw/config ppp/settings-1 ppp/settings-2 ppp/settings-3 ppp/settings-4 \ ppp/settings-5 ppp/settings proxy/settings proxy/advanced/settings remote/settings qos/settings qos/classes qos/subclasses qos/level7config qos/portconfig \ - qos/tosconfig snort/settings vpn/config vpn/settings vpn/ipsec.conf \ + qos/tosconfig snort/settings upnp/settings vpn/config vpn/settings vpn/ipsec.conf \ vpn/ipsec.secrets vpn/caconfig wakeonlan/clients.conf wireless/config wireless/settings; do \ touch $(CONFIG_ROOT)/$$i; \ done diff --git a/make.sh b/make.sh index e383b05313..fed147e44b 100644 --- a/make.sh +++ b/make.sh @@ -33,7 +33,7 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` SVN_REVISION=`svn info | grep Revision | cut -c 11-` -IPFVER="full" # Which version should be compiled? (full|light|voice) +IPFVER="full devel" # Which version should be compiled? (full|light|voice|devel) # Set an information about the build number if [ -e ./.svn ]; then @@ -575,7 +575,10 @@ buildpackages() { beautify message DONE # Create images for install - ipfiremake cdrom + for i in $IPFVER + do + ipfiremake cdrom ED=$i + done ipfiremake pxe cp -f $LFS/install/images/{*.iso,*.tgz} $BASEDIR >> $LOGFILE 2>&1 diff --git a/src/initscripts/init.d/applejuice b/src/initscripts/init.d/applejuice index cdb0655dce..5ea1227b0d 100644 --- a/src/initscripts/init.d/applejuice +++ b/src/initscripts/init.d/applejuice @@ -1,7 +1,7 @@ #!/bin/bash HOME=/opt/applejuice JAVA=/usr/bin/java -. /var/ipfire/applejuice/settings +eval $(/usr/local/bin/readhash /var/ipfire/applejuice/settings) case "$1" in diff --git a/src/initscripts/init.d/console b/src/initscripts/init.d/console index 30f5bdfafc..cbf3aaf68b 100644 --- a/src/initscripts/init.d/console +++ b/src/initscripts/init.d/console @@ -15,7 +15,7 @@ . /etc/sysconfig/rc . ${rc_functions} -. /var/ipfire/main/settings +eval $(/usr/local/bin/readhash /var/ipfire/main/settings) FONT="lat0-16" KEYMAP_CORRECTIONS="euro2" diff --git a/src/initscripts/init.d/localnet b/src/initscripts/init.d/localnet index a3b70162d8..9f38f34dc2 100644 --- a/src/initscripts/init.d/localnet +++ b/src/initscripts/init.d/localnet @@ -17,7 +17,7 @@ case "${1}" in start) - . /var/ipfire/main/settings + eval $(/usr/local/bin/readhash /var/ipfire/main/settings) boot_mesg "Bringing up the loopback interface..." ip addr add 127.0.0.1/8 label lo dev lo ip link set lo up @@ -41,7 +41,7 @@ case "${1}" in ;; status) - . /var/ipfire/main/settings + eval $(/usr/local/bin/readhash /var/ipfire/main/settings) echo "Hostname is: $(hostname)" ip link show lo ;; diff --git a/src/initscripts/init.d/network b/src/initscripts/init.d/network index 9e2056f3a0..6669b28a1c 100644 --- a/src/initscripts/init.d/network +++ b/src/initscripts/init.d/network @@ -14,10 +14,10 @@ . /etc/sysconfig/rc . ${rc_functions} -. /var/ipfire/ethernet/settings -. /var/ipfire/dhcp/settings -. /var/ipfire/ppp/settings -. /var/ipfire/vpn/settings +eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings) +eval $(/usr/local/bin/readhash /var/ipfire/dhcp/settings) +eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings) +eval $(/usr/local/bin/readhash /var/ipfire/vpn/settings) # This is a small wrapper for dhcpcd.exe if ( echo $0 | /bin/grep -q 'dhcpcd.exe' ); then diff --git a/src/initscripts/init.d/upnpd b/src/initscripts/init.d/upnpd index 44201a385a..ca05abf753 100644 --- a/src/initscripts/init.d/upnpd +++ b/src/initscripts/init.d/upnpd @@ -19,7 +19,7 @@ ALLOW_MULTICAST=no # configuration -. /var/ipfire/upnp/settings +eval $(/usr/local/bin/readhash /var/ipfire/upnp/settings) case "$1" in start)