Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

Ce projet correspond aux anomalies ou aux demandes d’évolutions logicielles pour le Freebox Server.

Pour des problèmes de ligne ADSL ou Fibre, vous devez vous adresser directement au 3244.
N’indiquez ici que les bugs ou les demandes d’évolution concernant le Freebox Server.

Pour les remarques concernant le Freebox Player Révolution (V6), vous pouvez le faire sur la page dédiée.
Pour les remarques concernant la Freebox Mini 4K, vous pouvez le faire sur la page dédiée.
Pour les remarques concernant le Freebox Player Devialet (V7), vous pouvez le faire sur la page dédiée.
Pour les remarques concernant le Freebox Player Pop (V8), vous pouvez le sur la page dédiée.

Effectuez la mise à jour de votre Freebox Server vers la dernière version annoncée sur l'historique des mises à jour Freebox Server

Vérifiez que votre problème ou votre demande d’évolution n’a pas déjà été posté auparavant.

Merci d’avance.

ID Ouverte Type Catégorie Système d'exploitation État  desc Résumé
2146604/05/2017ÉvolutionAPITousÀ investiguerRendre la documentation plus claire concernant les head... Description de la tâche

Suite au bug : External Linkhttps://dev.freebox.fr/bugs/task/21461

Il apparaît que depuis la version 4 des API, certains appels nécessitent vraiment le header

Content-type: application/json

pour fonctionner correctement.

En effet, ce header est bien mentionné (71 fois) pour les réponses, mais jamais clairement pour les requêtes (juste 1 fois pour expliquer qu’il ne faut PAS l’envoyer dans un cas précis).

Cela n’est indiqué nulle part en clair dans la documentation.

Je suggère donc (améliorations) que la documentation mentionne cette “bonne pratique” (puisque en réalité 99% des API fonctionnent néanmoins, mais ce n’est effectivement pas 100% fiable).

Cela pourrait figurer dans la section d’introduction, en donnant des modèles de ‘curl’ par exemple.

Une documentation plus précise est en effet à même d’aider les futurs développeurs en leur évitant de tomber dans des bugs bizarres comme celui signalé plus haut.

 12891 16/07/2013AnomalieAPIFreebox Server V6 (Révolution)Fermée No logout API  Description de la tâche

There is a Login API to get a session_token

There is NO Logout API to disable a session_token when done with it.

On any “O.S.” (and although Freebox O.S. doesn’t really qualify as an O.S.!) this would be considered a SECURITY issue.
Indeed, although an attacker observing data cannot guess the password, he can see the session_tokens clearly and use then for his own benefit as long as they don’t time-out.
So, for security sake, there SHOULD be a way to logout from a session.

(As it is related to security, that is why I classified it as Anomaly/High, instead of Evolution/Low)

 21461 02/05/2017AnomalieAPITousFermée Fonction de Hash buggée depuis la 3.4  Description de la tâche

La fonction de hash est bugguée depuis la 3.4

L’appel de l’API répond “impossible de parser” le JSON dans 2 cas sur 3. Le cas passant est quand le base64 du nom fini par ==, dans les autres cas on constate le bug.

Voici une trace via mon script qui réalise des md5, j’ai sauté les phases de connexion qui sont “irrelevant” en ce qui concerne ce rapport de bug !

$ for f in a aa aaa aaaa aaaaa aaaaaa; do echo "Fichier: $f"; ~/Scripts/fb5sum.sh "/Disque dur/Téléchargements/$f"; echo; done

Fichier: a
Connexion ... OK 
curl -i -s "http://mafreebox.freebox.fr:12345/api/v4/fs/hash/" -H "X-Fbx-App-Auth: ****************************************************************" -d "{"src":"Ii9EaXNxdWVkdXIvVMOpbMOpY2hhcmdlbWVudHMvYSI=","hash_type":"md5"}

{"msg":"Requête invalide : impossible de parser le json","success":false,"error_code":"invalid_request"}



Fichier: aa
Connexion ... OK 
curl -i -s "http://mafreebox.freebox.fr:12345/api/v4/fs/hash/" -H "X-Fbx-App-Auth: ****************************************************************" -d "{"src":"Ii9EaXNxdWVkdXIvVMOpbMOpY2hhcmdlbWVudHMvYWEi","hash_type":"md5"}

{"msg":"Requête invalide : impossible de parser le json","success":false,"error_code":"invalid_request"}


Fichier: aaa
Connexion ... OK 
curl -i -s "http://mafreebox.freebox.fr:12345/api/v4/fs/hash/" -H "X-Fbx-App-Auth: ****************************************************************" -d "{"src":"Ii9EaXNxdWVkdXIvVMOpbMOpY2hhcmdlbWVudHMvYWFhIg==","hash_type":"md5"}

ba1f2511fc30423bdbb183fe33f3dd0f  /Disque dur/Téléchargements/aaa



Fichier: aaaa
Connexion ... OK 
curl -i -s "http://mafreebox.freebox.fr:12345/api/v4/fs/hash/" -H "X-Fbx-App-Auth: ****************************************************************" -d "{"src":"Ii9EaXNxdWVkdXIvVMOpbMOpY2hhcmdlbWVudHMvYWFhYSI=","hash_type":"md5"}

{"msg":"Requête invalide : impossible de parser le json","success":false,"error_code":"invalid_request"}


Fichier: aaaaa
Connexion ... OK 
curl -i -s "http://mafreebox.freebox.fr:12345/api/v4/fs/hash/" -H "X-Fbx-App-Auth: ****************************************************************" -d "{"src":"Ii9EaXNxdWVkdXIvVMOpbMOpY2hhcmdlbWVudHMvYWFhYWEi","hash_type":"md5"}

{"msg":"Requête invalide : impossible de parser le json","success":false,"error_code":"invalid_request"}


Fichier: aaaaaa
Connexion ... OK 
curl -i -s "http://mafreebox.freebox.fr:12345/api/v4/fs/hash/" -H "X-Fbx-App-Auth: ****************************************************************" -d "{"src":"Ii9EaXNxdWVkdXIvVMOpbMOpY2hhcmdlbWVudHMvYWFhYWFhIg==","hash_type":"md5"}

ba1f2511fc30423bdbb183fe33f3dd0f  /Disque dur/Téléchargements/aaaaaa

Il s’agit du même programme (puisque lancé dans une boucle shell) or il répond parfois JSON invalide... alors que le JSON est manifestement tout à fait valide !.. et parfois cela fonctionne (prouvant que le JSON est bien valide en réalité !).

Selon l’expérimentation ci-dessus qui montre ce qu’on envoie par curl avec le détail du JSON qui est posté, et montre le retour lorsqu’il y a erreur.
Lorsque cela marche, on obtient le md5 du fichier. En l’occurrence les 6 fichier a à aaaaaa dans /Disque dur/Téléchargement contiennent tous la chaîne “123\n” et ont donc tous un md5 identique.

Pas de contournement de ce bug génant... sauf à changer le nom du fichier à hasher pour que son “base64” finisse par ‘==’ ... assez pénible !

 9101 05/12/2011AnomalieTéléchargementsFreebox Server V6 (Révolution)Fermée Impossible de télécharger un fichier contenant '?'  Description de la tâche

Enoncé du bug:


Lorsqu’un fichier comporte un ? (caractère : point d’interrogation / %3F) on ne peut pas le télécharger.

Si on tente de le faire on obtient une page d’erreur indiquant :
Firefox ne peut trouver le fichier à l’adresse http://mafreebox.freebox.fr/get.php.

Avec une erreur 404.

Comment reproduire :


renommer n’importe quel fichier avec un nom contenant un ?, dans mon exemple le fichier s’appelle ‘w?’ Tenter de le télécharger avec l’interface web.

Constatations :


Les entêtes envoyés sont bien :
(Post aller:)
filename=%2FDisque+dur%2FT%C3%A9l%C3%A9chargements%2Fw%3F

(On voit bien la fin, /w? correctement ‘escapé’ par le navigateur)

La réponse est :
HTTP/1.1 404 Not Found

Server: nginx

Date: Mon, 05 Dec 2011 17:46:38 GMT

Content-Type: text/html

Content-Length: 162

Connection: keep-alive

Content-Disposition: attachment; filename=”w?”

