Je butte sur un problème depuis plusieurs jours sans trouver vraiment de solutions sur le net.
J'ai un serveur webdav hébergé à l'extérieur accessible depuis internet. Je dois pourvoir déposer, depuis un serveur interne à mon entreprise et de façon régulière (quotidienne), des fichiers de ce serveur vers le serveur webdav, sachant qu'il faut pour cela passer par un proxy.
Pour ce faire j'ai créé un script perl utilisant la libraire HTTP::DAV . Dans la documentation il est dit que les paramètres de proxy sont hérités de la librairie perl LWP::UserAgent.
Mon script fonctionne très bien quand je suis sur un poste raccordé aussi directement sur internet (comme chez moi par ex), par contre dès que je l'execute sur mon serveur avec le paramétrage proxy, il n'y arrive pas. En regardant dans les logs de notre proxy sortant, je constate que celui-ci ne recoit aucune requete de la directive perl me permettant d'ouvrir le site en webdav, par contre il en recoit une quand je teste uniquement avec la librairie LWP::UserAgent
Conclusion que je fais: l'héritage des fonctionnalités proxy ne se fait pas entre les deux librairies, auriez-vous une solution ?
voici mon script :
#!/usr/bin/perl
#
# Récupération d'une page web à travers d'un proxy
# Les paramètres du proxy sont écrits dans le programme
#
# Filename : test2.pl
# Usage : ./test2.pl
#
use LWP::UserAgent;
use HTTP::Request;
my $ua = new LWP::UserAgent();
my $http_proxy = 'http://xx.xx.xx.xx:8080/';
$ua->proxy(['http','https'], $http_proxy);
$ua->env_proxy();
use HTTP::DAV;
HTTP::DAV::DebugLevel(3);
my $url = 'http://xxx.fr/alfresco/webdav/';
$d = new HTTP::DAV();
$d->credentials(-user=>"prenom.nom",-pass =>"password",-url=>$url);
$d->open( -url=>$url )
or die("Couldn't open $url: " .$d->message . "\n");
$d->unlock( -url => $url );
PS: toutes les machines sont en linux debian lenny