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

Reply via email to