Il a donc bien compris qu’on voulait le fichier w?, ce fichier existe bien dans le répertoire (on vient de renommer) et pourtant on a une erreur 404.

Déduction :


Très certainement un mauvais ‘escape’ des caractères spéciaux en PhP qui fait que le ? dans le nom des fichiers est mal géré.

Autres bugs possibles similaires à tester :


Pour information, en ext3/4 (filesystem de la Freebox) les seuls caractères non valides dans un nom de fichier sont le / (parce que c’est le séparateur pour les chemins) et le ‘zéro binaire’ (pas facile à gérer en C dans les chaines ça !).
TOUS les autres caractères sont valides dans un nom de fichier (même des choses comme retour à la ligne !).

Je ferai l’essai plus tard avec les caractères %01 à %1F, qui sont difficiles à obtenir dans un nom de fichier... contrairement à un ? qui est trivial par la méthode ci-dessus. (Renommer marche bien avec les ‘?’, mais c’est géré par un CGI et pas par un PHP)

 6480 29/03/2011AnomalieTéléchargementsFreebox Server V6 (Révolution)Fermée Nommer correctement les fichiers téléchargés avec dl.fr ... Description de la tâche

Lorsqu’on met un fichier sur dl.free.fr à télécharger sur la Seedbox, le nom du fichier correspond au dernier segment de l’URL au lieu d’avoir le nom du fichier original.

Exemple, je télécharge :
http://dl.free.fr/abcdefghi

Le nom du fichier sera
abcdefghi

Alors que le fichier original était par exemple :
Mes_Photos_Vacances.rar

Pourtant ce nom d’origine est transmis par dl.free.fr dans un header, de la façon suivante :

Content-disposition: filename=Mes_Photos_Vacances.rar

Il suffirait donc que la Seedbox récupère ce header “Content-disposition” lors du téléchargement afin de donner au fichier le nom adéquat.

 7356 18/07/2011ÉvolutionServices locauxFreebox Server V6 (Révolution)Fermée Upload (HTTP) du réseau local vers la Freebox Server (N ... Description de la tâche

On peut “downloader” un fichier présent sur le NAS vers un PC du réseau local, en utilisant simplement l’interface Web fournie par la Freebox.

Par “symétrie”, ce serait sympathique de pouvoir “uploader” un fichier vers le NAS via ce même interface (un peu comme dl.free.fr).

A minima, si on dispose d’un serveur web sur son PC, il serait bien que la Freebox Server ne refuse pas de “downloader” sur des adresses de son réseau local comme : http://192.168.1.NN/Mon_Fichier_A_Mettre_Sur_La_Freebox

En effet, cela permettrait de faire des copies vers la Freebox (images, audio, vidéo) sans avoir à faire de montage (CIFS, FTP).

C’est aussi plus sympathique à scripter.

 8010 03/10/2011AnomalieTéléchargementsTousFermée dl.free.fr, bug sur le 6ème fichier !  Description de la tâche

Voici un bug étrange et 100% reproductible.

-1) Partir d’un état seedbox “au repos”, où la Freebox n’a rien à télécharger.
-2) Donner une liste de liens vers dl.free.fr, la liste doit comporter strictement plus de 6 lien, et les fichiers doivent être suffisamment gros pour que le téléchargement s’opère en parallèle.

On constate 2 choses :
- La freebox télécharge 6 fichiers simultanément (alors que la limite par IP est sensée être de seulement 5 téléchargements !) ... mais bon, ça à la limite c’est pas dramatique !..
- Le sixième fichier soumis à la Freebox se “plante” avec une erreur (pas de problème pour les 5 premiers ni pour les suivants).

Afin de pouvoir tester je vous ai fait :
-a) un script simple (attention pas de contrôles d’erreur, lancer avec: dash -xeu ./nomDuScript “liste de fichiers”, afin d’avoir la trace des erreurs éventuelles)
-b) une liste contenant 10 liens de 50M (l’iso de Damn Small Linux copié 10 fois).

Script (bugdlfree)
#!/bin/sh -eu

PASSWORD=’votreMotDePasse’

TMPLOG=$(mktemp)
HTTP_CODE=$( curl http://mafreebox.freebox.fr/login.php\

  1. c “${TMPLOG}.f”\
  2. d “login=freebox&passwd=$PASSWORD”\
  3. o /dev/null\
  4. w “%{http_code}”\
  5. s )

