All Projects

ID Project Opened Task Type Category Status Summary
21466Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)04/05/2017ÉvolutionAPIÀ investiguerRendre la documentation plus claire concernant les head... Task Description

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.

 21461 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)02/05/2017AnomalieAPIClosed Fonction de Hash buggée depuis la 3.4  Task Description

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 !

 12893 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)16/07/2013AnomalieNewsClosed Message 'Segments manquants' erroné  Task Description

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 !)

 12892 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)16/07/2013AnomalieNewsClosed Erreur sur NewsGroup  Task Description

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.

 12891 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)16/07/2013AnomalieAPIClosed No logout API  Task Description

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)

 9101 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)05/12/2011AnomalieTéléchargementsClosed Impossible de télécharger un fichier contenant '?'  Task Description

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)

 8010 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)03/10/2011AnomalieTéléchargementsClosed dl.free.fr, bug sur le 6ème fichier !  Task Description

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)

 7356 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)18/07/2011ÉvolutionServices locauxClosed Upload (HTTP) du réseau local vers la Freebox Server (N ... Task Description

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.

 6480 Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)29/03/2011AnomalieTéléchargementsClosed Nommer correctement les fichiers téléchargés avec dl.fr ... Task Description

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.

 2891 Freebox V5 ADSL14/05/2008AnomalieMultiposteClosed Radio en multiposte fonctionnement incorrect  Task Description

Depuis le firmware 1.3.4, les radios en multipostes ne fonctionnent pas correctement.

Ainsi, les 10 premières radios :
10001 Europe 1
10003 France Inter
10004 RMC Info
...
etc
jusqu’à
...
10010 NRJ

diffusent toutes exactement la même émission.

Idem ensuite que l’on choisisse n’importe quelle radio entre 10011 RFM à 10019 Radio Classique, on a la même chose.

Comme si on n’avait en réalité qu’un dixième des radios !

Showing tasks 1 - 10 of 10 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing