Ich habe ja eine oscam.server gehabt, die auch immer lief.
Nach dem Update auf 11384 mit modern 1521 lief die hdplus01 aber plötzlich auf Error, weil RSA- und Boykey auf "0" zurückgesetzt wurden, obwohl die richtigen RSA- und Boxkeys in der oscam.server stehen.
Ändert man sie dann manuell, bringt das auch nichts, weil die beim Reader-Start wieder auf 0 gesetzt werden.
Ja, Du hast insofern Recht, daß die oscam.server zwar nicht mit diesem Fehler gespeichert wird, aber da bei jedem Reader-Init RSA- und Boxkey gekillt bzw. durch die 0-Werte aus cardlist.h ersetzt werden, ist es dann auch egal, was in oscam.server steht.
Im Speicher hat man
immer das, was in cardlist.h steht, unabhängig davon, ob autoconf oder nicht.
Für den Anfang:
Also ich kann weiß Gott nicht gut C/C++ programmieren, aber die "if ... else if ... else if ... else if ... "-Konstruktion in cardlist.h ist sicher kein guter Code.
Stark fehleranfällig, wie man an den offensichtlich per cut'n'paste aus dem hdplus01- in den unity_01-Bereich gewanderten Zeilen erkennt.
Das muß doch mit "foreach card in cards" bzw. den weniger hübschen C/C++-Äquivalenten gehen ...
Ich weiß nicht, wie oscam die Reader findet/initialisiert, aber ich würde bei neuem Code in etwa so vorgehen:
... Init/Scan for Reader-Hardware ...
# Danach hätte man ein Array:
# readers = ("/dev/sci0","/dev/sci1", "/dev/blah", ...)
for reader in readers {
next if configured(reader);
... Reader-Autokonfiguration ...
}
sub configured {
... existiert für $1 (Der Reader-Devicename) schon ein Eintrag in oscam.server? ...
Ja: return true;
Nein: return false;
}