Dnia 2005-03-10 08:50, Marcin Król napisał :
A.L.E.C wrote:
Marcin Król wrote:
Właściwie już sobie poradziłeś, ale podpowiem reszcie. Redirector
zamyka
się najczęściej na skutek błędu (fatalnego), przez co nie może
kontynuować pracy. Zamknięcie się wszystkich redirectorów oznacza
niemożliwość kontynuowania pracy przez squida co też sygnalizuje.
Najprościej uruchomić redirector w trybie interaktywnym, wklepać jakiś
tekst i zobaczyć jaki komunikat błędu wypluwa.
no to jeszcze ja dodam, że u mnie objawy były identyczne, a redirector z
ręki działał poprawnie, więc to nie jest 100% sposób na wykrycie
problemu.
Ale wiesz, do bazy zdalnej to on projektowany nie był ;)
A u mnie jest zdalna baza MySQL, serwer stoi na zewnętrznym IP i nie
jest w adresacji LAN'a :-D
PS: zamiast "xxx.xxx.xxx.xxx" należy wpisać z jakim adresem IP ma być
widoczne wyjście z serwera PROXY, albo można ukryć całkiem klientów
wewnątrz LAN'a... Wybór należy do Was :)
--
Pozdrawiam, Wiktor R. Braun
--- squid_warnings/lms-squid-warnings 2005-03-02 21:27:52.000000000 +0100
+++ /etc/squid/warnings 2005-03-11 00:09:03.024267296 +0100
@@ -43,9 +43,12 @@
my $dbuser = $ini->val('database', 'user') || 'root';
my $dbpasswd = $ini->val('database', 'password') || '';
my $dbname = $ini->val('database', 'database') || 'lms';
my $redirect = $ini->val('squid-warnings', 'redirect') || '
http://lms.rulez.pl/';
-while ($adres = <STDIN>) {
+#open (LOG, ">/tmp/squid-$$.log");
+
+while (<STDIN>) { my $adres = $_;
if ((!defined($dbase))||($dbase->state))
{
if($dbtype eq "mysql")
@@ -69,17 +72,22 @@
$dbq = $dbase->prepare_cached("SELECT warning FROM nodes WHERE ipaddr=INET_ATON(?)");
}
- @lista = split(' ', $adres);
- @ip = split('/', $lista[1]);
- $dbq->execute($ip[0]);
- my $row = $dbq->fetchrow_hashref();
- if ($row->{'warning'}=='1') {
- if (!($lista[0] =~ m/$redirect/)) {
- $lista[0] = $redirect."?oldurl=".$lista[0];
- $adres = join(' ',@lista)."\n";
+ @lista = split(' ', $adres);
+ @ip = split('/', $lista[1]);
+ $lista[1]="$ip[0]/xxx.xxx.xxx.xxx";
+ if ($lista[3]=='GET') {
+# @ip = split('/', $lista[1]);
+ $dbq->execute($ip[0]);
+ my $row = $dbq->fetchrow_hashref();
+ if ($row->{'warning'}=='1') {
+ if (!($lista[0] =~ m/$redirect/)) {
+ $lista[0] = $redirect."?oldurl=".$lista[0];
+ }
}
}
+ $adres = join(' ',@lista)."\n";
print $adres;
+# print LOG "$adres";
}
+#close (LOG);
+
$dbq->finish;
$dbase->disconnect();