#!/usr/local/bin/perl -- -*- C -*-
# Librarie de fonctions utilisees par la plupart des cgi du CRU
# 21 Fev 97 Modification sub bon_domaine : recherche de la chaine "not found"
$IconDir = "http://vespa.cru.fr/listes/images";
# Cherche des caracteres suspects dans une adresse electronique
sub ripoux {
local($adr) = @_;
$adr =~ m/[\*\;\,\"\\\$\~\|\/\s]/;
}
# Verifie que le domaine de l'adresse existe
sub bon_domaine {
local($adr) = @_;
$adr =~ m/@/;
local($domain) = $';
open (HOST,"host $domain 2>&1 |") or die "Pb host !";
local($bon1) = 1;
while (){
$bon1 = 0 if /Host not found/i;
}
close(HOST);
if (!$bon1) {
open (HOST,"nslookup -querytype=soa $domain 2>&1 |") or die "Pb nslookup !";
local($bon2) = 0;
while (){
$bon2 = 1 if /.*origin/;
}
close(HOST);
}
return ($bon1 || $bon2);
}
# Verifie que l'adresse contient un @
sub a_un_domaine {
local($adr) = @_;
$adr =~ m/.*@/;
}
# Verifie que l'adresse correspond a une liste cataloguee
sub liste_connue {
local($adr) = @_;
open (LS,"ls -d /var/www/LISTES/*@* |");
local($trouve) = 0;
while ()
{
if (/.*$adr/)
{
$trouve = 1;
}
}
close(LS);
$trouve ;
}
# Affiche le message passe en parametre
sub aff_msg {
local($msg) = @_;
print <<"***FIN*HTML***";
Content-type: text/html
|
$msg |
|
***FIN*HTML***
}
# Affiche le message passe en parametre dans une fenetre passee en parametre
sub aff_msg_dans {
local($fenetre) = pop(@_);
local($msg) = @_;
print <<"***FIN*HTML***";
Content-type: text/html
Window-Target: $fenetre
|
$msg |
|
***FIN*HTML***
}
1; #return true