summaryrefslogtreecommitdiffstats
path: root/web_wizard/scripts/Webconf.pm
blob: cf9d9b55b8586bd46b33a1da5f0554f0dd4a9781 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/perl

package Webconf;
require "__WIZ_HOME__/common/scripts/Vareqval.pm";
require "__WIZ_HOME__/common/scripts/DrakconnectConf.pm";
use MDK::Common;

use strict;

my $o = DrakconnectConf->new();

sub	check {
    $> and return 1;
    $o->is_dhcp() and return 2;
    0;
}

my $file = "/etc/httpd/conf/commonhttpd.conf";
my $root;

if (-f $file) {
    open(FH, "< $file") or die "$! ($file)";
    while (<FH>) {
	if (/^\s*\#?\s*DocumentRoot\s+(.*)/) {
	    close(FH);
	    $root = "$1";
	    last;
	}
    }
    close(FH);
}

sub	get_docroot {
    $root;
}

sub	check_dir {
    -d ($ENV{wiz_dir}) and return 10;
    1;
}

sub	chg_docroot {
    substInFile {
	s|(^\s*\#?\s*DocumentRoot\s*).*|$1$ENV{wiz_dir}|;
    } "/etc/httpd/conf/commonhttpd.conf";
}

sub	do_it {
    my	$file = "/etc/httpd/conf/commonhttpd.conf";
    my	$that = "localhost";

    if ($ENV{wiz_web_external} eq "1") {
	$that = "all";
    }
    elsif ($ENV{wiz_web_internal} eq "1") {
	($that) = $o->get_from_known_dev("IP") =~ qr/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.)\d{1,3}$/;
	$that .= " 127.0.0.1";
    }
    cp_af($file, $file.".orig");
    substInFile {    
	if( m /^\s*<Directory.*>/s...m/^\s*<\/Directory>/s ) {
	    { s /^\s*Allow .*$/    Allow from $that\n/s;}
	    ;}
    } $file;
#    chg_docroot();
    system("/etc/rc.d/init.d/httpd restart");
    10;
}

1;