#!/usr/bin/perl -w
#
# Script zur automatischen Konfiguration von Squid.
# (c) Bernd Burre 2002
# jegliche Nutzung erfolgt auf eigenes Risiko
# weitere Informationen unter http://www.linux-hamburg.de
#
($sek, $min, $std, $mtag, $mon, $jahr) = (localtime(time))[0,1,2,3,4,5];
$mon=$mon +1;
if ($mtag < 10) {
$mtag = "0" . "$mtag";
}
if ($mon < 10) {
$mon = "0" . "$mon";
}
if ($sek < 10) {
$sek = "0" . "$sek";
}
if ($min < 10) {
$min = "0" . "$min";
}
$jahr=$jahr + 1900;
$datum="$mtag.$mon.$jahr.$std.$min.$sek";
print "$datum\n";
# den Servernamen bestimmen
open RC, "/etc/rc.config";
while (<RC>) {
        if ( /^FQHOSTNAME=(.*)/) {
           $SERVERNAME="$1";
           $SERVERNAME =~ s/"//g;
         }
}
close(RC);
$SERVERNAME =~ m/^([^\.]+)\.(.*$)/;
$SERVER=$1;
$DOMAIN=$2;
#
# Sicherheitsabfrage, der Ausdruck "dummy" darf nicht
# im Domainteil enthalten sein
if ( $DOMAIN =~ /dummy/ ) {
 die "Das Netzwerk wurde nicht konfiguriert\n";
}
# Den Servernamen setzen
print `hostname $SERVER`;
# Die Serverip und die Netzip bestimmen
#
$SERVIP=gethostbyname($SERVERNAME);
($IP1,$IP2,$IP3,$IP4)=unpack('C4',$SERVIP);
# zum Debuggen
# $IP1=192;
# $IP2=168;
# $IP3=2;
# $IP4=3;
# End Debug
$NETIP="$IP1.$IP2.$IP3";
# $SERVERIP="$NETIP.$IP4";
undef($IP4);
$NETIP="$IP1.$IP2";
#
open FILE, "/etc/squid.conf";
@rc=<FILE>;
close (FILE);

open FILE, "> /etc/squid.conf.$datum";
foreach (@rc) {
print FILE;
}
close (FILE);
open FILE, "> /etc/squid.conf";
foreach (@rc) {
        if ( m/^acl CONNECT method CONNECT/ ) {
	 print FILE;
	 print FILE "acl local src $NETIP.0.0/255.255.0.0\n";
	} elsif ( m/^http_access deny all/ ) {
	 print FILE "http_access allow local\n";
	 print FILE;
	} else {
	 s/^(append_domain).*$/$1 .$DOMAIN/;
	 print FILE;
        }
}
close (FILE);

										      
