Thus0 Lapin nain
Localisation : Paris Nbr de messages : 5 Carottes : 6290
| Sujet: Opennab : support de proxy authentifiant Ven 12 Oct 2007 - 15:40 | |
| Bonjour,
j'ai déjà posté un message sur le forum de sourceforge mais comme j'ai l'impression que peu de monde le lit, je remets ici mon post :
http://sourceforge.net/forum/forum.php?thread_id=1843120&forum_id=654765
pour pouvoir faire fonctionner par exemple le nabaztag sur un intranet qui utilise un proxy authentifiant (login/mot de passe) pour sortir sur internet.
a+ | |
|
oaz Silver Nabz
Localisation : Haute-Garonne Nabaztag : oaz (v2) Nbr de messages : 352 Carottes : 6587
| Sujet: Re: Opennab : support de proxy authentifiant Ven 12 Oct 2007 - 16:38 | |
| Ok j'enregistre la demande
Ca devrait intéresser aussi Neffrith qui avait suggéré de revoir la classe Request pour pouvoir fonctionner sans cURL | |
|
Neffrith Nabz Junior
Localisation : France Nbr de messages : 71 Carottes : 6351
| Sujet: Re: Opennab : support de proxy authentifiant Ven 12 Oct 2007 - 21:43 | |
| - oaz a écrit:
- Ca devrait intéresser aussi Neffrith qui avait suggéré de revoir la classe Request pour pouvoir fonctionner sans cURL
c'est en cours... Je met ca dans le pipe alors Neff | |
|
oaz Silver Nabz
Localisation : Haute-Garonne Nabaztag : oaz (v2) Nbr de messages : 352 Carottes : 6587
| Sujet: Re: Opennab : support de proxy authentifiant Sam 13 Oct 2007 - 15:21 | |
| Je reprends ici la discussion commencée sur sourceforge. Je pense que cela sera plus efficace pour garder tout le monde dans la boucle. - Thus0 a écrit:
Bonjour, merci pour ton OpenNab ! Je l'utilise sur l'intranet de mon entreprise qui utilise un proxy authentifiant pour sortir sur internet. Avec le nabaztag seul, cela ne marchait pas car il ne supporte par l'authentification des proxys.. Mais grâce à OpenNab, je peux enfin connecter mon Nabaztag : il faut modifier quelques options de curl - Fichier includes/request.php - Code:
-
function Forward() { $url = 'http://'.$this->host.$this->uri; $curlHandle = curl_init($url); if (!$curlHandle) return false; // Modif de Thus0 curl_setopt($curlHandle, CURLOPT_PROXY, "192.168.0.226:3128"); curl_setopt($curlHandle, CURLOPT_PROXYUSERPWD, "monlogin:monpassword"); // Fin modif de Thus0 curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $this->sentHeaders); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlHandle, CURLOPT_BINARYTRANSFER, 1); curl_setopt($curlHandle, CURLOPT_CONNECTTIMEOUT, 2); // curl_setopt($curlHandle, CURLOPT_TIMEOUT, 4); curl_setopt($curlHandle, CURLOPT_TIMEOUT, 30); @curl_setopt($curlHandle, CURLOPT_FOLLOWLOCATION, 1);
Pourrais-tu intégrer ces modifs dans la prochaine version de OpenNab ? Je te propose les paramètres suivants dans le config/opennab.ini : - Code:
-
;; Proxy config ProxyUser=Thus0 ProxyPassword=toto123 ProxyServer=192.168.0.226 ProxyPort=3128
Jusqu'ici rien à dire. - Thus0 a écrit:
Ensuite dans la fonction forward de request.php , il faudrait activer les lignes du proxu uniquement si on est en mode 'classic' ou 'violet', du type : - Code:
-
if ($ServerMode=='classic' or $ServerMode='violet') { curl_setopt($curlHandle, CURLOPT_PROXY, "$ProxyServer:$ProxyPort"); curl_setopt($curlHandle, CURLOPT_PROXYUSERPWD, "$ProxyUser:$ProxyPassword"); // peut-être aussi augmenter le timeout si on passe par le proxy ? curl_setopt($curlHandle, CURLOPT_TIMEOUT, 30); }
Qu'en penses-tu ? a+ Thus0 http://www.pervasive-network.org/
Bon, j'ai posté trop vite... en fait, il faudrait tester si le support du proxy est activé et si de plus c'est un proxy authentifiant : donc en gros, l'idée : - Code:
-
if (isset($ProxyServer)) { if ($ServerMode=='classic' or $ServerMode='violet') { curl_setopt($curlHandle, CURLOPT_PROXY, "$ProxyServer:$ProxyPort"); if (isset($ProxyUser)) { curl_setopt($curlHandle, CURLOPT_PROXYUSERPWD, "$ProxyUser:$ProxyPassword"); } // peut-être aussi augmenter le timeout si on passe par le proxy ? curl_setopt($curlHandle, CURLOPT_TIMEOUT, 30); } }
a+
Là j'ai un peu plus de mal à comprendre la finalité. Tester si les paramètres de proxy sont présents avant de les utiliser : ok, normal. Tester le ServerMode, je ne pense pas que ce soit utile. La méthode Forward de Request n'est appelée que s'il y a effectivement un appel http réalisé vers un autre serveur. Si on est en standalone, elle n'est pas appelée pour les requêtes vers Violet (c'est la méthode Generate qui est appelée) Par ailleurs, même en standalone, certaines fonctions peuvent faire des appels vers internet, pour le tts par exemple. Il leur faut donc le proxy correctement positionné. Par ailleurs, il y a un point qui n'a pas été abordé. Les séquences de reconaissance vocale ne passent pas par Request mais par HandcraftedPostRequest qui n'utilise pas curl. Il faut donc également mettre à jour cette classe si le proxy est positionné. A mon humble avis, la solution la plus sage c'est de virer curl et de faire une classe Request utilisable partout en se basant sur un composant http php natif+sockets qui supporte les proxy. | |
|
Neffrith Nabz Junior
Localisation : France Nbr de messages : 71 Carottes : 6351
| Sujet: Re: Opennab : support de proxy authentifiant Sam 13 Oct 2007 - 15:58 | |
| - oaz a écrit:
A mon humble avis, la solution la plus sage c'est de virer curl et de faire une classe Request utilisable partout en se basant sur un composant http php natif+sockets qui supporte les proxy. Je fais deux tests de classes: - un qui vire completement curl avec support du proxy en natif php. - un autre qui permet d'activé automatiquement curl si present, ou de force l'utilisation ou la non utilisation de curl... mais qui par contre n'a le support du proxy qu'en mode curl. Neff | |
|
Contenu sponsorisé
| Sujet: Re: Opennab : support de proxy authentifiant | |
| |
|