Erreur lancement hostapd (erreur dans les 2 premières ligne)
Résolu/Fermé
helmii
Messages postés
28
Date d'inscription
mercredi 19 juin 2013
Statut
Membre
Dernière intervention
8 juillet 2013
-
19 juin 2013 à 17:02
helmii Messages postés 28 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 8 juillet 2013 - 20 juin 2013 à 11:24
helmii Messages postés 28 Date d'inscription mercredi 19 juin 2013 Statut Membre Dernière intervention 8 juillet 2013 - 20 juin 2013 à 11:24
A voir également:
- Erreur lancement hostapd (erreur dans les 2 premières ligne)
- Erreur 0x80070643 - Guide
- Erreur 5000 france tv - Forum Lecteurs et supports vidéo
- Erreur dash 2502 - Forum Windows 10
- Ligne occupée - Forum SFR
- Hors ligne instagram - Guide
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié par [Dal] le 20/06/2013 à 11:11
Modifié par [Dal] le 20/06/2013 à 11:11
Salut helmii,
1.
Alors, je comprends :
- que tu utilises un script Perl faisant usage du module Perl Config::Simple pour modifier un fichier de configuration du programme "hostapd" (qui, quant à lui est un démon programmé en C)
- que lorsque tu utilises ce module Perl à cette fin, des commentaires sont insérés, précédés d'un ; ce que "hostapd" n'apprécie pas
2.
Selon la page CPAN de la documentation de Config::Simple, ce module essaye de deviner la syntaxe du fichier de configuration. Tu peux tester pour savoir quel est le format qu'il détecte comme indiqué là :
https://metacpan.org/pod/release/SHERZODR/Config-Simple-4.59/Simple.pm#READING_THE_CONFIGURATION_FILE
Cela devrait indiquer que le format détecté est "ini" (ou "simple-ini", qui n'est qu'une déclinaison du même format). Il semble que le format des commentaires dans "hostapd" soit des lignes commençant par un #, selon l'exemple de fichier .conf fournit avec les sources de "hostapd", et que ";" ne lui plaise donc pas selon ton expérience.
Le problème est que le format "ini" ou "simple-ini" est le format correct Config::Simple à utiliser dans la mesure où le fichier .conf à gérer contient des valeurs affectées par des "=" et que l'ajout des commentaires problématiques avec un ";" en codé en dur pour le format "ini" et non paramétrable.
3.
Alors, si tu veux conserver l'usage de ce module, tu peux éventuellement le patcher.
Dans le source de Config::Simple v4.59, à partir de la ligne 598, on trouve :
Remplace le ";" contenu dans la chaîne par un "#", qui est officiellement supporté par Config::Simple comme marque de commentaire aussi dans le format "ini".
Tape "perldoc perllocal" pour trouver ton module et l'endroit où se trouve le fichier "Simple.pm" à modifier (fait une copie avant de le modifier, just au cas où).
C'est un "hack", mais assez anodin et qui ne devrait pas vraiment avoir d'effets de bord, le module indiquant lui même qu'il gère (à la lecture en fait) les deux types de caractères comme signifiant des commentaires (sauf qu'à l'écriture il choisit d'écrire ";").
Cela serait mieux de créer ton propre module, et de signaler le problème au concepteur du module pour qu'il le prenne en compte dans une future version (par exemple en donnant la possibilité de paramétrer le caractère utilisé pour les commentaires dans le format "ini" ou "simple-ini", voire en donnant la possibilité de ne pas inclure tout ou partie de ces commentaires, ou de les adapter).
Dal
1.
Alors, je comprends :
- que tu utilises un script Perl faisant usage du module Perl Config::Simple pour modifier un fichier de configuration du programme "hostapd" (qui, quant à lui est un démon programmé en C)
- que lorsque tu utilises ce module Perl à cette fin, des commentaires sont insérés, précédés d'un ; ce que "hostapd" n'apprécie pas
2.
Selon la page CPAN de la documentation de Config::Simple, ce module essaye de deviner la syntaxe du fichier de configuration. Tu peux tester pour savoir quel est le format qu'il détecte comme indiqué là :
https://metacpan.org/pod/release/SHERZODR/Config-Simple-4.59/Simple.pm#READING_THE_CONFIGURATION_FILE
open(FH, "/etc/hostapd-1.0/hostapd/hostapd.conf"); printf("This file uses '%s' syntax\n", $cfg->guess_syntax(\*FH));
Cela devrait indiquer que le format détecté est "ini" (ou "simple-ini", qui n'est qu'une déclinaison du même format). Il semble que le format des commentaires dans "hostapd" soit des lignes commençant par un #, selon l'exemple de fichier .conf fournit avec les sources de "hostapd", et que ";" ne lui plaise donc pas selon ton expérience.
Le problème est que le format "ini" ou "simple-ini" est le format correct Config::Simple à utiliser dans la mesure où le fichier .conf à gérer contient des valeurs affectées par des "=" et que l'ajout des commentaires problématiques avec un ";" en codé en dur pour le format "ini" et non paramétrable.
3.
Alors, si tu veux conserver l'usage de ce module, tu peux éventuellement le patcher.
Dans le source de Config::Simple v4.59, à partir de la ligne 598, on trouve :
# generates a writable string sub as_string { my $self = shift; my $syntax = $self->{_SYNTAX} or die "'_SYNTAX' is not defined"; my $sub_syntax = $self->{_SUB_SYNTAX} || ''; my $currtime = localtime; my $STRING = undef; if ( $syntax eq 'ini' ) { $STRING .= "; Config::Simple $VERSION\n"; $STRING .= "; $currtime\n\n"; while ( my ($block_name, $key_values) = each %{$self->{_DATA}} ) { unless ( $sub_syntax eq 'simple-ini' ) { $STRING .= sprintf("[%s]\n", $block_name); } while ( my ($key, $value) = each %{$key_values} ) { my $values = join (WRITE_DELIM, map { quote_values($_) } @$value); $STRING .= sprintf("%s=%s\n", $key, $values ); } $STRING .= "\n"; }
Remplace le ";" contenu dans la chaîne par un "#", qui est officiellement supporté par Config::Simple comme marque de commentaire aussi dans le format "ini".
Tape "perldoc perllocal" pour trouver ton module et l'endroit où se trouve le fichier "Simple.pm" à modifier (fait une copie avant de le modifier, just au cas où).
C'est un "hack", mais assez anodin et qui ne devrait pas vraiment avoir d'effets de bord, le module indiquant lui même qu'il gère (à la lecture en fait) les deux types de caractères comme signifiant des commentaires (sauf qu'à l'écriture il choisit d'écrire ";").
Cela serait mieux de créer ton propre module, et de signaler le problème au concepteur du module pour qu'il le prenne en compte dans une future version (par exemple en donnant la possibilité de paramétrer le caractère utilisé pour les commentaires dans le format "ini" ou "simple-ini", voire en donnant la possibilité de ne pas inclure tout ou partie de ces commentaires, ou de les adapter).
Dal
20 juin 2013 à 11:24