Discussion Hotspot Login Manager

Tags: #<Tag:0x00007f63f54f3d90> #<Tag:0x00007f63f54f3c28>

Je prends note,
et juste un dernier point : est ce que je dois rajouter le service dans un autostart quelconque, ou il se lance automatiquement au boot ?
En tout cas, merci beaucoup, et bon développement. Dans l’attente d’un paquet officiel Hotspot Login Manager.

Pour le moment, l’installeur ne met pas h-l-m en démarrage automatique. Pour le faire :

Oui je sais, un jour faudra que je me penche sur l’empaquetage en .deb… :confused:

Hop ! Hotspot-Login-Manager activé au démarrage.
Ben petit à petit, ça va bien se faire. En tout cas, vu la demande, le projet a de beaux jours devant lui. Bon courage !

HERRATUM : en fait ça ne marche pas.
après déconnexion du portail, il tente en fait de se reconnecter en vain :[quote]Jan 6 00:13:08 Hotspot Login Manager[8914]: DEBUG: Ping URL «http://www.google.com/404» was redirected to «https://hotspot.neuf.fr/indexEncryptingChilli.php?res=notyet&uamip=192.168.2.1&uamport=3990&challenge=85941fafb1b604d3400df33a6c467b47&userurl=http%3A%2F%2Fwww.google.com%2F404&nasid=e0-a1-d7-3a-0c-83&mac=00-22-43-97-04-AA&mode=3&channel=0». Trying to find a plugin that accepts the redirected URL…
Jan 6 00:13:08 Hotspot Login Manager[8914]: DEBUG: Available SSIDs: [‘SFR WiFi Public’]
Jan 6 00:13:08 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon» could match, trying to authenticate…
Jan 6 00:13:08 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon»: got all required arguments from the redirect URL.
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon»: grabbed the login webpage.
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon»: seems we have a “NeufBox”.
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon»: we don’t have FON support.
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon»: in-page data confirms the redirect URL.
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon»: using «sfr.fr» credentials
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: AuthPlugin «sfr_fr_fon» (credentials «sfr.fr»): [FAILURE] error while grabbing the encryption gateway (JS redirect) result webpage: POST data should be bytes or an iterable of bytes. It cannot be str.
Jan 6 00:13:09 Hotspot Login Manager[8914]: DEBUG: Going to sleep for 5 seconds.
Jan 6 00:13:10 Hotspot Login Manager[8914]: DEBUG: Control socket got a connection (#7).
Jan 6 00:13:10 Hotspot Login Manager[8914]: DEBUG: Control socket #7 received the command «reauth».
Jan 6 00:13:10 Hotspot Login Manager[8914]: DEBUG: Closing control socket #7
Jan 6 00:13:14 Hotspot Login Manager[8914]: DEBUG: Waiting for the next event.
Jan 6 00:13:14 Hotspot Login Manager[8914]: DEBUG: Authenticator thread woke up.
Jan 6 00:13:14 Hotspot Login Manager[8914]: DEBUG: Checking available wireless interfaces: [‘wlan0’]
Jan 6 00:13:14 Hotspot Login Manager[8914]: DEBUG: About to ping «http://www.google.com/404» in order to check for internet access.[/quote]

hotspot-login-manager --reauth” ne marche pas non plus.

Il semblerait que ça soit une différence de comportement d’urllib.request.urlopen entre la 3.1data may be a string specifying additional data to send to the server, or None ») et la 3.2data may be a bytes object specifying additional data to send to the server, or None »).
Le correctif a l’air relativement simple mais j’ai pas envie de m’embarquer à tester tout ça maintenant, donc ça attendra demain. :033

Je partais me coucher moi aussi, de toute façon 8)
et vi, boulot, boulot, boulot …

j’me disais bien que ce python3.1 allait bloquer quelque part !

Faut dire, c’est pas super malin de leur part de changer la signature des API d’une version mineure à l’autre. Ça donne pas envie de se mettre sérieusement au Python d’ailleurs, bonjour la pérennité du code…

Et non, je n’ai pas encore pris le temps de corriger le bug. :blush:

'ya pas l’feu au lac, comme dirait l’autre :naughty:
un copain m’a tanné looongtemps pour que je me mette à python, mais mon esprit est trop bordélique pour que j’arrive à faire quelque chose de sérieux. :118
J’admet que je m’y suis perdu dans les paquets python à installer : tu dis qu’il faut le python3.1, je ne trouve que le python3, python3.2, python3-all … comme je ne savais pas quoi faire, j’ai installé celui-ci (-all), ça m’a causé des frayeurs : aptitude qui me met des paquets cassés de partout tout à coup. Heureusemenet, c’est rentré dans l’ordre, mais c’est pas simple toutes ces histoires !!! :108

