libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] SSI support


From: Christian Grothoff
Subject: Re: [libmicrohttpd] SSI support
Date: Sat, 25 Aug 2012 14:21:37 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.6esrpre) Gecko/20120817 Icedove/10.0.6

Technically, whatever amount of memory is left in the memory pool
will be used for the buffer.  You can use the

MHD_OPTION_CONNECTION_MEMORY_LIMIT

to set the initial size of the memory pool (default: 32k).  Some
of that memory will go to storing the HTTP headers, the rest will be used as
the buffer for the response (if the response is generated using
the method you outlined).

Happy hacking!

Christian

On 08/25/2012 01:12 PM, Martin Velek wrote:
A supplementary question.

Where is decided which buffer will be used for data_generator
function? I have tried to set up block_size to 80 or 128 or 256 or
1024 and the data_generator function was always called with a buffer
from mem pool, size about 32KB.

M.V.
On Sat, Aug 25, 2012 at 10:37 AM, Martin Velek<address@hidden>  wrote:
Hello,

may I ask you, how to correctly implement SSI
(http://en.wikipedia.org/wiki/Server_Side_Includes) pages into
libmicrohttpd?

E.g. I have a page
#define PAGE "<html><head><title>libmicrohttpd demo</title>"\
              "</head><body>Temeprature:<!--#exec cgi="temperature"
--></body></html>"

The SSI parser knows that he should call const * char
temperature(void) when the string<!--#exec cgi="temperature" -->  is
found inside a html file. There is an issue, I cannot prepare the
whole reply in one buffer.

I have thought about using this function (taken from example)
  response = MHD_create_response_from_callback (MHD_SIZE_UNKNOWN, xxx,
&data_generator, NULL, NULL);

And the data_generator, which contains SSI parser, will read from
given filename until<!--#exec cgi="temperature" -->  is found and
replace it by the output of const * char temperature(void). If no data
left, it will return MHD_CONTENT_READER_END_OF_STREAM.

Is it a fancy solution? Or if there is a better way how to handle it,
I will appreciate your help.

Thank you
Martin Velek




reply via email to

[Prev in Thread] Current Thread [Next in Thread]