[PATCH 1/2] fff-vpn-select: make vpn-select modular

Robert Langhammer rlanghammer at web.de
Do Jun 18 14:03:37 CEST 2020


Hi, s. inline

Am 18.06.20 um 11:50 schrieb Fabian Bläse:
> Hallo Robert,
>
> gute Sache. Folgende Anmerkungen:
>
> On 17.06.20 23:46, Robert Langhammer wrote:
>> diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>> index 30883f5..bf9c199 100755
>> --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>> +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select
>> @@ -1,65 +1,36 @@
>>  #!/bin/sh
>>
>>  # Usage: vpn-select <path-to-hood-file>
>> +# To add a new protocol, put a file with two functions to /etc/vpn-select.d/ .
>> +# The function ${protocol}_config is called for every peer in hoodfile.
>> +# The second function ${protocol}_start_stop is called once per installed protocol
> Hier könnte man noch erwähnen, dass sämtliche alte Config beim Sourcen entfernt werden muss.
Kommt auf das Protokoll an und wie man dann die config schreibt. Bei
fastd in unserer Version ist das so.
> Eigentlich gefällt mir das nicht so recht, eine ${protocol}_clear() Funktion wäre mir dafür glaube ich irgendwie lieber.
Da bin ich mir noch nicht sicher wie man das am flexibelsten/schönsten
mach. Soll ja auch nicht so kompliziert werden. Das configurehood reicht
mir da schon jedesmal wenn man rein schaut.
>
>> +[ -s "$hoodfile" ] || exit 1
>> +
>> +# source functions
>> +for file in /etc/vpn-select.d/*; do
>> +	. "$file"
>> +done
>> +
>> +# load hoodfile
>> +json_load "$(cat "$hoodfile")"
>> +json_select vpn
>> +
>> +# configure vpn
>> +index=1
> Stimmt das, hier mit Index 1 anzufangen? Ich konnte das dem jshn.sh auf die schnelle nicht entnehmen.
Ja, beginnt mit 1.
>
>> +while json_select "$index" > /dev/null ; do
>> +	json_get_var protocol protocol
>> +	"${protocol}_config"
> Was passiert, wenn ein VPN Protokoll nicht unterstützt wird (aka keine passende Funktion gesourced wurde)?
> Kann man das irgendwie abfangen und dann eine entsprechende Meldung ausgeben?

Es kommt so eine kleine Fehlermeldung:

/usr/sbin/vpn-select: line 27: testproto_config: not found

fand ich ok. Kann man aber auch schöner machen. "vpn-protokoll testproto
nicht unterstützt" oder so ähnlich. Eigentlich egal, das liest keiner.
Und der Routeraufsteller draussen kann da eh nix machen. Ist
Gatewaybetreiber-Sache.

> Da das ganze für jeden Peer einmal aufgerufen wird, würde ich da zu tendieren es ${protocol}_addpeer() o.ä. zu nennen.
das ist leicht :)
>
> Wenn wir neue Protokolle hinzufügen möchten, dann brauchen wir vermutlich einen Weg, Protokolle zu bevorzugen, da batman das nicht kann.
> Da müssen wir uns noch was einfallen lassen, das sollte aber ein lösbares Problem sein.

Da gehört auch Christians Anmerkung dazu. Das ist aber etwas
konzeptionelles. Da müssen wir uns nochmal Gedanken machen.

Mal sehen, was noch kommt, dann gibt es eine v2.

Viele Grüße
Robert

>
> Abgesehen davon gefällts mir, danke! :-)
> Schlussendlich bleibt für mich die Frage, ob das ganze überhaupt ein eigenes Paket wert ist. Aber das ist eine Frage für einen anderen Patch.
>
> 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/20200618/3169f4e4/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev