.titleBar { margin-bottom: 5px!important; }

danisahne-mod ..::Developer::..

Dieses Thema im Forum "Freetz" wurde erstellt von danisahne, 27 Dez. 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. danisahne

    danisahne Aktives Mitglied

    Registriert seit:
    30 Juli 2005
    Beiträge:
    1,493
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Informatik Studium
    Ort:
    Marktoberdorf
    #1 danisahne, 27 Dez. 2005
    Zuletzt bearbeitet: 24 Apr. 2006
    Hallo,

    zuerst mal die ...

    EINTEILUNG:

    Ich habe die Funktionshinweise nun ausgegliedert, um in einem neuen Thread einzig und alleine die Paket- und Mod-Entwicklung zu diskutieren. Wenn du das willst, dann bist du hier genau richtig.

    Hier gibts den aktuellen Mod:
    [noparse]danisahne-mod >>[/noparse]

    Hier also kein User-Support, das ist Developer-Bereich ;) Fragen bitte einfach im ds-mod Unterforum stellen

    HINWEISE:

    Hier sollten jetzt nur Developer und Interessierte sein. Dieser Thread richtet sich an alle, die am Mod mitwirken wollen. Dazu ist jeder herzlich eingeladen. Wer ein Paket erstellen will, meldet sich bitte bei mir Zwecks Absprache (soll ja nichts doppelt gemacht werden). Ihr behaltet dann die Hoheit über euer Paket, d.h. Änderungen am Paket nehmt nur ihr vor. Ich aktualisiere dann immer nur euer Paket im Mod.




    Inhalt

    1. Allgemeines
    2. Eigene rc Skripte
    3. Eigene Dateien ins Image packen
    4. Eigene Pakete
    5. Konfiguration
    6. Dokumentation


    1. Allgemeines

    Die Konfiguration wird in einem eigenen character device /var/flash/ds_mod gespeichert. Es enthält ein tar Archiv des Ordners /var/tmp/flash (ist das selbe wie /tmp/flash, Symlink! Nicht mit /var/flash verwechseln!!!). Beim Booten wird das Archiv entpackt, so dass Dateien, die einen Reboot überleben sollen einfach nach /tmp/flash kopiert werden können, gefolgt von einem 'modsave flash'. Ich habe ein Hardlimit von 30KB als Standard gewählt, das durch
    Code:
    modconf set mod MOD_LIMIT=<bytes>
    modsave
    geändert werden kann. Eine Sicherheitsbarriere, mit der das Bearbeiten von Konfiguartionsdateien über das Webinterface eingeschränkt werden kann ist das "Sicherheits Level":
    Code:
    echo x > /tmp/flash/security
    modsave
    # wobei x folgende Werte annehmen kann:
    # 0 : keine Einschränkungen
    # 1 : Dateien mit Shell Befehlen dürfen nicht bearbeitet werden, der Rest schon
    # 2 : keine Konfigurationsdatei darf bearbeitet werden
    Das "Sicherheits Level" bestimmt in ähnlicher Weise auch, welche Skripte unter "Extras" ausgeführt werden dürfen und welche nicht.

    Wrapper-Skripte für Textdateien (erfordern kein 'modsave'):
    • Dateien in /var/flash: nvi
      z.B.: nvi /var/flash/debug.cfg
    • Dateien in /tmp/flash: mvi
      z.B.: mvi /tmp/flash/meine_datei.txt


    2. Eigene rc Skripte

    • /var/flash/debug.cfg: Diese Datei wird vom mod nicht verwendet und steht weiterhin gewohnt zur freien Verfügung. Zu beachten ist nur, dass die debug.cfg VOR dem eigentlichen Mod ausgeführt wird (rc.mod).
    • /tmp/flash/rc.custom: Diese Datei wird beim Booten als letztes aufgerufen, wenn sie existiert. Sie kann folgendermaßen angelegt werden:
      Code:
      mvi /tmp/flash/rc.custom # -> bearbeiten -> :wq
    Reihenfolge beim Booten:
    Code:
    -> rc.S
       |-> rc.{dsl|net|viop|telefon|...}
       |-> debug.cfg
       '-> rc.mod
           |-> rc.{bftpd|dropbear|...}  (Pakete)
           '-> rc.custom
    Eine Ausnahme ist rc.dnsmasq (und auch rc.callmonitor), wenn statisch in der Firmware enthalten, welches direkt vor multid in der rc.net gestartet wird (da sonst das Binden der Ports fehlschlägt; vor dem multid startend wird ein Neustart des multid vermieden, der sonst z.B. bei 'rc.dnsmasq restart' immer erfolgt).

    Das Verzeichnis /mod/ (bzw. /var/mod/) ist im RAM und stellt ein quasi root Verzeichnis für den Mod dar. Die rc Skripte der Pakete sind alle in /mod/etc/init.d/rc.* bzw. dort verlinkt.


    3. Eigene Dateien ins Image packen

    Entweder ein eigenes Paket erstellen (siehe 6.4.) oder einfach die Dateien ins Verzeichnis root/ an die stelle kopieren, wo sie im Squashfs landen sollen (root/bin/test ist auf der Box /bin/test).


    4. Eigene Pakete

    An ein Paket stellen sich folgende Anforderungen:

    • rc Skript: etc/init.d/rc.<paketname> [start|stop|load|unload|restart|status]
    Wenn konfigurierbar:
    • Default Konfiguration: etc/default.<paketname>/<paketname>.cfg
    • Optional: cgi Skript für die Weboberfläche: usr/lib/cgi-bin/<paketname>.cgi
    • Optional: Extra cgi Skripte in usr/lib/cgi-bin/<paketname>/
    Sonstige Default Dateien sollten auch ins Verzeichnis etc/default.<paketname>/ gepackt werden.

    HINWEIS: Ich werd noch ein Skript schreiben, mit dem man einen Paketrahmen erzeugen kann.

    Statische Pakete werden auf der Box nach / entpackt, dynamische nach /mod/. Egal ob dynamisch oder statisch
    • /mod/etc/init.d/rc.<paketname>
    • /mod/default.<paketname>/*
    • /mod/usr/lib/cgi-bin/<paketname>.cgi
    • /mod/usr/lib/cgi-bin/<paketname>/*
    sind immer gültig (sofern im Paket enthalten) und werden bei statischen Paketen über Symlinks realisiert. Eine spezielle Bedeutung kommt dem Pfad /mod/pkg/<paketname> zu. Er ist entweder ein Symlink auf / oder auf /mod und zeigt auf "Root" für das Paket (sollte in der Regel nicht benötigt werden). Binaries sollten nach bin, sbin, usr/bin oder usr/sbin, damit sie sowohl in statischen als auch dynamischen Paketen aufrufbar sind (die PATH Variable enthält auch /mod/bin, /mod/sbin, /mod/usr/bin und /mod/usr/sbin). Libraries funktionieren mit statischen wie auch dynamischen Paketen in lib (LD_LIBRARY_PATH=/mod/lib => Library wird in /lib und /mod/lib gesucht)

    Benötigt ein Daemon eines Paketes eine Konfigurationsdatei (z.B. bftpd.conf), die für diesen Daemon spezifisch ist, so wird sie in der Regel im rc Skript vor dem Starten des Daemons erzeugt. Ich habe dafür folgende Konvention gewählt (ist aber kein muss), welche am Beispiel der bftpd.conf erläutert ist:
    1. Suche nach Skript /tmp/flash/bftpd_conf, welches die bftpd.conf als Ausgabe hat; existiert? -> goto 3.
    2. Führe Skript /etc/default.bftpd/bftpd_conf aus, die Ausgabe ergibt wie bei 2. die bftpd.conf (meistens ist dies der Fall)
    3. Existiert /tmp/flash/bftpd.conf.extra? -> füge sie an die in 1. oder 2. generierte bftpd.conf an
    Das sollte alle Möglichkeiten des "Feintunings" offen lassen. 3. macht nicht immer Sinn, darum ist es optional. Wäre schön, wenn jeder, der ein Paket erstellt, die Konventionen einhält. Das Skript bftpd_conf muss stets mit exportierten Variablen aus /mod/etc/conf/bftpd.cfg aufgerufen werden. So wird die bftpd.conf je nach Paket-Konfiguration individuell erstellt.


    5. Konfiguration

    Jedes Paket besitzt ein Konfigurationsdatei /mod/etc/conf/<paketname>.cfg, welche wie folgt aufgebaut ist:
    Code:
    export <PAKETNAME>_OPTION1='bla'
    export <PAKETNAME>_OPTION2='blub'
    ...
    Sie enthält alle Optionen, die auch übers Webinterface eingestellt werden können und ist in Shell Syntax. Damit kann die aktuelle Konfiguration mit
    Code:
    . /mod/etc/conf/<paketname>.cfg
    eingelesen werden. In der Datei /mod/etc/default.<paketname>/<paketname>.cfg sind die default Einstellungen gespeichert. Beim Speichern werden nur die sich von den Defaults unterscheidenden Variablen in die /tmp/flash/<paketname>.diff transferiert und mit dem ganzen Verzeichnis /tmp/flash/ ins tffs abgelegt. Die Basis-Konfiguration hat den Paketnamen 'mod'. Die Befehle dazu sind:
    Code:
    modconf load <paketname>
    # -> erzeugt die Datei /mod/etc/conf/<paketname>.cfg aus den Defaults und der <paketname>.diff
    
    modconf save <paketname>
    # -> erzeugt die Datei <paketname>.diff aus den Defaults und der /mod/etc/conf/<paketname>.cfg
    
    modsave
    # -> ruft unter anderem für alle Pakete 'modconf save' auf und speichert das Verzeichnis /tmp/flash ins tffs
    
    modsave flash
    # -> speichert nur das Verzeichnis /tmp/flash ins tffs
    Das dauerhafte Abschalten des Webinterfaces geht damit so (Variable MOD_HTTPD in der Basis-Konfiguration 'mod'):
    Code:
    vi /mod/etc/conf/mod.cfg  # -> MOD_HTTPD='yes' durch MOD_HTTPD='no' ersetzen
    modconf save mod  # nun ist mod.diff up-to-date
    modsave flash  # damit ist mod.diff im tffs
    
    # oder
    
    vi /mod/etc/conf/mod.cfg  # -> MOD_HTTPD='yes' durch MOD_HTTPD='no' ersetzen
    modsave  # erzeugt alle diff Dateien neu und speichert ins tffs
    Soviel zur Veranschaulichung. Komfortabler ist folgendes:
    Code:
    modconf set mod MOD_HTTPD=no
    modconf save mod
    modsave flash
    
    # bzw.
    
    modconf set mod MOD_HTTPD=no
    modsave

    6. Dokumentation

    Ich möchte dann auch mal noch die wichtigsten Befehle mit Bedeutung auflisten und eine Dokumentation für jedes Paket beginnen, worin die Optionen des Webinterface detailliert beschrieben sind (aber auch ein paar Howtos, z.B. "Wie erstelle ich Benutzerkonten für den bftpd").


    So, nun schießt mal los mit den Detailfragen zum Innenleben des Mods :)

    Mfg,
    danisahne
     
  2. danisahne

    danisahne Aktives Mitglied

    Registriert seit:
    30 Juli 2005
    Beiträge:
    1,493
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Informatik Studium
    Ort:
    Marktoberdorf
    @heini66:
    Kein Problem. Aber du merkst das um 5:00 Uhr in der früh? Was machst du denn tagsüber ;) (rethorische Frage, hab deine ursprüngliche Antwort um 2:30 ja auch noch gelesen :D )
     
  3. Massa

    Massa Neuer User

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    145
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #5 Massa, 30 Dez. 2005
    Zuletzt bearbeitet: 8 Jan. 2006
    Hallo danisahne,

    nachdem das hier ja der Development-Thread ist...

    Ich habe hier mal in den Anhang meine fwmod_custom angehängt.
    Die patched (ziemlich generisch) die Webseiten ;)

    Hier sind die Dinge, die die Datei im Einzelnen macht:
    Zuerst erstellt sie für alle möglichen Brandings Links für die Webseiten auf das vorhandene Branding.
    Damit sollte ein gefahrloses "umbranden" möglich sein. Habe ich bisher aber nicht getestet, bei mir steht es immer auf "avm" ;)

    Dann werden Patches für verschiedene Dinge, die hier verstreut in mehreren Threads zu finden sind eingespielt
    (Internationale Vorwahleinstellungen, ENUM-Einstellungen, WDS, gepatchter Push-Dienst)

    Ich habe die Patches dabei so versucht abzuändern, dass sie unabhängig vom Branding funktionieren sollten (ebenfalls ungetestet)

    Kannst Du Dir ja mal anschauen - vielleicht kannst Du Teile daraus verwenden...

    Achja nochwas:
    Könntest Du in zukünftigen Versionen nicht auch die "clean" Regel ändern?
    Ein "make clean" sollte IMHO nicht die Konfiguration löschen sondern nur die erzeugten Dateien (build-Verzeichnis).
    Für das Löschen der Konfiguation wäre m.E. "make distclean" oder "make clobber" da.
    Ausserdem wäre dann auch für die clean-Regel ein "fwmod_custom_clean" sehr nützlich (bzw. ein Aufruf von fwmod_custom mit Parameter "clean");
    damit könnten dann eigene Erweiterungen auch sauber aufgeräumt werden ;)

    EDIT2 (08.01.2006): Ich habe jetzt (hoffentlich) die Fehler im Script behoben und die aktualisierte Version (immer noch für ds-0.1.1) hochgeladen.
    Ausserdem habe ich den WDS-Patch erweitert und einen Bug durch einen neuen Patch beseitigt:
    Unter bestimmten Bedingungen (die bei mir leider der Fall waren), liess sich der WDS-Slave Modus nicht einstellen, wenn die Box hinter einem Router betrieben wird (d.h. ohne selber die DSL-Verbindung aufzubauen).
    Ich habe da ein paar weitere Abfragen eingebaut, dass WDS-Slave auch immer im ATA-Modus einstellbar ist.
     

    Anhänge:

  4. supamicha

    supamicha Mitglied

    Registriert seit:
    3 Dez. 2004
    Beiträge:
    577
    Zustimmungen:
    4
    Punkte für Erfolge:
    18
    im ds-0.2rc2 sind ein paar patches schon drin, der rest ist vorbereitet.

    micha
     
  5. Massa

    Massa Neuer User

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    145
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ich überlege gerade, ob es wirklich Sinn macht,
    die ganzen Webseitenänderungen direkt zu patchen
    und gepatched ins Mod-Image einzubauen.

    Oder sollte nicht doch lieber ein Paket gebaut werden,
    mit dem solche Patches dynamisch ein- und ausgeschaltet
    werden können? (über Pseudo-Mounts)
     
  6. danisahne

    danisahne Aktives Mitglied

    Registriert seit:
    30 Juli 2005
    Beiträge:
    1,493
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Informatik Studium
    Ort:
    Marktoberdorf
    Hi Massa, bin wieder zurück.
    Werds mir mal durchschauen. Danke auf jede Fall schon mal.
    Hab ich in der nächsten Version verbessert. Die Konfiguaration überlebt nun ein `make clean'.
    Auch das hab ich eingebaut.
    Ich finds schon besser, das beim Modden direkt zu patchen. Das werden ja wohl die meisten haben wollen, da es die Funktionsweise der Box nicht beeinträchtigt.

    Mfg,
    danisahne
     
  7. heini66

    heini66 Gesperrt

    Registriert seit:
    12 März 2005
    Beiträge:
    2,163
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    irgendwo im wald im kreuz von hh und lg
    #9 heini66, 1 Jan. 2006
    Zuletzt bearbeitet: 1 Jan. 2006
    hi, ich hab mir den inhalt von /usr/www/all/html/fon auch mal angesehen, da ist ja noch menge mehr drinn. buddy's z.b. ...
    wäre nett das mal alles im webinterface offen zu haben.
    bin leider nicht in der lage die von massa angehängte fwmod_custom so zu erweitern, das ich das selber ins image bringe.
    machts mir einer??? *liebschau*
    und gibt es ne möglichkeit die info's zu belegten voip anrufbeantworten zu jeder voip nummer getrennt im webinterface auszugeben? (sie haben neue nachrichten in ihrer mailbox (internettelefonie) auf der standart übersichtsseite und blinken der internettelefonie led)

    nen frohes neues übringes!

    der heini
     
  8. Massa

    Massa Neuer User

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    145
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Wie schon oben erwähnt, hat meine fwmod_custom wohl noch ein paar Probleme.
    Zum einen scheint er nicht alles so zu patchen, wie es sein sollte und zum anderen funktionieren die Patches teilweise nicht :(

    Ich gehe jetzt aber erstmal ein paar Tage Skifahren ;)
    Vielleicht komme ich nächstes Wochenende dazu, mal nochmal danach zu schauen...

    Natürlich auch von mir alle gute im neuen Jahr! :D
     
  9. danisahne

    danisahne Aktives Mitglied

    Registriert seit:
    30 Juli 2005
    Beiträge:
    1,493
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Informatik Studium
    Ort:
    Marktoberdorf
    #11 danisahne, 5 Jan. 2006
    Zuletzt bearbeitet: 5 Jan. 2006
    Hallo,

    irgendwie steck ich gerade in einem Dilemma mit den Cryptolibrarys:
    • dropbear -> libtomcrypt (mein Favorit)
    • vpnc -> libgcrypt
    • OpenVPN -> nur OpenSSL (SSLeay) ??
    • stunnel -> nur OpenSSL (SSLeay) ??
    Irgendwie haben wir dann ja schon fast alle Crypto Bibliotheken auf der Box oder?

    libtomcrypt ist sehr klein, darum wird sie auch vom dropbear genutzt. leider scheint es dazu keine SSL Implementation zu geben.

    Hier scheint es jemand geschafft zu haben anstatt der libgcrypt die libtomcrypt in vpnc zu integrieren. Damit ließe sich mit dropbear Code teilen. Ich hab dazu aber keinen Code gefunden.

    Um OpenSSL scheinen wir nicht rumzukommen. Nachteil: Das Ding ist so groß. Sollen wir jetzt alles statisch linken oder kennt jemand noch einen Ausweg?

    Mfg,
    danisahne
     
  10. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,777
    Zustimmungen:
    10
    Punkte für Erfolge:
    38
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
  11. danisahne

    danisahne Aktives Mitglied

    Registriert seit:
    30 Juli 2005
    Beiträge:
    1,493
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Informatik Studium
    Ort:
    Marktoberdorf
    #13 danisahne, 5 Jan. 2006
    Zuletzt bearbeitet: 5 Jan. 2006
    Auf der velinkten Seite steht ja auch nur, dass man für vpnc libgcrypt braucht. Ich bin ja gerade auch am Einbinden des vpnc Pakets von eresleo: http://www.ip-phone-forum.de/showthread.php?t=88073. Das ist alles schon fertig kompiliert und lauffähig, aber leider eben auch nicht gerade klein, darum mach ich mir die Gedanken.

    MatrixSSL unterstützt in der freien Version glaub ich auch kein AES. Das wäre echt klein, aber ich kenn kein einziges Programm, welches das unterstützt.

    EDIT: Hier hatte mal jemand die Portierung für vpnc-0.2 nach libtomcrypt vorgenommen: http://lambda.foldr.org/~michaelw/vpnc/. Allerdings anscheinend nicht fortgeführt :(

    EDIT2: Zumindest stehts im TODO :) : http://svn.unix-ag.uni-kl.de/vpnc/trunk/TODO
    Sobald das implementiert ist werd ich dropbear dynamisch gegen libtomcrypt linken. Um OpenSSL scheint aber kein Weg herumzuführen :(

    Gruß,
    danisahne
     
  12. Massa

    Massa Neuer User

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    145
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Frag' doch mal Brainslayer, der die dd-wrt Firmware für Linksys-Router geschrieben hat.
    Er hat auch eine Version mit OpenVPN erstellt (und dropbear ist sowieso mit drin), vielleicht hat er das Problem mit den Libraries gelöst...

    Hier ist die Webseite: http://www.dd-wrt.com

    Brainslayer sitzt in Berlin, kann also auch auf Deutsch befragt werden - wenn Du willst ;)
     
  13. Massa

    Massa Neuer User

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    145
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
  14. Massa

    Massa Neuer User

    Registriert seit:
    18 Dez. 2004
    Beiträge:
    145
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Das ist eine Antwort auf ein Post von buehmann, das er im "normalen" dsmod-Thread geschrieben hatte.
    (betrifft Entwicklung und passt deshalb besser hier rein ;-) )

    Wusste ich nicht :oops:
    Dann kann man das sort natürlich auch komplett weglassen.
    Ich merke schon, gemeinsam sind wir ein unschlagbares Shell-Team :-D

    Hier nochmals für alle der endgültige Code, um eine PID-Abfrage für den httpd-Daemon zu machen:
    Code:
    ps | grep ' httpd -p 81' | grep -v grep | awk '{print $1}' | head -1
     
  15. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,320
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    hiho...hoffe das das nicht schon zig mal besprochen wurde, aber ich hab mich jetzt seit einiger zeit mit eurem treiben beschäftigt, und habe gesehn das euch immer der speicher zu eng wird...
    und nu meine hoffentlich nicht allzu dumme frage...
    wenn wir uns alle enig sind, das das avm branding eh nur genutzt wird im mod...wieso behalten wir dann die 1,2 mb(entpackt) daten der anderen brandings im ordner user/www/ ?? ok...all, cgi-bin und avm bleiben iss klar...
    würd mich freuen wenn ihr mich darüber aufklärt...wollen doch alle nicht, das ich das am ende noch alles verstehe *GRINS*
     
  16. buehmann

    buehmann Aktives Mitglied

    Registriert seit:
    11 Juni 2005
    Beiträge:
    1,810
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wie die zwei von der Tankstelle ... :kasper:
     
  17. buehmann

    buehmann Aktives Mitglied

    Registriert seit:
    11 Juni 2005
    Beiträge:
    1,810
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi, vielleicht weil die anderen Brandings bei der 7050 (die auch danisahne hat) zu vernachlässigen sind und es deswegen noch nicht aufgefallen ist:
    Code:
    ds-0.2> (cd fritz.box_fon_wlan_7050.14.03.89.image.mod/original/filesystem/; du -h -s --apparent-size usr/www/*)
    435     usr/www/1und1
    1,3M    usr/www/all
    435     usr/www/avm
    88K     usr/www/cgi-bin
    9       usr/www/html
    
    Bei deiner Box sieht das tatsächlich anders aus, aber nur, weil arcor sehr viel Platz braucht:
    Code:
    ds-0.2> (cd fritz.box_fon.06.03.91.image.mod/original/filesystem/; du -h -s --apparent-size usr/www/*)
    435     usr/www/1und1
    1,3M    usr/www/all
    435     usr/www/aol
    916K    usr/www/arcor
    435     usr/www/avm
    88K     usr/www/cgi-bin
    435     usr/www/freenet
    9       usr/www/html
    
    Andreas
     
  18. Darkyputz

    Darkyputz Aktives Mitglied

    Registriert seit:
    27 Juli 2005
    Beiträge:
    2,320
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Newton, New Jersey
    meinst du es wäre zu viel erbeten, wenn im mod da drauf eingegangen werden könnte??
    frei nach dem motto wenn fon dann lösche...wenn xxx dann lösche was anderes?
     
Status des Themas:
Es sind keine weiteren Antworten möglich.