Hi,

Sorry you have lost me. What message pump?

I only have onstoreSessionConnectEvent and onStoreSessionCloseEvent in my 
ftpserver.

Sham.


>From: "Fastream Technologies" <[EMAIL PROTECTED]>
>Reply-To: ICS support mailing <twsocket@elists.org>
>To: "ICS support mailing" <twsocket@elists.org>
>Subject: Re: [twsocket] FTP Server in Service dying.
>Date: Thu, 20 Apr 2006 17:01:07 +0300
>
>Hello,
>
>Why don't you handle the exception in the message pump you create? For
>example:
>
>try
>{
>     while(GetMessage(...
>         DispatchMessage(...
>}
>catch(...)
>
>Regards,
>
>SubZ
>
>----- Original Message -----
>From: "Shamresh Khan" <[EMAIL PROTECTED]>
>To: <twsocket@elists.org>
>Sent: Thursday, April 20, 2006 4:52 PM
>Subject: [twsocket] FTP Server in Service dying.
>
>
> > Hi to all,
> >
> > I have an FTPServer running within a Service. I have found that 
>sometimes
> > my
> > service is killed.
> >
> > Although I have not been able to reproduce why this has happening, I 
>have
> > found that in the IDE, if I set break points in the
> > FtpServerStorSessionConnecEvent and the FtpServerStorSessionClosedEvent,
> > the
> > client timeouts (5 second read timeout on each client command) I get the
> > access violation "Program error in ClientStorSessionClosed" being raised
> > which kills my service. I also saw this problem if I pull out the 
>network
> > cable of the FTP server.
> >
> > The way my FTP client works is to try sending files and if there is an
> > error, it will try at a later time (few seconds later).
> >
> > Would it be possible for me to replace the line raise
> > Exception.Create('Program error in ClientStorSessionClosed'); below for
> > the
> > command Exit. Would this cause any other problems? This way the service
> > will
> > not die.
> >
> > procedure TFtpServer.ClientStorSessionClosed(Sender : TObject; AError  :
> > Word);
> > var
> >    Client      : TFtpCtrlSocket;
> >    Data        : TWSocket;
> > begin
> >    Data                     := TWSocket(Sender);
> >    Client                   := TFtpCtrlSocket(Data.Owner);
> > { !!!!!!!! NGB: Free Up Current Port - next 2 lines added }
> >    if Client.PassiveConnected and (FPasvPortRangeSize > 0) then
> >        FreeCurrentPasvPort(Client);
> > { !!!!!!!! NGB: previous 2 lines added }
> >
> >    Client.DataSessionActive := FALSE;
> >    Client.PassiveStart      := FALSE;
> >    Client.PassiveConnected  := FALSE;
> >    Client.RestartPos        := 0;
> >    { Reset data port to standard value }
> >    Client.DataPort          := 'ftp-data';
> >
> >    { If we had opened a data stream ourself, then close it }
> >    if Client.HasOpenedFile then begin
> >        if Assigned(Client.DataStream) then
> >            Client.DataStream.Destroy;
> >        Client.DataStream    := nil;
> >        Client.HasOpenedFile := FALSE;
> >    end;
> >
> >    TriggerStorSessionClosed(Client, Data, AError);
> >
> >    case Client.CurCmdType of
> >    ftpcSTOR :
> >        begin
> >            if Client.AbortingTransfer then
> >                SendAnswer(Client, Format(msgStorAborted,
> > [Client.TransferError]))
> >            else if AError = 0 then
> >                SendAnswer(Client, msgStorOk)
> >            else
> >                SendAnswer(Client, Format(msgStorError, [AError]));
> >        end;
> >    ftpcAPPE :
> >        begin
> >            if Client.AbortingTransfer then
> >                SendAnswer(Client, Format(msgAppeAborted,
> > [Client.TransferError]))
> >            else if AError = 0 then
> >                SendAnswer(Client, msgAppeOk)
> >            else
> >                SendAnswer(Client, Format(msgAppeError, [AError]));
> >        end;
> >    ftpcSTOU :
> >        begin
> >            if Client.AbortingTransfer then
> >                SendAnswer(Client, Format(msgStouAborted,
> > [Client.TransferError]))
> >            else if AError = 0 then
> >                SendAnswer(Client, Format (msgStouOk, [Client.FileName]))
> >            else
> >                SendAnswer(Client, Format(msgStouError, [AError]));
> >        end;
> >    else { Should never comes here }
> >      raise Exception.Create('Program error in ClientStorSessionClosed');
> >    end;
> > end;
> >
> > Regards
> > Sham.
> >
> >
> > --
> > 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