J'ai réussi à compiler Gophrier et à l'installer sur ma machine, sur le port 7072. Par rapport aux maigres instructions, penser à faire en plus un "make install". J'avais re-paramétré le fichier "CMakeLists.txt" afin de définir les répertoires qui conviennent à mon système. Entre autres, celui de /var/gopher est déjà pris par mon serveur GoFish... Bon tout s'est bien passé quand même. Heureusement, car je ne connais pas un traître mot de langage C. Donc, on peut en conclure qu'avec un tutoriel bien détaillé, l'installation est jouable par toute personne méthodique. J'ai fait le paramétrage dans /etc/gophrier en y mettant les fichiers idoines. Là aussi, il faudra documenter. J'ai fait 2 réinitialisations consécutives de ma machine pour voir si le démon démarrait bien. Tout est OK. Le fichier de log fonctionne bien et il est bien utile. J'ai été obligé de tâtonner pour savoir quel était le nom du fichier gophermap. C'était tout bonnement "gophermap". Ce n'est pas évident car le serveur GoFish, par exemple impose ".cache", pour d'autres serveurs c'est ".gophermap". Donc à mettre d'urgence dans la doc, car il n'y a rien de normalisé dans ce domaine. Maintenant, ce que j'ai moins aimé:
1. il faut impérativement mettre une barre oblique en début de sélecteur d'un fichier à la racine. Les autres serveurs sont plus tolérants. Mais, bon ça se discute.
2. s'il n'y a pas de fichier gophermap, le contenu du répertoire s'affiche quand même. Certains serveurs sont permissifs à ce sujet, d'autres n'acceptent de ne servir que les fichiers qui sont inscrits dans le gophermap. C'est un choix du développeur, et seulement le sien.
J'ai quand même trouvé un bug ! Selon la version première du Gopher, il y a un signe de fin de transmission qui est un "point" ajouté au fichier transmis. Si l'on prend la version Gopher+, il y a d'autres possibilités. A ce que j'ai compris, ce serveur n'est pas compatible Gopher+ et donc il devrait y avoir un "point" final. C'est bien ce qu'il fait quand il transmet le fichier gophermap mais pas avec un quelconque fichier texte. On peut analyser la transaction avec Netcat en faisant :
echo -e /unfichier.txt'\r''\n'|nc example.com 70
Bon, s'il n'y a que ça comme bug, ça peut s'arranger !
Il y a un truc bizarre dans le sens où nmap ne détecte pas mon serveur. J'ai pourtant un serveur Pygopherd sur le port 7070 qui est bien vu par nmap (version 5.21)
Pour voir, j'ai fait fonctionner mon convertisseur de blog vers phlog (nb2gopher) et tout s'est bien passé. Il faut dire que j'avais conçu nb2gopher avec plusieurs fichiers index identiques mais nommés différemment afin qu'un au moins soit compatible avec les serveurs en service. Comme j'avais prévu le cas de "gophermap", ouf! ça l'a fait.
En conclusion, pour une version 0.1, c'est sévèrement noté. On pourrait l'établir à la version 0.3. Il reste à faire du cosmétique, comme mettre l'e-mail à côté du nom de l'auteur, à documenter, documenter et encore documenter. Il faudra aussi que l'auteur se détermine sur la politique de sécu et sur le niveau de permissivité. Si l'ambition se limite à ne faire qu'un serveur qui ne soit que minimal (c'est-à-dire pas compatible Gopher+), il semble que la version 1.0 ne soit pas si loin. Évidement, il faudra tester sur plusieurs machines et tous les clients en usage. Cette phase de test n'est pas évidente, vu le tout petit nombre de gophéristes. C'est pourquoi la mise des sources sur une forge connue comme Sourceforge.net, peut apporter de la visibilité au niveau international. Il faudra aussi savoir si l'ambition va vers le mono ou le multitread, autrement dit : la possibilité de servir plusieurs clients en même temps ou chacun son tour. C'est un point important quand un site propose en téléchargement des fichiers volumineux. Et également si une machine est faible et ne peut se permettre trop de clients connectés ensemble. Là encore, c'est le choix de l'auteur.
Bon voilà. Vous pouvez aller sur mon site en employant les navigateurs suivant:
Avec le vénérable et authentique client "gopher" :
gopher -p/ oceamer.com 7072
Avec Lynx :
lynx gopher://oceamer.com:7072/
Avec Firefox (+ module overbiteFF, indispensable avec un port différent de 70))
gopher://oceamer.com:7072/
# Implémentation de Gophrier sur mon site
Posté par Denis Bernard . En réponse au journal Gophrier 0.1. Évalué à 8.
1. il faut impérativement mettre une barre oblique en début de sélecteur d'un fichier à la racine. Les autres serveurs sont plus tolérants. Mais, bon ça se discute.
2. s'il n'y a pas de fichier gophermap, le contenu du répertoire s'affiche quand même. Certains serveurs sont permissifs à ce sujet, d'autres n'acceptent de ne servir que les fichiers qui sont inscrits dans le gophermap. C'est un choix du développeur, et seulement le sien.
J'ai quand même trouvé un bug ! Selon la version première du Gopher, il y a un signe de fin de transmission qui est un "point" ajouté au fichier transmis. Si l'on prend la version Gopher+, il y a d'autres possibilités. A ce que j'ai compris, ce serveur n'est pas compatible Gopher+ et donc il devrait y avoir un "point" final. C'est bien ce qu'il fait quand il transmet le fichier gophermap mais pas avec un quelconque fichier texte. On peut analyser la transaction avec Netcat en faisant :
echo -e /unfichier.txt'\r''\n'|nc example.com 70
Bon, s'il n'y a que ça comme bug, ça peut s'arranger !
Il y a un truc bizarre dans le sens où nmap ne détecte pas mon serveur. J'ai pourtant un serveur Pygopherd sur le port 7070 qui est bien vu par nmap (version 5.21)
Pour voir, j'ai fait fonctionner mon convertisseur de blog vers phlog (nb2gopher) et tout s'est bien passé. Il faut dire que j'avais conçu nb2gopher avec plusieurs fichiers index identiques mais nommés différemment afin qu'un au moins soit compatible avec les serveurs en service. Comme j'avais prévu le cas de "gophermap", ouf! ça l'a fait.
En conclusion, pour une version 0.1, c'est sévèrement noté. On pourrait l'établir à la version 0.3. Il reste à faire du cosmétique, comme mettre l'e-mail à côté du nom de l'auteur, à documenter, documenter et encore documenter. Il faudra aussi que l'auteur se détermine sur la politique de sécu et sur le niveau de permissivité. Si l'ambition se limite à ne faire qu'un serveur qui ne soit que minimal (c'est-à-dire pas compatible Gopher+), il semble que la version 1.0 ne soit pas si loin. Évidement, il faudra tester sur plusieurs machines et tous les clients en usage. Cette phase de test n'est pas évidente, vu le tout petit nombre de gophéristes. C'est pourquoi la mise des sources sur une forge connue comme Sourceforge.net, peut apporter de la visibilité au niveau international. Il faudra aussi savoir si l'ambition va vers le mono ou le multitread, autrement dit : la possibilité de servir plusieurs clients en même temps ou chacun son tour. C'est un point important quand un site propose en téléchargement des fichiers volumineux. Et également si une machine est faible et ne peut se permettre trop de clients connectés ensemble. Là encore, c'est le choix de l'auteur.
Bon voilà. Vous pouvez aller sur mon site en employant les navigateurs suivant:
Avec le vénérable et authentique client "gopher" :
gopher -p/ oceamer.com 7072
Avec Lynx :
lynx gopher://oceamer.com:7072/
Avec Firefox (+ module overbiteFF, indispensable avec un port différent de 70))
gopher://oceamer.com:7072/
-- Deber