diff options
| author | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-08-03 08:39:55 +0000 |
|---|---|---|
| committer | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-08-03 08:39:55 +0000 |
| commit | 1409566da2c0b68f6d7549726f2835de156e403d (patch) | |
| tree | ccf8621ebabe52560bc5d9fbd92383d14c441bd6 /packages/fcl-web/src | |
| parent | 035f6293e6eb017a8cdb8a9ad9b2f5a1680d112c (diff) | |
| download | fpc-1409566da2c0b68f6d7549726f2835de156e403d.tar.gz | |
* Fixed never-ending CGI scripts
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15698 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-web/src')
| -rw-r--r-- | packages/fcl-web/src/base/custweb.pp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/packages/fcl-web/src/base/custweb.pp b/packages/fcl-web/src/base/custweb.pp index 0699be6c07..a6424feed5 100644 --- a/packages/fcl-web/src/base/custweb.pp +++ b/packages/fcl-web/src/base/custweb.pp @@ -96,6 +96,7 @@ Type FRedirectOnError : Boolean; FRedirectOnErrorURL : String; FTitle: string; + FOnTerminate : TNotifyEvent; protected procedure Terminate; Function GetModuleName(Arequest : TRequest) : string; @@ -152,6 +153,7 @@ Type procedure SetOnShowRequestException(const AValue: TOnShowRequestException); procedure SetRedirectOnError(const AValue: boolean); procedure SetRedirectOnErrorURL(const AValue: string); + procedure DoOnTerminate(Sender : TObject); protected Procedure DoRun; override; function InitializeWebHandler: TWebHandler; virtual; abstract; @@ -163,7 +165,7 @@ Type Procedure CreateForm(AClass : TComponentClass; out Reference); Procedure Initialize; override; Procedure Log(EventType: TEventType; const Msg: String); override; - + procedure Terminate; override; Property HandleGetOnPost : Boolean Read GetHandleGetOnPost Write SetHandleGetOnPost; Property RedirectOnError : boolean Read GetRedirectOnError Write SetRedirectOnError; Property RedirectOnErrorURL : string Read GetRedirectOnErrorURL Write SetRedirectOnErrorURL; @@ -339,6 +341,8 @@ end; procedure TWebHandler.Terminate; begin FTerminated := true; + If Assigned(FOnTerminate) then + FOnTerminate(Self); end; function TWebHandler.GetModuleName(Arequest: TRequest): string; @@ -553,6 +557,13 @@ end; constructor TCustomWebApplication.Create(AOwner: TComponent); begin FWebHandler := InitializeWebHandler; + FWebHandler.FOnTerminate:=@DoOnTerminate; +end; + +procedure TCustomWebApplication.DoOnTerminate(Sender : TObject); +begin + If Not Terminated then + Terminate; end; destructor TCustomWebApplication.Destroy; @@ -578,4 +589,14 @@ begin EventLog.log(EventType,Msg); end; +Procedure TCustomWebApplication.Terminate; + +begin + Inherited; + If Not Webhandler.FTerminated then + WebHandler.Terminate; +end; + + end. + |
