Die Begrenzung auf 999 Rufnummern erscheint vollkommen willkürlich.
Die steht nun mal so in der
phonebook.lua
- wenn das jemandem zu wenig ist, kann/muß er halt die Firmware ändern oder das eben als Fehlermeldung bei AVM einreichen.
Vermutlich stammen diese Zeilen noch aus der Ära deutlich eingeschränkterer Telefonbücher:
Code:
136 if (nil == param_max) then
137 param_max = tonumber (box.post.max);
138 end
139 if (nil == param_max or param_max < 1 or param_max > 999) then
140 param_max = 999;
141 end
oder sie wurden doch absichtlich (dann sicherlich am ehesten aus Performance-Gründen, denn das muß alles auch noch in einer Glue-Library von "FRITZ!OS" nach Lua "übersetzt" werden, bevor es in der phonebook.lua nur noch in XML-Strukturen gepackt wird) hinzugefügt.
Da jetzt den Teil
or param_max > 999
aus den Bedingungen zu nehmen, ist aber eben auch nur eine Fingerübung - die "Standardbegrenzung" auf 999 Einträge (die sicherlich aus Performance-Gründen absoluten Sinn macht, denn wer hat schon Telefonbücher mit > 1000 Einträgen auf einer FRITZ!Box - das dürfte eben nur bei denen für die Anrufsperren der Fall sein) bliebe ja trotzdem bestehen. Eine Art "Paging" beim Auslesen der Daten scheint da schon die Glue-Library nicht zu kennen ... jedenfalls ist kein Wert für den ersten auszulesenden Eintrag zu erkennen, den man für die nächsten 1000 Datensätze dann entsprechend auswählen könnte. Wenn's ganz schlecht läuft, setzt nicht nur der Lua-Code den Wert entsprechend, sondern dann wird er auch noch einmal in der Glue-Library irgendwie begrenzt - selbst wenn das doppelte Vorsorge wäre - oder die Ausführung stirbt gleich, weil die Library mit größeren Werten nicht umgehen kann (was bei "dezimalen Angaben" wie "999" sicherlich unerwartet wäre) und das eben NICHT selbst richtig testet, so daß entsprechende Vorkehrungen im Lua-Code erforderlich waren.
Aber wer wollte das schon testen, wenn er dafür erst einmal ein Telefonbuch mit mehr als 1000 Einträgen anlegen muß - sicherlich auch das schon mit Auswirkungen auf die Performance des Gesamtsystems (und sei es nur, weil die Daten irgendwie im RAM vorgehalten werden müssen und der damit nicht mehr für anderes zur Verfügung steht).