]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - config/cfgroot/general-functions.pl
Fixed Guardian unable to change the config.
[people/pmueller/ipfire-2.x.git] / config / cfgroot / general-functions.pl
index 78f925f7058c81b8f93220f49ebc2fad3ad47a1d..84aa8aaa646c85a6b2068f2a40b8d59506462feb 100644 (file)
@@ -88,6 +88,7 @@ sub writehash
        flock FILE, 2;
        foreach $var (keys %$hash) 
        {
+               if ( $var eq "__CGI__"){next;}
                $val = $hash->{$var};
                # Darren Critchley Jan 17, 2003 added the following because when submitting with a graphic, the x and y
                # location of the mouse are submitted as well, this was being written to the settings file causing
@@ -102,6 +103,41 @@ sub writehash
        close FILE;
 }
 
+sub writehashpart
+{
+       # This function replaces the given hash in the original hash by keeping the old
+       # content and just replacing the new content
+
+       my $filename = $_[0];
+       my $newhash = $_[1];
+       my %oldhash;
+       my ($var, $val);
+
+       readhash("${filename}", \%oldhash);
+
+       foreach $var (keys %$newhash){
+               $oldhash{$var}=$newhash->{$var};
+       }
+
+       # write cgi vars to the file.
+       open(FILE, ">${filename}") or die "Unable to write file $filename";
+       flock FILE, 2;
+       foreach $var (keys %oldhash) 
+       {
+               if ( $var eq "__CGI__"){next;}
+               $val = $oldhash{$var};
+               # Darren Critchley Jan 17, 2003 added the following because when submitting with a graphic, the x and y
+               # location of the mouse are submitted as well, this was being written to the settings file causing
+               # some serious grief! This skips the variable.x and variable.y
+               if (!($var =~ /(.x|.y)$/)) {
+                       if ($val =~ / /) {
+                               $val = "\'$val\'"; }
+                       if (!($var =~ /^ACTION/)) {
+                               print FILE "${var}=${val}\n"; }
+               }
+       }
+       close FILE;
+}
 
 sub age
 {