Open matrixbx opened 1 year ago
Salut @matrixbx, je n'ai pas d'idée évidente pour détecter cette situation automatiquement de façon simple. Un seul timeout ne peut pas être généralisé, il faudrait faire de la corrélation de plusieurs timeouts successifs proches, pas évident juste pour ça. Par contre un simple paramètre pour augmenter manuellement tous les timeouts des queries d'un certain nombre de secondes ça c'est très simple, cela irait ?
Salut,
pourquoi pas, mais quand elle m'embête parce que je l'embête, elle répond ceci (en général, c'est parce que je n'ai pas détecté la perte de validité de la session et que je l'ai donc pas réouverte).
{"status":1,"data":{},"errors":[{"description":"too many failed login attempts, wait 15s","waittime":15}]}
C'est étrange car l'erreur indique plutôt clairement qu'il y a eu trop de tentatives de logins infructueuses, donc avec mauvais user ou password, dans un laps de temps court ce qui effectivement mérite tout à fait d'être reconnu comme une tentative d'attaque. Qu'est-ce qui justifierait que vous l'embêtiez de cette façon ? Envoyer des requêtes sur une session morte ne devrait pas provoquer cela pour moi... Sinon pour maintenir une session active il suffit de lui envoyer régulièrement une requête, via un thread qui tourne en tache de fond par exemple (lui demander l'heure par exemple suffira largement). Mais je ne vous apprends probablement rien là dessus...
Je jouais avec, LiveboxMonitor était lancé en parallèle avec une session valide en cours donc, et pourtant, la LB se protégeant de mon IP, LBMonitor était dans les choux aussi (et n'arrivait pas vraiment à ré ouvrir une nouvelle session après une relance, la lb ne lui répondant pas dans la durée de son timeout).
Salut, encore des soucis, sans la moindre tentative "de jouer" de ma part, juste LiveboxMonitor est resté actif plusieurs heures. La LB4 ne répond plus dans un délais raisonnable à mon IPv4, mais instantanément via vpn.
Salut @matrixbx, hélas sans plus d'informations ça va être difficile. En principe la LB se protège si plusieurs tentatives de connexions avec mot de passe et/ou identifiant erronés sont effectuées dans un court laps de temps. À moins qu'un mauvais mot de passe soit configuré (ce qui semble peu probable) je ne vois pas et seules les logs pourraient nous renseigner car les tentatives de connexions y sont répertoriées..
Sinon j'ai bien prévu prochainement de rajouter un paramètre pour "rallonger" la valeur des timeouts si nécessaire, mais ce sera manuel (soit via le dialogue des préférences soit directement dans le fichier de config).
Salut @p-dor note que j'ai déjà modifié dans LmSession.py les valeurs de DEFAULT_TIMEOUT (15) et LIVEBOX_SCAN_TIMEOUT (1.6) sans effet notoirement bénéfiques. je vois de nombreuses fois :
et les icônes ne se chargent pas non plus Error: {}. Cannot request device icon e_... Où puis-je t'envoyer les logs qui contiennent qq infos pas vraiment publiques ?
DEFAULT_TIMEOUT est utilisé de base pour le signin, donc si LiveboxMonitor n'arrive pas à se logger au bout de 15 secondes...
Sinon pour les requêtes il vaudrait mieux rajouter la ligne
iTimeout += 15
au début de la méthode request()
pour que cela donne quelque chose.
Pour les logs c'est surtout les tentatives de signin() sans succès qui pourraient indiquer pourquoi la LB se met en mode défensif (si LiveboxMonitor serait effectivement à l'origine de cela).
Voici un email pour partager de façon privée : dorpierre@orange.fr
Salut @matrixbx, mieux vaut tard que jamais, l'option "Marge Timeout" vient d'être rajoutée et publiée sur le repo. Ce sera disponible dans la prochaine release 1.5.
Salut, quand je sollicite un peu fortement une LB4, celle-ci se défend en augmentant le délais de réponse pour mon IPv4 publique (c'est flagrant en utilisant un vpn, elle re répond quasi instantanément). Quand cela se produit, LiveboxMonitor ne reçoit plus les events ou n'arrive plus à ouvrir la session. La LB4 met un très long moment (plusieurs heures à priori) à retrouver un délais de réponse normal si elle n'est plus sollicitée depuis l'IPv4 en question.
Serait-il possible d'augmenter automatiquement le timeout dans cette situation ?