J’en déduis donc que tu es en testing ou unstable mais sans aucun dépôt stable activé… :wink:

$ aptitude search ^python3 -F '%p' | trim | grep -E '^python3(\.[0-9])?$' python3 python3.1 python3.2 $ apt-cache policy python3 python3.1 python 3.2 python3: Installé : 3.2.2~rc1-2 Candidat : 3.2.2~rc1-2 Table de version : *** 3.2.2~rc1-2 0 992 http://ftp.debian.org/debian/ testing/main amd64 Packages 502 http://ftp.debian.org/debian/ unstable/main amd64 Packages 100 /var/lib/dpkg/status 3.1.3-12 0 102 http://ftp.debian.org/debian/ stable/main amd64 Packages python3.1: Installé : 3.1.3-1 Candidat : 3.1.3-1 Table de version : *** 3.1.3-1 0 102 http://ftp.debian.org/debian/ stable/main amd64 Packages 100 /var/lib/dpkg/status python3.2: Installé : 3.2.2-2 Candidat : 3.2.2-2 Table de version : 3.2.2-3 0 502 http://ftp.debian.org/debian/ unstable/main amd64 Packages *** 3.2.2-2 0 992 http://ftp.debian.org/debian/ testing/main amd64 Packages 100 /var/lib/dpkg/status

Je me suis fait une signature qui indique la machine que j’utilise.
Voici quelques lignes de mon sources.list:

[code]### Bases
deb http://http.us.debian.org/debian/ testing main contrib non-free
deb-src http://http.us.debian.org/debian/ testing main contrib non-free

Security

deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free[/code]Je devrais rajouter “stable” ? (à savoir “stable testing main contrib non-free”)

J’ai essayé de corriger vite fait le problème que tu as soulevé mais tout m’a explosé à la figure (il semblerait que ça soit à cause de changements dans ma config locale car même avec Python 3.1 ça coince). N’ayant pas assez de temps pour mettre le nez dans ma config, j’ai remis les sources en 3.1 au moins le soft marchera…

Effectivement dans l’immédiat je pense que ça serait la meilleure solution. :blush: Pas la peine de faire un fichier /etc/apt/preferences étant donné que tu ne fais que rajouter des dépôts stable à ta testing.

deb http://ftp.debian.org/debian/ stable main contrib non-free deb http://ftp.debian.org/debian/ stable-updates main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free

Bon ! ça marche avec le python3.1, wonderful ! :041

Ne maîtrisant pas complètement tout de la gestion des sources, si je laisse les lignes ajoutées au sources.list, il n’y aura pas de problème avec le système ?
Sinon, je garde ce topic sous le coude pour suivre l’évolution de ton programme, que je vais upgrader volontier.

Aucun souci, tu es déjà en testing, ça risque pas de te changer de distro… :wink:

Pour tout t’avouer, niveau fonctionnel il y a à peu près tout je pense, il reste à le “polir” surtout au niveau de l’empaquetage et de la traduction.
Mais avant d’attaquer ça je voudrais avoir un peu de retours de vrais utilisateurs, histoire de pas faire le boulot en double… :mrgreen:

Par contre (et ça ne t’est pas spécialement adressé) ma demande d’aide pour FreeWifi etc tient toujours : vu que j’ai pas d’identifiants autres que SFR il me faut quelqu’un pour me filer les codes sources des pages d’identification/succès/erreur des autres fournisseurs et pour tester tout ça une fois que je l’aurai réalisé.
Avis aux amateurs… :006

J’ai fait l’essai sur la machine de la copine, avec succès. Bon il n’y a pas de mystères, outre le hardware, c’est le même système, même configuration à peu de choses près.

Pour ta requête, je l’ai bien lu dans ton howto initial. Cependant je n’ai ni identifiant ni autres hotspots sous le coude. En espérant que d’autres soient sur le coup.

Bon, ben, polissage !

Bonjour!

J’ai voulu utiliser votre logiciel pour gérer la reconnexion à un hotspot sfr wifi.
Ça ne fonctionne pas, la commande suivante me donne toujours:

$ hotspot-login-manager -s Unknown connection status (a redirect was detected, but no plugin managed to log you in).

Que je sois authentifié ou non sur le hotspot.
Que puis-je faire pour tenter de réparer le schmillblick?

Bonjour MCMic.

De toute évidence HLM ne reconnaît pas ton hotspot. Ça peut être dû à plein de raisons : changement de la page de connexion, bug dans mon code, …

Pourrais-tu :

Merci d’avance.

Le SSID est bien celui là.

Par contre je ne suis pas connecté directement au hotspot wifi, je passe par un PC qui est connecté au wifi et me partage la connexion par ethernet.
Cela dit, depuis mon PC connecté par ethernet, j’ai bien la redirection quand je vais sur une page, et ça fonctionne quand je m’authentifie, donc ça devrait pas poser de problème.

Il n’y a rien dans le log à part “Hotspot Login Manager[3802]: INFO: HLM system daemon is up and running.”

D’après ce que je vois dans le log quand je suis en mode verbeux il parle de wlan0, donc apparemment le script ne fonctionne que si on est directement en wifi…
Ça m’embête un peu d’installer le script sur le PC qui fait passerelle, il n’est pas à moi, pourquoi le script a besoin de préciser l’interface réseau à utiliser? Je pensais qu’il tentait simplement d’ouvrir une page internet et qu’en cas de redirection il effectuait l’envoi du formulaire.

[quote=“MCMic”]D’après ce que je vois dans le log quand je suis en mode verbeux il parle de wlan0, donc apparemment le script ne fonctionne que si on est directement en wifi…
Ça m’embête un peu d’installer le script sur le PC qui fait passerelle, il n’est pas à moi, pourquoi le script a besoin de préciser l’interface réseau à utiliser? Je pensais qu’il tentait simplement d’ouvrir une page internet et qu’en cas de redirection il effectuait l’envoi du formulaire.[/quote]
Ah ben tout s’explique. :slightly_smiling:
Effectivement HLM est fait avant tout pour être installé sur un PC portable qui a toujours son accès Wifi (connexion directe au hotspot). La détection de l’interface Wifi est justement faite pour éviter que le démon utilise des ressources quand tu es en liaison câble.

En fait pour tout t’avouer je vois pas trop l’intérêt de ta situation :

  • soit tu es sur un portable et donc tu peux te connecter directement en Wifi (même si tu gardes une connexion filaire pour par exemple partager des fichiers avec l’autre poste)
  • soit tu es sur un PC fixe et HLM n’a rien à gérer puisque les questions de hotspot concernent le wifi, et ce n’est pas à un poste “client” de gérer la connexion internet de la passerelle

Tu peux éclairer ma lanterne, que je sache si ça vaut le coup de traiter ton cas de figure ?

J’ai expliqué au début de mon poste:
En fait je ne capte le hotspot wifi que dans un coin de mon appartement, en collant l’ordi portable à la fenêtre.
J’ai donc laissé un ordinateur portable collé contre la fenêtre qui capte le wifi et le redistribue par ethernet.

L’autre avantage, c’est qu’il suffit de s’authentifier une seule fois sur le hotspot pour tous les PCs reliés au réseau (mais actuellement il n’y en a qu’un).

Serait-il possible d’ajouter à la configuration la possibilité de spécifier une interface réseau à utiliser? (ethernet dans mon cas)

Ok je comprends mieux (j’utilise pas énormément le wifi, la plupart du temps je suis en tethering, et ton cas de figure m’était pas venu à l’esprit). :wink:

Actuellement la sélection du type de hotspot se base sur le SSID de la connexion wifi (chose qu’on ne peut pas obtenir à partir d’une interface ethernet évidemment). Il faudrait donc non seulement spécifier l’interface réseau à utiliser, mais également le SSID. Mais bon c’est faisable. Je commencerai pas avant milieu de semaine prochaine par contre, j’ai pas vraiment le temps de m’en occuper proprement pour le moment, donc entre les modifs et les tests tu peux t’attendre à ça pour la fin de semaine prochaine voire le weekend.


En attendant, tu peux faire des modifs barbares à la main pour court-circuiter certaines parties (ça c’est facile) ça devrait te dépanner jusqu’à ce que j’implémente la solution proprement.

Dans hotspot_login_manager/libs/daemon/hlm_authenticator.py (il faut évidemment arrêter tout HLM avant, aussi bien le daemon que le notifier)
Lignes 72 et 73 :

if ifaces == []: raise _WaitForNextEvent()
Tu mets ces deux lignes en commentaire (avec des # juste devant) ce qui devient :

#if ifaces == []: #raise _WaitForNextEvent()

Ligne 96 :

Remplacer par (sans toucher aux espaces en début de ligne !! c’est important en Python) :


Ensuite tu retournes dans le répertoire principal et en root tu tapes :

Puis tu relances le daemon et éventuellement le notifier.
Normalement ça devrait le faire, tiens moi au courant. Quant à moi je te préviendrai ici-même quand la modif sera effectuée correctement.