seenthis / hebergement

Un repo pour documenter et lister les bugs sur l'hébergement de seenthis
2 stars 3 forks source link

un patch pour éviter l'IPv6 #11

Closed Fil closed 8 years ago

Fil commented 8 years ago

Sur l'ancien serveur, certaines URLs d'images bloquaient carrément le serveur, qui se trouvait à essayer de les télécharger avec un timeout infini.

Le problème se posait sur quelques serveurs, notamment un site d'infos ukrainien ou russe (??) et je l'avais tracé dans le fait qu'il tentait de se connecter en IPv6. Le patch suivant forçait l'IPv4. Je ne sais pas s'il est encore indispensable.

Index: ecrire/inc/distant.php
===================================================================
--- ecrire/inc/distant.php      (révision 21956)
+++ ecrire/inc/distant.php      (copie de travail)
@@ -676,10 +676,15 @@
                if ($t2['user'])
                        $proxy_user = base64_encode($t2['user'] . ":" . $t2['pass']);
        }
-       else
-               $first_host = $noproxy . $host;
+       else {
+               # gethostbyname force l'IPv4, sinon on plante souvent
+               if ($noproxy === 'ssl://')
+                       $first_host = $noproxy . $host;
+               else
+                       $first_host = $noproxy . array_pop(gethostbynamel($host));
+       }

-       $f = @fsockopen($first_host, $port);
+       $f = @fsockopen($first_host, $port, $errno, $errstr, $timeout=3);
        spip_log("Recuperer $path sur $first_host:$port par $f");
        if (!$f) return false;
Fil commented 8 years ago

Le patch est présent sur le nouveau serveur, et le test serait à faire éventuellement sur la page https://seenthis.net/messages/323930 en supprimant la copie locale des images.