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 <[email protected]> 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
