[gnucash-de] Neue Release-Welle

Martin Preuss aquamaniac at gmx.de
Son Jan 30 17:02:49 EST 2005


Moin,

diese Wochenende habe ich mal wieder so richtig in C-Code gebadet ;-)

Das Ergebnis sind die aktuellen Sonntag-Abend-Releases von:
- Gwenhywfar
- AqBanking
- AqHBCI
- AqHBCI-QT-Tools
- AqHBCI-DDVCard
- AqHBCI-RSACard
- LibChipcard2

Die groessten Aenderungen gab es dabei in AqHBCI und Konsorten. Hier wurde 
historisch gewachsener Code (AqHBCI war zu Beginn stand-alone und 
ausgerichtet gleichzeitig Client und Server sein zu koennen) geglaettet.
Auf diesem Gebiet gibt es noch manches zu tun, aber da AqHBCI laeuft ist das 
nicht dringend. Und da keine auesseren Programme/Bibliotheken von AqHBCI 
abhaengen, kann ich da auch spaeter noch dran basteln.

Veraendert habe ich nun das Medium-Interface: Grundsaetzlich muss jetzt eine 
DDV- oder RSA-Karte im normalen Betrieb nix mehr ueber Benutzer und Banken 
wissen. Im Normal-Betrieb geht es ja nur darum, die Schluessel der Karte zu 
verwenden. Bei manchen vorpersonalisierten RSA-Karten geht sogar auch gar 
nichts anderes, die wissen naemlich tatsaechlich nichts ueber Benutzer ;-)

Darauf ist das aktuelle Interface nun vorbereitet. Damit kann man diese Karten 
zwar immer noch nicht nutzen, aber jetzt wird es zumindest theoretisch 
moeglich. Der Rest muss nun noch implementiert werden.

Verbessert wurde dabei allgemein das DDV-Card-Plugin: Es ist jetzt ca 16 % 
schneller ;-) Weil die Karte nix mehr ueber Benutzer wissen muss, liest sie 
auch nicht mehr jedesmal die User-Daten aus. Dies geschieht jetzt nur noch 
einmal, dabei werden auch die Schluessel-Informationen (Nummer, Version) 
gelesen. Beides wird dann von AqBanking/AqHBCI gecached.

Ausserdem habe ich wieder am SSL-Code gebastelt, speziell: An der Nachfrage 
bei Zertifikaten. Zum einen werden nur noch neue Zertifikate wirklich 
gespeichert, zum anderen reagiert AqHBCI nun besser auf temporaer-akzeptierte 
Zertifikate. Vorher wurde da *jedes* Mal nachgefragt, und das waren pro 
Verbindung dann mindestens 3 Fragen ;-)

Wenn man jetzt anklickt "nur diese Sitzung" wird die Antwort auch solange 
gespeichert, bis die Auftraege gesendet sind, also im Prinzip solange der 
HBCI-Dialog besteht. Danach werden die Antworten geloescht, so dass beim 
naechsten Dialog wieder nachgefragt wird (eben so wie es geplant war).

Wenn man ein Zertifikat permanent akzeptiert wird es wieder wie ueblich 
gespeichert und jetzt tatsaechlich erst wieder nachgefragt, wenn sich das 
Zertifikat geaendert hat bzw. OpenSSL via Gwen einen anderen Fehlercode 
sendet als vorher.

Ausserdem habe ich einen lange Zeit misterioesen Fehler behoben: Mitunter 
flackerte der Fortschrittsbalken kurz zwischen 0 und 100 Prozent...
Als ich angefangen habe ein Konsolen-Frontend zu erstellen (fuer's naechste 
AqMoney, dann AqMoney3), habe ich den Fehler gefunden: Ein WaitCallback wurde 
ein wenig illegal verwendet ;-)

Eine weitere Vorbereitung in Richtung AqMoney3 ist das Einrichten von 
geteilten Daten in AqBanking. So werden beispielsweise QBankManager und 
AqMoney3 die Transaktionsdaten gemeinsam verwenden (wie frueher KOpenHBCI und 
AqMoney1).

AqBanking hat zusaetzlich noch Verbesserungen in den Makefiles: Nun wird 
alles, was man mit "make" erstellt, tatsaechlich gegen die aktuell 
entstehende Bibliothek gelinkt.

Ein anderes Problem konnte auch behoben werden: Ebenfalls durch die Arbeit am 
Konsolen-Backend ist mir aufgefallen, woher die von einigen Benutzern 
gemeldeten Doppel-Eintraege stammen. Das passierte immer dann, wenn man mit 
GnuCash Umsaetze abgerufen hatte und anschliessend mit QBankManager nochmal.

Da GnuCash offensichtlich wegen des Fehlers in AqBanking seine Auftraege nicht 
aus "finished" geloescht hat (was uebrigend auch voellig in Ordnung so ist), 
lagen die fuer das naechste GatherResponses() von QBankManager noch da. Damit 
konnte QBankManager nicht mehr unterscheiden, ob die Transaktionen nun schon 
doppelt von der Bank gekommen sind (was durchaus normal sein kann, einer der 
Schwachpunkte von HBCI), oder wo sie sonst herkommen.

Das Problem ist nun doppelt behoben ;-)

Und schlussendlich: Der bei Christian sehr sporadisch und nicht 
reproduzierbare Fehler, dass eine Nachricht nicht entschluesselt werden 
konnte, konnte dank Christians' Logs extrem wahrscheinlich gefixed werden.


Fazit: Ich empfehle dringen ein Update ;-)


Gruss
Martin


-- 
"Things are only impossible until they're not"

LibChipcard - http://www.libchipcard.de/
AqBanking - http://www.aquamaniac.de/aqbanking/
OpenHBCI - http://www.openhbci.de/