for IDENT in “${@}” do

HTTP_CODE=$( curl http://mafreebox.freebox.fr/download.cgi \
             -o "${TMPLOG}" \
             -b "${TMPLOG}.f" \
             -d "url=${IDENT}&user=freebox&method=download.http_add" \
             -H 'X-Requested-With: XMLHttpRequest' \
             -w "%{http_code}" \
             -s)

done

Liste de fichiers : (fileList)
http://dl.free.fr/q1Y8Hsy7V http://dl.free.fr/qCLlDHY5Z http://dl.free.fr/qS6mCcBPY http://dl.free.fr/q905313FQ http://dl.free.fr/qpdrp0VEX http://dl.free.fr/qRPIdNoPp http://dl.free.fr/qIVyguAh6 http://dl.free.fr/qwnmvVjv0 http://dl.free.fr/qZLWuTHz6 http://dl.free.fr/qmwPp3ErG

usage:
-1) Remplacer la variable PASSWORD par le mot de passe de votre Freebox
-2) En supposant que le script et le liste de fichier aient les noms proposés, lancer :

dash -ex ./bugdlfree $(cat fileList)

(ça fonctionne aussi avec bash si votre Linux utilise bash par défaut).

-3) Constater le bug sur le fichier http://dl.free.fr/qRPIdNoPp (le sixième de la liste)

 12892 16/07/2013AnomalieNewsFreebox Server V6 (Révolution)Fermée Erreur sur NewsGroup  Description de la tâche

Téléchargement d’un post binaire sur un NewsGroup hébergé par Free
- Environ 90 fichiers
- Un article manquant sur le 51ème fichier

Arrivé à l’article manquant :
- La Freebox déclare l’article manquant
- Elle interrompt le téléchargement du fichier en cours au niveau de l’article manquant
- Tous les autres fichiers porte la mention ‘groupe non trouvé’ (ou un truc similaire)
- En conséquence, il manque presque la moitié du téléchargement, et curieusement, les par2 sont bien récupérés

En continuant le téléchargement sur mon PC (sabnzbplus) on constate :
- Qu’on pouvait continuer à télécharger le fichier 51 malgré l’article manquant
- Que les autres fichiers existent bel et bien chez Free (je n’ai même pas utilisé 1 seul octet de mon fournisseur ‘de secours’)

Il s’agit donc probablement d’un bug du lecteur de news qui traite mal les erreurs “Article manquant”, et provoque après cela des erreurs en cascade.
Au mieux il faudrait :
- corriger le bug !..
- si c’est plus rapide, en attendant, donner un moyen de ‘réessayer’ pour relancer les fichiers incomplets/non téléchargés.

 12893 16/07/2013AnomalieNewsFreebox Server V6 (Révolution)Fermée Message 'Segments manquants' erroné  Description de la tâche

Newsgroup sur un téléchargement de 81 fichiers.
Le téléchargement est récent, de sorte qu’il n’est pas à 100% dans les newsgroups de Free.

Etat final reporté par la Freebox :
ERREUR = Segments Manquants
(92,76% chargé).

Le lot de fichier ne comporte pas de fichier par2, mais un fichier vol0000+0001.PAR2 (et beaucoup d’autres)

Après copie sur mon PC en local et lancement du par2 à la main j’obtiens :

_
$par2 r nom_du_fichier.vol0000+0001.PAR2

(....)

Repair is required.
70 file(s) exist but are damaged.
11 file(s) are ok.
You have 10025 out of 10990 data blocks available.
You have 2221 recovery blocks available.
Repair is possible.
You have an excess of 1256 recovery blocks.
965 recovery blocks will be used to repair.

Computing Reed Solomon matrix.
Constructing: done.
Solving: done.

(....)
_

Contrairement à ce qu’annonce la Freebox, certes il manque des segments, mais la réparation est tout à fait possible comme on le constate ci-dessus. On a même 2 fois plus de blocs de réparation qu’il n’en faut (ça c’est pas optimisé pour la consommation de bande passante chez Free !)

Tâches 1 - 9 sur 9 Page 1 sur 1

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche