[PATCH] upgrade.html: Rename uploaded firmware before sysupgrade

Adrian Schmutzler mail at adrianschmutzler.de
Fr Mai 10 17:32:51 CEST 2019


Hallo Fabian,

> Ist es möglich die verschobene Datei zu löschen, wenn eine neue Datei hochgeladen wird? 
> Ansonsten ist es bei einem fehlgeschlagenem Updateversuch möglich, noch mehr RAM zu verbraten (weil zwei Dateien hochgeladen werden können) und das gibt dann bestimmt ganz viele gebrickte Geräte.

Der Zieldateiname nach dem Verschieben ist ja gleich. Im schlimmsten Fall haben wir also tatsächlich kurzzeitig zwei Dateien (/tmp/uploadedfw.bin und die vom Upload). Da dieselbe Seite ja wieder geladen wird, und der Upload ja direkt vom Form gestartet wird, sehe ich im aktuellen Modus keine Möglichkeit das zu vermeiden, außer man leitet nach dem Upload nicht auf upgrade.html um, sondern woanders hin.

Wenn man das wirklich komplett ausschließen will, dann müsste man wohl tatsächlich das Löschen in haserl wegpatchen und die upload-pfad immer gleich lassen.

Ich denke aber, dass es vll. einfacher geht:
In den meisten vorhersehbaren Fällen, wo etwas nicht passt (z.B. falsches Devices im .bin), gibt sysupgrade brav exit code 1 zurück. Man könnte also für die ganzen normalen Fälle einfach
sysupgrade $args /tmp/uploadedfw.bin || rm /tmp/uploadedfw.bin
machen. Das erschlägt wohl > 95 % der Fälle. Wenn dann wirklich später im sysupgrade was kaputt geht, was davon nicht erwischt wird, startet er eh neu (wie er es ja auch ohne den Patch macht).

Nachdem ich jetzt so darüber nachgedacht habe, würde ich tatsächlich auch letzteres ganz gerne als V2 schicken, wenn du das ähnlich siehst.

Grüße

Adrian 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190510/ddfe531e/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev