> Is this normal behavior or ?

I can't tell you. And this would need too much analysis to give a good
answer. Unfortunately I have not time (I'm busy with ICS-SSL). Sorry.

--
[EMAIL PROTECTED]
http://www.overbyte.be


----- Original Message ----- 
From: "Guillaume MAISON" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Friday, May 20, 2005 5:39 PM
Subject: [twsocket] [HELP] FTP Server possible bug ?


> Le 20 May 2005 à 16:31, Guillaume MAISON a écrit:
>
> > Unless there's something obvious, i don't know why the ftpserver opens
data for connection
> > though i've set DelayedSend:=True in the OnGetProcessing event ?
> After more and more debugging, i've found something :
> when saying delayedSend to true, the data is, effectively, not sent.
> But, the ftpserver keeps going on telling back to the client '150 opening
data, etc...'.
>
> the thing is that doing so, it fires the function TCustomWSocket.Send(Data
: Pointer; Len : Integer) : integer;
> Which, in turns, post a message :
>     if bAllSent then begin
>         { We post a message to fire the FD_WRITE message wich in turn
will }
>         { fire the OnDataSent event. We cannot fire the event
lf      }
>         { because the event handler will eventually call send
       }
>         { Sending the message prevent recursive call and stack
erflow.   }
>         { The PostMessage function posts (places) a message in a
indow's  }
>         { message queue and then returns without waiting for
    }
>         { corresponding window to process the message. The message will
be }
>         { seen and routed by Delphi a litle later, when we will be out
f  }
>         { the send
          }
>         PostMessage(Handle,
>                     WM_ASYNCSELECT,
>                     FHSocket,
>                     MakeLong(FD_WRITE, 0));
>     end;
>
> This message is then received by the procedure
TCustomWSocket.Do_FD_WRITE(var msg: TMessage);
> the thing is that, i have at the same time my thread which is kindly
retrieving data, but has nothing to send yet...
> this Do_FD_WRITE procedure triggers the procedure
TFtpServer.ClientRetrDataSent(Sender : TObject; AError : Word);
> var
>     Client : TFtpCtrlSocket;
>     Data   : TWSocket;
> begin
>     Data   := TWSocket(Sender);
>     Client := TFtpCtrlSocket(Data.Owner);
>
>     if Client.AbortingTransfer then
>         Exit;
>
>     try
>         { Trigger the user event for the received data }
> ==>        TriggerRetrDataSent(Client, Data, AError);
>
> here is the problem... When this procedure (TriggerRetrDataSent) is
executed, it sends back to the client the fact that
> the file has been sent. But the Client.Datastream is empty, so my client
application has retrieved a file, but empty.
> But as i think that i have received a file, i go on my process
(disconnecting ==> which means on server side
> that the client is destroyed and i have exceptions within my thread) and
analyzing the received (empty) content.
>
> Is this normal behavior or ?
>
> Guillaume MAISON
> -----
> Guillaume MAISON - [EMAIL PROTECTED]
> 83, Cours Victor Hugo
> 47000 AGEN
> Tél : 05 53 87 91 48 - Fax : 05 53 68 73 50
> e-mail : [EMAIL PROTECTED] - Web : http://nauteus.com
>
>
> -- 
> 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