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