[Gelöst] Probleme bei Web-GUI Entwicklung

han-solo

Mitglied
Mitglied seit
28 Jul 2005
Beiträge
451
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich bin gerade dabei eine GUI zu entwickeln und stoße dabei auf folgendes Problem.
nenn wir die GUI erstmal HUGO. Ich will noch nicht verraten was ich hier bastle.

Also wenn ich das Formular HUGO mittels "Übernehmen" abschicke, wird zuerst die Datei /mod/etc/init.d/rc.hugo abgearbeitet und danach erst die /mod/etc/conf/hugo.cfg geschrieben.

Aber es soll anderes rum ablaufen. Was mache ich falsch?

Gruß
HS
 
Zuletzt bearbeitet:
Beim "Übernehmen" prüft das Skript zuerst, ob dein Deinst "HUGO" läuft, und prüft das mit "/mod/etc/init.d/rc.hugo status". Deshalb wird das immer "zuerst" aufgerufen.
Ist schon ein wenig her, dass ich damit gekämpft habe ;-).
Für Details schau mal in " /usr/mww/cgi-bin/save.cgi" nach...

Jörg
 
Ok, danke.
Habe rc.hugo entsprechend manipuliert und jetzt funzt es.
Ich bastle noch ein wenig rum und dann werd ich die GUI hier mal veröffentlichen.

Gruß
HS
 
AVM-Firewall oder ganz kalt?
 
Nein, nicht ganz.
Aber das wird mein nächstes Projekt werden wenn mir nicht jemand zuvor kommt.
Aber damit ich schneller voran komme, würde es mich intressieren, wie ich mit reg.file arbeiten kann, um .conf Dateien im flash zu speichern.

Ich will mir das openvpn Paket dazu anschauen. Aber wenn es mir jemand mit einfachen Schritten erklären könnte, dann bleiben mir sicherlich ein paar Stunden Arbeit erspart.

Danke!

Gruß
HS
 
Vielleicht kann ich ja morgen dazu was schreiben.
Wenn du willst, kannst du ja vielleicht per PN etwas genauer beschreiben, was genau du machen willst? Wenn das openvpn Paket das irgendwo nutzt, sollte ich das schon irgendwie erklärt kriegen (zumindest nach ein paar Stunden Schlaf) ;-)

Jörg

EDIT: Ich bin jetzt etwas wacher, aber so ganz konnte ich die Frage noch nicht verstehen. Könntest du nochmal etwas genauer beschreiben, was du womit "machen" willst, um eine ".conf"-Datei zu erstellen?

"file.reg" gehört zu den registrierten "files", die Dinge, die du unter "Einstellungen" siehst, wie z.B. die Keys für openvpn.
Die .conf wird normalerweise über die rc-Datei (bei dir die rc.hugo) direkt vor dem Start erzeugt.
Wenn du tatsächlich das wirklich meinen solltest: Du kannst auch mit einem "file" eine .conf-Datei erstellen. Zum einen, ähnlich wie beim openvpn, indem du beim Speichern des Files prüfst, ob der Dienst läuft und dann (wie oben angegeben) das aufgerufene rc.hugo das übernimmt, Du kannst auch beim Abspeichern der Datei ein "beliebiges" Skript ausführen, was dann eine Datei speichern kann.
 
Zuletzt bearbeitet:
Ich schreib mal die Antwort auf deine PN hier, vielleicht interessiert es ja auch noch andere:
han-solo schrieb:
ich verrate dir, dass ich an einem Web-Interface für *Uuupps* arbeite.
Das brauchtest du aber nicht zu tun, du hättest auch bei "Hugo" bleiben können, ich sag's aber nicht weiter ;-) und bleibe mal bei "hugo".

Ich vermute, du bist schon fast fertig ;-), nur die Speicherung ist etwas anders, als du denkst?!?

Die ds-mod GUI's funktionieren alle so, dass es Variablen nach einem bestimmten Schema gibt. Diese werden in der GUI belegt (per Eingabe oder auch per javascript). Beim "Übernehmen" werden diese Variablen mit den "default-Variablen" verglichen und beim Abweichen direkt resetfest im Flash abgespeichert.

Ich versuche es mal mit einem Beispiel, wenn du das schon kennst, sorry, ist aber auch egal:

Inhalt von "/etc/default.hugo/hugo.cfg":
Code:
export HUGO_ENABLED="yes"
export HUGO_CONFIG_VAR1="1"
export HUGO_MEINWERT="hallo"
export HUGO_DEBUG=""

Im Code der GUI steht dann um z.B. MEINWERT zu verändern (nur ein Ausschnitt)
Code:
<p>Meinwert: <input type="text" name="meinwert" value="$(httpd -e "$HUGO_MEINWERT")"></p>
Gibst du hier nun "Blabla" ein, erzeugt das "übernehmen" die Datei "/var/tmp/flash/hugo.diff":
Code:
export HUGO_MEINWERT='Blabla'
die mit "modsave" auch gleich gesichert wird und erstellt dann ein aktuelles "/mod/etc/conf/hugo.cfg" (das alles macht "save.cgi"). In deinem "rc.hugo" sollte dann zu Beginn in etwa stehen:

Code:
# ....
DAEMON=hugo
# ....
case "$1" in
        ""|load|start|restart)
                if [ ! -r "/mod/etc/conf/${DAEMON}.cfg" ]; then
                        echo "Error[$DAEMON]: not configured" 1>&2
                        exit 1
                fi

                . /mod/etc/conf/${DAEMON}.cfg
                ;;
