Moin!
Ich habe hier leider ein Problem mit der Indy-HTTP-Komponente (v9.?irgendwas), wenn ich BasicAuthentication verwende. Dann liefert mir MemCheck einen feinen Fehlerbericht beim Beenden des Programms...

Benutzt man nur eine statische Kompo auf dem Formular, ist das nicht soo schlimm, dann gibt es nur ein Leck, wenn man allerdings, z.B. bei Nutzung in Threads, die Kompo mehrfach dynamisch erzeugt und wieder frei gibt, dann sammelt sich da was an.
Tante Google sagt, das sei bekannt, habe auch ein paar Threads in unterschiedlichen Verwesungszuständen gefunden

, aber keine praktikable Lösung.

Viel besser, in einem Thread wurde angemerkt, dass sei der Indy-Crew bekannt, aber man fände keine gute Stelle, wie man das Leck wieder stopfen sollte, also hat man´s erstmal so gelassen...
fragt sich noch einer, warum ich ungerne Indy benutze? Und was Abwärtskompatibilität angeht: ich schreibe doch nicht bei jedem major release meinen kompletten Code um... eigentlich kann man da nur die Finger von lassen...
Nüja, manchmal kann man sich das nicht wirklich aussuchen, also ich habe jetzt diese blöde http-Kompo hier und muss das zum Laufen kriegen (nein, ich kann keine andere Indy-Version nehmen - nebenbei, wäre mir nichtmal sicher, ob das in Indy 10.x tatsächlich gefixed ist).

Testprojekt angelegt und der Sache nachgegangen. Dazu muss man sich die IdHTTP.pas (um den Versionsfehler beim Compilieren zu vermeiden) und die IdHTTPHeaderInfo.pas in das Testprojektverzeichnis kopieren, dann wird die lokale Version der Units im Build verwendet. Wobei der eigentliche fix nur in der IdHTTPHeaderInfo.pas drin ist, wie´s aussieht, kann man das hier stopfen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| TIdRequestHeaderInfo = class(TIdEntityHeaderInfo) protected FAccept: string; public Authentication: TIdAuthentication; destructor Destroy; override; procedure Clear; override; implementation
destructor TIdRequestHeaderInfo.Destroy; begin if FBasicByDefault and Assigned(Authentication) then FreeAndNil(Authentication); inherited; end; |
Tja, ist mir immer unangenehm an Kompo-Quelltexten zu schrauben, die dann in kommerziellen Projekten verwendet werden, wenn man sich nicht über die Konsequenzen in letzter Sache sicher sein kann (dazu ist das Indy-Projekt einfach zu unübersichtlich; andererseits ist das zwar auch "nur" das Netz, das in meiner Verantwortung liegt, aber das macht es nicht besser

).
Hat mal grad einer Lust und Zeit, da drüber zu sehen? Das Problem zu fixen ist ja nicht so ganz uninteressant aus öffentlicher Sicht.
Also:
Request
For
Comment!
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.