Bonjour,
J'administre un site hébergé en Chine continentale (par nécessité absolue).
Depuis le 23 septembre dernier, les autorités chinoises ont imposé à tous les hébergeurs et fournisseurs d'accès d'installer un système de filtrage supplémentaire du net baptisé "blue dam".
Il se trouve que ce système rend la syndication entrante de Spip inopérante dans son ensemble : tous les flux entrants sont en "problème de syndication", qu'il s'agisse de RSS standard ou de flux météo appelé par Rainette qui reste vide.
J'ai installé un spip propre sans aucun plugin sur deux hébergeurs différents + deux serveurs locaux sur connexions privées, rien à faire, il est devenu impossible de syndiquer des flux entrants avec Spip.
J'ai tracé l'erreur jusqu'à la fonction recuperer_entetes de distant.php qui renvoit toujours 0, et plus particulièrement à la ligne 306 :
$s = @trim(fgets($f, 16384));
$f vaut "Ressource ID #1334" ce qui semble normal, mais fgets($f, 16384) ne renvoie jamais rien.
Par ailleurs j'ai fait un simple test en php : file_get_contents('url') passe quant à lui sans problème les filtres en question.
En utilisant un proxy hors de Chine, le problème disparaît immédiatement, mais le site se met immédiatement à ramer du fait de l'engorgement continuel des diverses couches de filtrage permettant de sortir de "l'intranet" chinois.
Donc quelqu'un a-t-il une idée de comment contourner ce problème de fonction fgets inopérante ? Y-a-t-il des solutions simples ? Des jeux de test que je pourrais mettre en place pour débugger ça ?
Merci d'avance
A bientôt
Simon
