Hello, Arno had already suggested that and I had already done that before your message. My Thttpcli has no new messages defined so I thought I do not need to override the methods.
Do you have IIS there? Could you try the Httpcli with a long Folder listing? When long listings are used, it uses Chunked encoding. Best Regards, SZ ----- Original Message ----- From: "Francois PIETTE" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Monday, June 05, 2006 5:09 PM Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem > Messages IDs are recreated when calling ThreadAttach. > But if you created your derived component, maybe you did not it correctly. > All messages ID are now variables, are allocated by AllocateMsgHandlers > and > freed by FreeMsgHandlers. You _must_ override AllocateMsgHandlers, > FreeMsgHandlers and MsgHandlersCount in your derived component. See how it > is done in OverbyteIcsHttpProt and in other components. > > Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html > -- > [EMAIL PROTECTED] > http://www.overbyte.be > > > > ----- Original Message ----- > From: "Fastream Technologies" <[EMAIL PROTECTED]> > To: "ICS support mailing" <twsocket@elists.org> > Sent: Monday, June 05, 2006 2:34 PM > Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem > > >> Hello, >> >> I have a strange problem with THttpCli GET in chunked transfer encoding. >> I >> am testing against a long IIS folder listing and it repeats the first >> packet >> always and cuts the rest!!! >> >> If this is not a pure Httpprot problem, then could the problem be the >> thread >> attach/detach again? The client is created in main thread context and the >> message IDs are maybe not appropriate for the new thread?? >> >> Regards, >> >> SZ >> >> ----- Original Message ----- >> From: "Francois PIETTE" <[EMAIL PROTECTED]> >> To: "ICS support mailing" <twsocket@elists.org> >> Sent: Monday, June 05, 2006 2:35 PM >> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> >> >> : Still one problem. Arno fixed it (He sent a private message to me). >> : Move the line >> : FWndHandler := nil; // THIS ONE ADDED >> : from ThreadDetach to DeallocateHWnd so that the later looks like: >> : procedure TIcsWndControl.DeallocateHWnd; >> : begin >> : if FHandle = 0 then >> : Exit; // Already done >> : >> : GWndHandlerPool.Lock; >> : try >> : FreeMsgHandlers; >> : if Assigned(FWndHandler) and (FWndHandler.FMsgCnt <= 0) then >> : GWndHandlerPool.FreeWndHandler(FWndHandler); >> : FHandle := 0; >> : FWndHandler := nil; // THIS ONE ADDED >> : finally >> : GWndHandlerPool.UnLock; >> : end; >> : end; >> : >> : Thank to Arno. >> : >> : -- >> : Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html >> : -- >> : [EMAIL PROTECTED] >> : http://www.overbyte.be >> : >> : >> : >> : ----- Original Message ----- >> : From: "Francois PIETTE" <[EMAIL PROTECTED]> >> : To: "ICS support mailing" <twsocket@elists.org> >> : Sent: Monday, June 05, 2006 1:11 PM >> : Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> : >> : >> : > Problem fixed ! >> : > >> : > In OverbyteIcsHttpProt.pas, add: >> : > >> : > {$IFDEF COMPILER2_UP} >> : > procedure THttpCli.ThreadAttach; >> : > begin >> : > inherited ThreadAttach; >> : > FCtrlSocket.ThreadAttach; >> : > end; >> : > >> : > procedure THttpCli.ThreadDetach; >> : > begin >> : > inherited ThreadDetach; >> : > FCtrlSocket.ThreadDetach; >> : > end; >> : > {$ENDIF} >> : > >> : > Don't forget to add the declarations in the public section. >> : > >> : > In OverbyteIcsWndControl, add a line in ThreadDetach so that it looks >> : > like: >> : > procedure TIcsWndControl.ThreadDetach; >> : > begin >> : > if GetCurrentThreadID <> FThreadID then >> : > raise EIcsException.Create('Cannot detach from another >> thread'); >> : > Self.DeallocateHWnd; >> : > FWndHandler := nil; // THIS ONE ADDED >> : > end; >> : > >> : > >> : > In OverbyteIcsWSocket.pas, delete the declaration of >> : > TCustomWSocket.FThreadID. >> : > >> : > That's it. >> : > Should work. At least it work in my small test prog: >> : > Create a form, drop a TButton, a TMemo and a THttpCli. Add the >> following >> : > code: >> : > >> : > unit OverbyteIcsSimpleThread1; >> : > >> : > interface >> : > >> : > uses >> : > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, >> : > Forms, >> : > Dialogs, StdCtrls, OverbyteIcsWndControl, OverbyteIcsWSocket, >> : > OverbyteIcsHttpProt; >> : > >> : > type >> : > TWorkerThread = class(TThread) >> : > public >> : > FHttpCli : THttpCli; >> : > procedure HttpCliRequestDone(Sender : TObject; RqType: >> THttpRequest; >> : > ErrCode : Word); >> : > procedure Execute; override; >> : > procedure ShowDoc; >> : > end; >> : > >> : > TForm1 = class(TForm) >> : > HttpCli1: THttpCli; >> : > DoButton: TButton; >> : > Memo1: TMemo; >> : > procedure DoButtonClick(Sender: TObject); >> : > private >> : > FWorkerThread : TWorkerThread; >> : > end; >> : > >> : > var >> : > Form1: TForm1; >> : > >> : > implementation >> : > >> : > {$R *.dfm} >> : > >> : > procedure TWorkerThread.Execute; >> : > begin >> : > FHttpCli.ThreadAttach; >> : > FHttpCli.MultiThreaded := TRUE; >> : > FHttpCli.URL := 'http://localhost'; >> : > FHttpCli.RcvdStream := TMemoryStream.Create; >> : > FHttpCli.OnRequestDone := HttpCliRequestDone; >> : > FHttpCli.GetASync; >> : > FHttpCli.MessageLoop; >> : > FHttpCli.ThreadDetach; >> : > FHttpCli.MultiThreaded := FALSE; >> : > end; >> : > >> : > procedure TWorkerThread.HttpCliRequestDone(Sender : TObject; RqType: >> : > THttpRequest; ErrCode : Word); >> : > begin >> : > FHttpCli.RcvdStream.Seek(0, 0); >> : > Synchronize(ShowDoc); >> : > FHttpCli.RcvdStream.Free; >> : > FHttpCli.RcvdStream := nil; >> : > PostMessage(FHttpCli.Handle, WM_QUIT, 0, 0); >> : > end; >> : > >> : > procedure TWorkerThread.ShowDoc; >> : > begin >> : > Form1.Memo1.Lines.LoadFromStream(FHttpCli.RcvdStream); >> : > end; >> : > >> : > procedure TForm1.DoButtonClick(Sender: TObject); >> : > begin >> : > HttpCli1.ThreadDetach; >> : > FWorkerThread := TWorkerThread.Create(TRUE); >> : > FWorkerThread.FreeOnTerminate := TRUE; >> : > FWorkerThread.FHttpCli := HttpCli1; >> : > FWorkerThread.Resume; >> : > end; >> : > >> : > end. >> : > -- >> : > [EMAIL PROTECTED] >> : > http://www.overbyte.be >> : > >> : > >> : > >> : > ----- Original Message ----- >> : > From: "Francois PIETTE" <[EMAIL PROTECTED]> >> : > To: "ICS support mailing" <twsocket@elists.org> >> : > Sent: Monday, June 05, 2006 12:25 PM >> : > Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> : > >> : > >> : >> Yes, I found the problem. More complex to solve than what I thought >> : >> first. >> : >> >> : >> -- >> : >> [EMAIL PROTECTED] >> : >> http://www.overbyte.be >> : >> >> : >> ----- Original Message ----- >> : >> From: "Fastream Technologies" <[EMAIL PROTECTED]> >> : >> To: "ICS support mailing" <twsocket@elists.org> >> : >> Sent: Monday, June 05, 2006 11:37 AM >> : >> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> : >> >> : >> >> : >>> Francois, >> : >>> >> : >>> Have you been able to reproduce the problem there? >> : >>> >> : >>> Regards, >> : >>> >> : >>> SZ >> : >>> >> : >>> ----- Original Message ----- >> : >>> From: "Fastream Technologies" <[EMAIL PROTECTED]> >> : >>> To: "ICS support mailing" <twsocket@elists.org> >> : >>> Sent: Sunday, June 04, 2006 6:24 PM >> : >>> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> : >>> >> : >>> >> : >>>> AFAIU, instead of FWindowHandle being defined as window, we now >> have >> : >>>> the >> : >>>> entire hierarchy being derived from a Twndcontrol which pools and >> : >>>> shares >> : >>>> the >> : >>>> windows. But I am clueless in terms of this bug as well. I sent a >> : >>>> private >> : >>>> email to Francois asking for consultancy about this. >> : >>>> >> : >>>> Thanks anyway, >> : >>>> >> : >>>> SZ >> : >>>> >> : >>>> ----- Original Message ----- >> : >>>> From: "Arno Garrels" <[EMAIL PROTECTED]> >> : >>>> To: "ICS support mailing" <twsocket@elists.org> >> : >>>> Sent: Sunday, June 04, 2006 6:06 PM >> : >>>> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> : >>>> >> : >>>> >> : >>>>> Fastream Technologies wrote: >> : >>>>>> Nothing changes. This is my second answer to this question as >> : >>>>>> sometimes my email server gets swamped :(... >> : >>>>>> >> : >>>>>> I still get the exception even though the package compiles with >> no >> : >>>>>> errors. >> : >>>>> >> : >>>>> Looks like a bit more complicated. Francois probably knows better >> how >> : >>>>> to fix it, I still haven't fully got the logic of the new >> version, >> : >>>>> sorry. >> : >>>>> >> : >>>>>> >> : >>>>>> Regards, >> : >>>>>> >> : >>>>>> SZ >> : >>>>>> >> : >>>>>> ----- Original Message ----- >> : >>>>>> From: "Arno Garrels" <[EMAIL PROTECTED]> >> : >>>>>> To: "ICS support mailing" <twsocket@elists.org> >> : >>>>>> Sent: Sunday, June 04, 2006 5:31 PM >> : >>>>>> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem >> : >>>>>> >> : >>>>>> >> : >>>>>>> Fastream Technologies wrote: >> : >>>>>>>> It is used here: >> : >>>>>>> >> : >>>>>>> Yes I know, but what happens? As Francois already supposed it >> : >>>>>>> is in fact redefined and never assigned in TCustomWSocket. >> : >>>>>>> >> : >>>>>>> >> : >>>>>>> --- >> : >>>>>>> Arno Garrels [TeamICS] >> : >>>>>>> http://www.overbyte.be/eng/overbyte/teamics.html >> : >>>>>>> >> : >>>>>>> >> : >>>>>>> >> : >>>>>>> -- >> : >>>>>>> To unsubscribe or change your settings for TWSocket mailing >> list >> : >>>>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >> : >>>>>>> Visit our website at http://www.overbyte.be >> : >>>>> -- >> : >>>>> To unsubscribe or change your settings for TWSocket mailing list >> : >>>>> please goto http://www.elists.org/mailman/listinfo/twsocket >> : >>>>> Visit our website at http://www.overbyte.be >> : >>>> >> : >>>> -- >> : >>>> To unsubscribe or change your settings for TWSocket mailing list >> : >>>> please goto http://www.elists.org/mailman/listinfo/twsocket >> : >>>> Visit our website at http://www.overbyte.be >> : >>> >> : >>> -- >> : >>> To unsubscribe or change your settings for TWSocket mailing list >> : >>> please goto http://www.elists.org/mailman/listinfo/twsocket >> : >>> Visit our website at http://www.overbyte.be >> : >> >> : >> -- >> : >> To unsubscribe or change your settings for TWSocket mailing list >> : >> please goto http://www.elists.org/mailman/listinfo/twsocket >> : >> Visit our website at http://www.overbyte.be >> : > >> : > -- >> : > To unsubscribe or change your settings for TWSocket mailing list >> : > please goto http://www.elists.org/mailman/listinfo/twsocket >> : > Visit our website at http://www.overbyte.be >> : >> : -- >> : To unsubscribe or change your settings for TWSocket mailing list >> : please goto http://www.elists.org/mailman/listinfo/twsocket >> : Visit our website at http://www.overbyte.be >> >> -- >> To unsubscribe or change your settings for TWSocket mailing list >> please goto http://www.elists.org/mailman/listinfo/twsocket >> Visit our website at http://www.overbyte.be > > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://www.elists.org/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be