Startseite --> Projekte --> SelfDown --> Change Log
Change Log
Version 2.1a (30.11.2005)
- Fehler in linearer Mirror-Auswahl:
In der Mirror-Auswahl wurden "leere" Mirror angezeigt, wenn die zufällige Auswahl deaktiviert wurde und die Anzahl der maximal anzuzeigenden Mirror größer war als die Zahl der Mirror, die in der Datendatei eingetragen und aktiv waren.
Neu in Version 2.1 (vom 7.5.2005)
- Sperre wieder verfügbar:
Die in Version 1.4 eingeführte und in Version 2.0 wieder entfernte Möglichkeit, Master Locks anzulegen, um beispielsweise SelfDown zu deaktivieren, ist jetzt in einer abgespeckten, aber sinnvolleren Form wieder verfügbar.
Man kann jetzt über das Admin-Tool eine Lock-Datei erstellen (das Anlegen ist nicht atomar, muss es aber eigentlich auch nicht sein). Wenn diese Datei existiert, zeigt mirrors.pl keine Mirror an und download.pl leitet nicht weiter. Das Admin-Tool kann aber weiter benutzt werden, um auf die Datendatei zuzugreifen. Die Statistik lässt sich ebenfalls weiter anzeigen.
- "|" im Namen wird ersetzt:
Wenn der Namen eines Mirror-Anbieters aus irgendeinem Grund ein "|" enthält, wird dieses jetzt beim Speichern durch | ersetzt um Probleme zu vermeiden.
- "no_"-
{IF}-Blöcke entfernt:
Die {IF}-Blöcke die mit "no_" beginnen wurden entfernt. Stattdessen wird von den verneinten {IF}-Blöcken Gebrauch gemacht, die die neue Version der Template-Klasse mit sich bringt.
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf die aktuelle Version 1.5 aktualisiert.
Neu in Version 2.0 (vom 21.4.2005)
flock() statt Locking and Filehandle class:
Da die Locking and Filehandle class von André Malo laut Christian Kruse einige Probleme hat, wurde sie entfernt und durch flock() ersetzt.
flock() ist auch sicherer als die Locking and Filehandle class, da es auch von anderen Anwendungen beachtet werden kann. Schade nur, dass es nicht auf allen Systemen verfügbar ist...
Dadurch entfällt leider die Möglichkeit, Dateien permanent zu sperren.
- Daten eines Mirror bearbeiten:
Es ist nun endlich möglich, die Daten eines Mirror über die Administrationsoberfläche zu bearbeiten.
- Mirror deaktivieren:
Es ist nun möglich, einen Mirror deaktivieren. Er erscheint dann nicht mehr in der Auswahlliste und download.pl leitet auch nicht mehr auf ihn weiter. Er ist also praktisch gelöscht, lässt sich aber von einem Administrator wiederherstellen.
- Gewichtung der Mirror:
SelfDown lässt sich jetzt in einen Modus schalten, in dem es die Mirror nicht komplett zufällig auswählt, sondern Mirror mit einem niedrigen Download-Limit seltener auswählt.
Danke an Daniela Koller und Sven Rautenberg für das Konzept!
- Zusätzliche detaillierte Log-Datei:
Zusätzlich zu der einfachen Log-Datei, die nur die Klicks zählt, kann nun auch eine Log-Datei im "Combined"-Format des Apache HTTP Server angelegt werden.
- Traffic-Limit funktionierte nicht richtig:
Aufgrund eines vergessenen $x-- hat nicht bei allen Mirror das Traffic-Limit richtig funktioniert. Wenn bei einem Mirror das Limit überschritten wurde, wurde nach dem Entfernen dieses Mirror aus der Datenstruktur der nächste übergangen.
- Keine Mirror vorhanden:
SelfDown reagiert nun darauf, wenn keine Mirror vorhanden sind oder die Datendatei nicht existiert.
- API besser strukturiert:
Die API von SelfDown wurde wesentlich besser strukturiert, vor allem was den Zugriff auf die Datei mit den Mirror betrifft.
- Konfigurationsdatei wird schneller gelesen:
Die Konfigurationsdatei wird jetzt nicht mehr mit XML::DOM, sondern mit XML::LibXML eingelesen. XML::LibXML ist wesentlich schneller als XML::DOM.
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf die aktuelle Version 1.4a aktualisiert.
Neu in Version 1.4 (vom 29.5.2004)
- Limit-Datei aufräumen:
Es wurden zwei Dinge eingefügt, die dafür sorgen, dass in der Limit-Datei keine veralteten Daten mehr stehen:
Einmal versucht das Admin-Tool, automatisch einen Eintrag aus der Limit-Datei zu löschen, wenn eine Adresse gelöscht wird.
Dann werden beim Schreiben der Daten in die Limit-Datei veraltete Daten gleich ausgelassen. Veraltete Daten werden außerdem gar nicht erst eingelesen, das Auslassen beim Schreiben dient nur der Sicherheit.
- Master Locks:
Die Möglichkeit, die Statistik anzuhalten, wurde durch die Möglichkeit ersetzt, Dateien mit Master Locks zu belegen.
Bei einem Master Lock handelt es sich um eine besondere Sperre, die nicht ohne weiteres umgangen werden kann.
Wenn SelfDown nun irgendwo einen Master Lock vorfindet, wird eine leicht verständliche Fehlermeldung ausgegeben.
Master Locks sind ideal, wenn Dateien von Hand verändert werden müssen.
- Maximaltraffic erreicht wenn nichts in Limit-Datei steht:
Ich habe in SelfDown 1.3 einen Flüchtigkeitsfehler eingebaut, der dafür gesorgt hat, dass der Maximaltraffic eines limitierten Mirrors, für den noch nichts in der Limit-Datei stand, als erreicht galt.
Seltsam an dieser Sache ist allerdings, dass das Problem bei SELFHTML nicht aufgetreten ist...
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf Version 1.3 aktualisiert. Das bringt unter anderem die Möglichkeit, Inhalte aus Dateien in Templates einzubinden.
Neu in Version 1.3 (vom 5.4.2004)
- Traffic-Beschränkungen:
Es ist nun möglich, für einen Mirror eine monatliche Traffic-Beschränkung anzugeben (zur Zeit nur in Gigabyte). Wenn dieser Maximaltraffic für den aktuellen Monat überschritten wurde, erscheint der Mirror nicht mehr in der Auswahlliste und download.pl verweigert die Weiterleitung auf diese Adresse.
- Dateien freigeben:
Das Admin-Tool stellt nun die Möglichkeit bereit, sämtliche Sperren, die über die Daten-, die Log- und die Limit-Datei verhängt wurden, mit Gewalt zu lösen (es wird die Methode release() der Locking and Filehandle class für die entsprechende Datei aufgerufen).
Das ist zum Beispiel sinnvoll, wenn SelfDown neu installiert oder die Statistik angehalten wurde, oder auch ständig die Fehlermeldung "Locking of Dateiname failed" auftritt.
Dadurch wird übrigens auch das Lock::Unlink-Problem behoben.
- Statistik anhalten:
Man kann nun die Statistik anhalten, sie wird dadurch nicht mehr aktualisiert. Es wird dabei ein Master Lock für die Log-Datei gesetzt.
Allerdings muss dieses Feature wegen der Traffic-Beschränkung noch erweitert werden, es soll nämlich die Limit-Datei ebenfalls gesperrt werden können.
Neu in Version 1.2 (vom 3.10.2003)
get_mirrors():
Die gespeicherten Download-Adressen werden nun mit der neuen Funktion get_mirrors() eingelesen. Diese Funktion liest entweder eine Datei selbstständig oder von einem bestehenden Datei-Handle zeilenweise in ein Array ein. Anschließend überprüft sie die einzelnen Zeilen und entfernt ungültige Daten.
- Log-Daten werden gefiltert:
Wenn die Log-Datei ausgelesen wird, werden nun unbrauchbare Zeilen rausgefiltert.
- Administrations-Tool hat eigenes Modul:
Die Routinen für das Administrations-Tool wurden in ein eigenes Modul ausgelagert (Admin.pm). Das sorgt für Übersicht.
- Routinen aus dem CGI-Modul:
Auch ich habe endlich eingesehen, dass für bestimmte Dinge die Routinen aus dem CGI-Modul besser geeignet sind, als selbst geschriebene Dinge. So wird nun der HTTP-Header mit header(), die Weiterleitung mit redirect() und der Dateiname eines Script mit url() ermittelt.
- E-Mail-Adressen nun optional:
Es müssen nun keine E-Mail-Adressen mehr angegeben werden (Spam).
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf Version 1.2a aktualisiert. Das bringt unter anderem die Möglichkeit, die bedingten Abschnitte um ELSE-Abschnitte zu ergänzen.
Neu in Version 1.1 (vom 2.8.2003)
- Sperren von Dateien wird geprüft:
Wenn nun eine Datei gesperrt wird, wird geprüft, ob der Vorgang erfolgreich war. Wenn es nicht geklappt hat, wird das Script sofort mit einer Fehlermeldung beendet.
- Datendatei wird selbstständig angelegt:
Sollte beim Hinzufügen einer Download-Adresse durch admin.pl die Datendatei noch nicht existieren, wird diese nun vom Script angelegt. Davor musste man sie von Hand anlegen, weil ich mal wieder nicht aufgepasst habe.
- CheckRFC wird verwendet:
admin.pl verwendet jetzt wirklich das Perl-Modul CheckRFC von André Malo, um URLs und E-Mail-Adressen zu prüfen.
Zuvor wurde es nicht eingebunden (war aber als Datei vorhanden), da es unter Perl 5.8 einen "stillen" Fehler auslöste.
Danke nochmal an André für die Hilfe.
- Neue Mirror-Prüfung:
Wenn download.pl nun auf eine Adresse weiterleitet, prüft es zuvor, ob die Adresse in der Datendatei vorhanden ist.
Vorher hat download.pl einfach nur mit einem regulären Ausdruck geprüft, ob die URL bestimmte Konventionen erfüllt.
Auf diese Weise wird auch ein höchst seltsames Problem umgangen, das offensichtlich nur bei bestimmten Browsern auftritt: Es werden ungültige Download-Adressen in die Log-Datei geschrieben.
- Alle Mirror und Anordnung:
Es ist nun möglich, über die Konfigurationsdatei einzustellen, ob alle Mirror angezeigt und ob die Mirror nicht zufällig angeordnet werden sollen.
- Anordung der Statistik wählbar:
Es ist nun möglich, über die Konfigurationsdatei einzustellen, ob die Statistik absteigend (Standard), aufsteigend oder gar nicht sortiert werden soll.
- Weniger Templates:
Die Zahl der Templates wurde mit Hilfe der (bisher ungenutzten) IF-Syntax von 14 auf 12 reduziert. Die damit wegfallenden Templates sind admin_delete_no_mirror.htm und stat_no_log.htm.
Neu in Version 1.0 (vom 22.6.2003)
- Erste Version:
Dies ist die erste Version von SelfDown.
Startseite --> Projekte --> SelfDown --> Change Log
© 2003-2006 Patrick Canterino