Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2007, 11h58   #1
Membre à l'essai
 
Inscription : février 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 35
Points : 21
Points : 21
Par défaut [LDAP] connection timeout

bonjour

je dois gérer le fait que le serveur ldap puisse etre injoignable, mais sans perturber l'appli:
pour mes connexions à l'appli, je tente une authentifcation sur ldap (en anonyme, pour ensuite chercher le DN d' l'utilisateur et ... etc ...)

or pour le moment, c'est bloquant:
si le serveur ldap est indisponible : (je simule ça en mettant une autre adresse ip), le script tourne jusqu'à
Citation:
Maximum execution time of 30 seconds exceeded
au passage, avec ini_set("max_execution_time",2)
il m'affiche
Citation:
Maximum execution time of 2 seconds exceeded
seulement après 30 secondes ...

déjà le soucis, c'est que ldap_connect renvoie une ressource et non pas false

ce que je voudrais, c'est faire un ldap_bind (anonym) et si après 2 seconde, il y arrive pas, on laisse tomber et on continue

je suis en PHP 4, donc oublions déjà le try/catch


merci
++
blackwizard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h28   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Attention ici vous jouez sur le temps maximal d'exécution d'un script PHP (tout code confondu). De mémoire, une telle question avait été posée sur le forum mais est restée sans réponse car PHP (et l'API LDAP C sous-jacente ?) n'offre vraisemblablement pas d'options pour gérer ce timeout à la connexion mais uniquement lors des recherches (LDAP_OPT_TIMELIMIT).

D'autre part il y a un autre élément à prendre en compte : la connexion n'est pas établie lors du ldap_connect mais à la première opération (le bind par exemple).

Donc à part tester la connexion avant avec fsockopen ou curl, je ne vois pas.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h19   #3
Membre à l'essai
 
Inscription : février 2007
Messages : 35
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 35
Points : 21
Points : 21
oui en effet, le max_execution_time, c pour l'ensemble du script, mais ce que je voulais souligner, c'est le fait mettre un timout sur le script de manière global ne semble pas influencer du tout la tentative de connexion, avec max_execution_time=2, le script devrais s'arrêter parès 2 secondes; or ce n'est pas le cas.

le LDAP_OPT_TIMELIMIT, ou en effet, c pour les ldap_search

sinon, c'est bon, j'ai utilisé fsockopen, et ça roule : il continue si il ne trouve pas le serveur :

Code :
1
2
3
4
5
6
7
8
9
/* test the socket */
if($fp=@fsockopen($ldaphost, $ldapport, $errno, $errstr, 2)){
	fclose($fp);
	/* init ldap connection */
	$ldap = ldap_connect($ldaphost,$ldapport);				
	ldap_set_option ($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
	/* bind */							 
	$r = ldap_bind($ldap);
}
blackwizard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h46.


 
 
 
 
Partenaires

Hébergement Web