Matsch hat geschrieben: ↑19.04.2021, 19:43
Uff, das höre ich das erste Mal. Gibt's das nur vom Hören-Sagen oder auch irgendwo schriftliche Beiträge?
so direkt nicht.... zählt zu der Gattung der nicht unbedingt von EQ3 dokumentierten Befehle.
Ist aber nicht total geheim, die Verwendung findet sich auch bei EQ3 in der Firmware.
beispiel ist in /www/rega/esp/side.fn welche eine Include datei side.inc einbindet. Dort könntest du nachlesen
praktisches kleines Beispiel:
wie nehmen folgende kleine Zeilen
Code: Alles auswählen
<%
system.Exec ("logger -t LOGGERNAME -p user.debug [IncludeRun]");
%>
speichern die als include.inc ab und spielen die via filezilla ins verzeichnis /usr/local.
im sdv z,b. schreiben wir kleines Testscript:
Code: Alles auswählen
WriteLine ("aaa");
#inc ("../../etc/config/../../include.inc");
die Ausführung bringt nun:
Code: Alles auswählen
------------------------------- Scriptausgabe -------------------------------
aaa
------------------------------ Script Variablen -----------------------------
--------------------------------- SystemLog ---------------------------------
Apr 19 21:30:53 SpieleSystem user.debug LOGGERNAME: [IncludeRun]
er hat also das include geladen und darin den logger ausgeführt.
soweit hübsch, nun das Kleingedruckte:
1. das include muss in <% scriptcode %> gepackt sein
2. das #inc darf nicht der erste Befehl des scriptes sein
3. Intern würde der Scriptparser mit "/www/rega" präfixen. könenn wir nicht brauchen. Deswegen das Directory Traversal ../../etc/config/../../ welches dann auf /user/local verweist, wohin wir auch das inc hingeladen haben
4. die rega cashed #inc und call. heisst: beim ersten aufruf legt sich dei rega den inhalt von include.inc in ihren cache. beim nächsten mal wird immer aus dem cache geholt. bedeutet: änderst du nun das .inc file und lädst das hoch, führst das script aus dann:überraschung, es funktioniert immer noch so wie vor der Änderung. Auch logisch, weil dies steht auch im cache und deine Änderung ist der Rega sowas von egal. Bedeutet: Wenn du ein Include oder eine Funtion änderst, musst du den cache killen.am sichersten geht das mit rega stop und rega restart. dann übernimmt er deine änderung.
5. der SDV kann das <% und %> "noch" nicht korrekt darstellen. Known Issue. ist aber ausser mir noch nicht soooo vielen aufgefallen.
noch Fragen ? kein Problem
Black