Ticket #31 (new enhancement)
un demi problème, des idées de demi solution
| Reported by: | thaeron | Owned by: | thaeron |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | modules | Version: | |
| Keywords: | Cc: |
Description
En continuant le module wikipedia je me suis aperçu que parfois le module se bloquait. J'ai cherché d'où ça venait et ça provient de gethostbyname() (dans le composant requete) qui est merveilleusement lent parfois.
En général gethostbyname() prend moins d'une seconde mais parfois ça peut aller a 5min.
C'est donc un problème, qui pourrait être résolu en mettant les ip au lieu des urls. Mais le nom de domaine change d'ip faudra MAJ le code & les modules donc c'est chiant.
Donc deuxième demi idée : on peut faire le gethostbyname() pendant l'init et utiliser l'ip ensuite.
Problème : faudra unload & reload le module pour mettre à jour l'ip.
Amélioration de la deuxième demi idée : faire un module qui serait une sorte de gethostbyname avec cache et qui mettrait à jour ponctuellement et surtout façon écartée dans le temps. (et peut-être le threader (si on arrive a une méthode de leak non cumulatif).
![(please configure the [header_logo] section in trac.ini)](http://cryptofractalx.ath.cx/imgs/ns-logo-complet.png)
gethostbyname() est bloquant. c-ares est un resolver asynchrone qui resoudrais le probleme. adns est une autre solution.