esac
# ...
Dadurch werden die Variablen belegt und beim Start kannst du z.B. mit
Code:
echo "# START von hugo.conf #" > /mod/etc/conf/hugo.conf
echo "echo \"Mein Wert von MEINWERT ist $HUGO_MEINWERT\"" >> /mod/etc/conf/hugo.conf
echo "# ENDE von hugo.conf #" >> /mod/etc/conf/hugo.conf
deine Config daraus erzeugen.

Puh, ist etwas länger geworden, ich hoffe aber, noch verständlich?!? Sonst frag bitte nochmal nach.

Viel Erfolg

Jörg
 
Hallo Jörg,

danke für die ausführliche Erläuterung.
Das habe ich auch alles bereits und es klappt auch vorzüglich. Allerdings brauche ich noch eine zusätzliche Möglichkeit um eine Datei resettfest zu schreiben.

Also z.B. /var/flash/hugo.conf

Diese ist wie gesagt unabhängig von der /mod/etc/conv/hugo.cfg.
Ich benötige beide Dateien.
Danke!

Gruß
HS
 
Da gibt es m.E. drei Möglichkeiten:
  1. Die Datei als "file" im mod registrieren, dann erscheint sie unter Einstellungen, kann dort verändert werden und wird dabei auch immer "gesichert"
  2. Die benötigten "Grunddaten" dafür in "hugo.cfg" mit aufnehmen und von rc.hugo beim Starten daraus deine zweite Datei erstellen lassen
  3. Eine Datei an belibige Stelle unterhalb von "/var/tmp/flash" schreiben und mit "modsave" resetfest sichern

Jörg
 
ok, Möglichkeit 1 und 3 sind intressant. Wobei 1 am Schönsten wäre.
Möglichkeit 2 ist zu aufwendig.

Gibt&acute;s für 1 ein HowTo?
 
Sowas ist sicher irgendwo in den älteren ds-mod Threads vorhanden, aber ich denke ein paar Infos dazu reichen....

Code:
/var/tmp $ modreg
Usage: /usr/bin/modreg cgi <pkg> <title>
       /usr/bin/modreg extra <pkg> <title> <sec-level> <cgi-name>
       /usr/bin/modreg file <id> <title> <sec-level> <desc-file>
/var/tmp $
also als Besipiel:

Code:
 modreg file 'static_key' 'OpenVPN: Static Key' 0 "/mod/etc/default.openvpn/static_key.def"
Trägt in der GUI die Datei mit dem "Namen" OpenVPN: Static Key unter Einstellungen ein, und wäre editierbar in der GUI unter "http://fritz.box:81/cgi-bin/file.cgi?id=static_key" und nur im "Security-Level" 0 editierbar.

Die Datei "static_key.def" sieht dann wiederum so aus:
Code:
/var/tmp $ cat /mod/etc/default.openvpn/static_key.def
CAPTION='Static Key (OpenVPN)'
DESCRIPTION='Automatisch erzeugter Schlüssel. Wird als statischer Schlüssel oder als TLS-Schlüssel auf der/den Gegenseite(n) benötigt.'
CONFIG_FILE='/tmp/flash/static.key'
CONFIG_SAVE='modsave flash; if [ ! -z "$(pidof openvpn)" ]; then echo ""; /mod/etc/init.d/rc.openvpn reload; fi'
CONFIG_TYPE='text'
/var/tmp $

Mit:

CAPTION="Überschrift in der GUI"
DESCRIPTION="Beschreibung in der GUI"
CONFIG_FILE="das ist die eigentliche Datei, um die es geht"
CONFIG_SAVE='Befehel/Skript beim "Übernehmen"'
CONFIG_TYPE='Was ist der Inhalt'



Jörg
 
Cool, jetzt bin ich schon ein ganzes Stück weiter.
Aber im Webinterface bekomme ich die Meldung:

Code:
Konfiguration in der aktuellen Sicherheitsstufe nicht verfügbar!
Fehler: Unbekannter Typ ''

Obwohl die Datei vorhanden ist und ich das Security-Level 0 eingestellt habe.

Gruß
HS
 
... hast du vielleicht den CONFIG_TYPE='text' nicht drin?!?
Oder eine "falsche Reihenfolge" beim Eintrag?


Jörg
 
Zuletzt bearbeitet:
Hab ich alles drinne:

Code:
CAPTION='Rules (hugo)'
DESCRIPTION='Blablablablablablablablabla.'
CONFIG_FILE='/tmp/flash/hugo.rules'
CONFIG_SAVE='modsave flash'
CONFIG_TYPE='text'
 
Ok, jetzt rennt es. Die Datei /mod/etc/default.hugo/hugo.def muss wirklich .def heissen.
Ich hatte zuerst eine andere Bezeichnung dafür verwendet.
Danke dir.

Gruß
HS
 
Es wäre sicher für die Nachwelt von großem Nutzen, wenn die hier geleistete Dokumentation sowie die zusätzlich gewonnen Einsichten ihren Weg in das Wiki finden würden - Danke!
 
done. MaxMuster und ich haben das Wiki um die o.g. Informationen ergänzt.
 
:p ;) :groesste:
 
han-solo, ändere doch den Titel in "Diskussion über Web-GUI-Entwicklung" oder einfach "Web-GUI-Entwicklung", denn Probleme hast du nicht mehr...

MfG
 
Kostenlos!

Statistik des Forums

Themen
248,460
Beiträge
2,291,835
Mitglieder
377,877
Neuestes Mitglied
aiulanah