[PATCH v2] fff-gateway: Add sanity checks

Fabian Bläse fabian at blaese.de
So Sep 8 12:39:18 CEST 2019


Mir ist grade folgendes untergekommen, warum die uci get oder uci show Lösung vielleicht dennoch eine gute Idee ist: Sie kann auch Syntaxfehler sinnvoll erkennen.

> root at doofi-router:~# configuregateway -c
> This script might remove existing vlans, interfaces, addresses, etc.
> Do you really want to continue? (y/n) y
> 
> uci: Parse error (EOF with unterminated ') at line 32, byte 620
> ERROR: Gateway config does not exists.
> 
> Error when executing configure from 01-version

Die Fehlermeldung sollte man dann entsprechend anpassen:
"Gateway config could not be parsed or does not exist."

Zudem ist es dann sinnvoll, das -q im passenden uci-call zu entfernen.

Beides zusammen kann man eigentlich auch in einem Test abbilden, da der Versionscheck gleichzeitig auch prüft, ob die Datei existiert:
- Zuerst uci get auf die Version machen. uci return Wert != 0 -> does not exist or could not be parsed
- Dann config version auswerten.

Gruß
Fabian


On 20.08.19 23:04, mail at adrianschmutzler.de wrote:
> Also ich bin eher dagegen, da das effektiv ein undokumentiertes Feature ist.
> 
>  
> 
> Ich würde entweder Fabians Lösung mit show > dev/null oder den alten [ -s ] nehmen.
> 
>  
> 
> Grüße
> 
>  
> 
> Adrian
> 
>  
> 
> *From:*franken-dev [mailto:franken-dev-bounces at freifunk.net] *On Behalf Of *robert
> *Sent:* Dienstag, 20. August 2019 22:59
> *To:* franken-dev at freifunk.net
> *Subject:* Re: [PATCH v2] fff-gateway: Add sanity checks
> 
>  
> 
> Hi,
> 
> ein uci get config prüft nur die Existenz der Datei. Test:
> 
> root at c2600:/etc/config# > robert
> root at c2600:/etc/config# uci get robert
> root at c2600:/etc/config# echo $?
> 0
> root at c2600:/etc/config# rm robert
> root at c2600:/etc/config# uci get robert
> uci: Entry not found
> root at c2600:/etc/config# echo $?
> 1
> 
> Also nicht mal den Inhalt. Man könnte also auch ein [ -f Datei ] nehmen.
> 
> Da es keinen Unterschied macht, würde ich es so lassen.
> 
> Grüße
> Robert
> 
> Am 20.08.19 um 17:06 schrieb Fabian Bläse:
>> Hey Adrian,
>>
>> dann hab ich die Frage falsch verstanden oder unaufmerksam gelesen, sorry.
>>
>> Du hast recht, die uci help sagt, dass eine "section" mit angegeben werden soll.
>> In so fern ist es wohl fraglich, ob wir uns auf das Verhalten verlassen können.
>>
>> Man könnte auch "uci show gateway >/dev/null" verwenden..
>>
>> Gruß
>> Fabian
>>
> 
>  
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20190908/31a167dd/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev