Désactiver le private flag dans Transmission
Deuxième billet de l'année, décidément c'est pas très productif tout ça...
Enfin, je profite d'une petite pause dans la rédaction de mon mémoire de stage pour sauver les meubles et introduire un peu d'activité sur ce blog pour la pemière fois depuis... 29 semaines et 5 jours, date du dernier commentaire !
Voici donc une petite note pour ceux parmi vous qui utilisent le client bittorrent Transmission avec des trackers privés.
Depuis quelques temps déjà, le protocole bittorrent s'est enrichi de fonctionnalités telles que PEX ou DHT qui permettent de le rendre moins centralisé et moins dépendant des trackers pour fonctionner.
Le petit bémol toutefois est que certains trackers privés, souhaitant conserver les utilisateurs chez eux et donc limiter la diffusion de "leurs" contenus ailleurs, ajoutent sur leurs torrents un "private flag", qui signifie qu'ils ne souhaitent pas que le contenu ne soit partagé avec d'autres utilisateurs que les clients du tracker.
Bien que purement indicatif, ce private flag est honoré par la plupart des clients bittorent, qui craignent s'ils ne le font pas d'être bannis sur les trackers concernés. Il n'y a en effet pas moyen pour le tracker de savoir si un utilisateur tient compte ou pas de ce "private flag", et nombre de trackers privés ont ainsi choisi de bannir complètement les clients ne forçant pas son application.
Cela présente plusieurs inconvénients.
D'abord, sur le principe : ce "private flag" fonctionne un peu comme certains DRM : le client doit se limiter lui-même à ne pas faire une action qu'il est capable de faire. C'est différend d'une restriction qui aurait lieu côté serveur, là tout se passe chez le client. En ce qui me concerne, si quelqu'un doit faire la loi sur mon ordinateur, c'est moi.
Ensuite, bien sûr, l'utilisateur est privé de fonctionnalités bien utiles, notamment si le nombre de pairs sur le tracker est trop faible ou si celui-ci devait être down.
Enfin, cela empêche le partage avec des utilisateurs qui n'auraient pas accès au tracker privé.
Heureusement, Transmission (comme bien d'autres clients bittorrent) est libre et donc la désactivation de la prise en compte de ce private flag, si elle ne peut se faire via l'interface, peut très bien se faire via le code source.
Il suffit de changer la valeur d'une variable pour tout torrent soit considéré comme public. Celle-ci se trouve dans le code source de transmission, un peu avant la ligne 500 du fichier libtransmission/metainfo.c (variable i à mettre à 0, voir patch pour transmission 2.04).
Voici la séquence de commandes qui permet de le faire sous Ubuntu 10.10 (Maverick) :
cd /tmp sudo -s apt-get build-dep transmission apt-get source transmission cd transmission*/libtransmission wget 'http://www.daemontux.org/files/noprivate.patch' patch -p0 < noprivate.patch cd .. dpkg-buildpackage cd .. dpkg -i transmission-common*.deb transmission-gtk*.deb
(remplacer transmission-gtk par transmission-qt etc selon l'interface que vous utilisez)
On peut ensuite très facilement vérifier que tous les torrents sont désormais publics via un clic-droit > propriétés en regardant en face du champ "confidentialité".
Attention toutefois, toute mise à jour du paquet annulera évidemment ce changement (verouiller la version du paquet donc).