[fpc-devel] Questions and suggestions to fpWeb

Michael Van Canneyt michael at freepascal.org
Tue Aug 3 10:41:43 CEST 2010



On Fri, 30 Jul 2010, Luiz Americo Pereira Camara wrote:

> Hi,
>
> I've playing a bit with fpWeb and have some suggestions and questions:
>
> - In TFPWebAction.DoHandleRequest if request is not handled by OnRequest and 
> inherited, the content is copied to the response and handled is checked by 
> the response content.
> - FContensts will be always created even if is not created previously
> - At this point AResponse.Contents can have some content?
> - If so the handled checking is wrong. See these conditions
>    AResponse.Contents.Text <> '';
>    Self.Contents.Text = '';
>    Handled will be true. Should be false.

Why ? It is handled ?

>
>
> - Content and Contents properties are redundant. Also can lead to some 
> performance issues. See the code of DoGetContent:
>
>   If (Self.Content<>'') then
>     Content.Write(Self.Content[1],Length(Self.Content));
>
> Content is computed (Contents items concatenated) three times.
>
> Don't be surprised if users do things like
>
> while  not ready do
> Content := Content + 'xxx';

I agree that the contents/content properties should be reduced to 1
property. But this is a change which will break backwards compatibility.

>
> - TFPWebAction.GetContent is empty. It seems that should call 
> TFPWebAction.DoGetContent.
> DoGetContent is inneficient. Cached FContents.Text and and isolated string 
> references

Suggestions for improvements are welcome.

>
> - In TCustomFPWebModule.HandleRequest assigned(Session) will always evaluate 
> to true (if Session is nil it will be created and then freed again).

I will look into this.

>
> - It's not necessary to check for nil in SetTemplate
> - In the other side a check to nil should be added in SetContents to avoid 
> creating FContents
>
> - CGI apps enters in a infinite loop.
> Adding
>
> if FWebHandler.FTerminated then
>   Terminate;
>
> to TCustomWebApplication.DoRun fixes it.

This is not sufficient, but I have committed a fix in revision 15698.
Please test it.

>
> Follows patch with my suggestions.

Can you please create bug reports for the remaining issues ?

Michael.



More information about the fpc-devel mailing list