silvioprog: I don't understand why you'd use fopen() here instead of
just using the MHD_response_from_fd-style response generation. On
platforms where sendfile() is unavailable, MHD falls back to the usual
reading of the file into a buffer, so I don't quite see how you
re-implementing that logic helps. Sure, the fopen()-API might do some
additional buffering, but if you give MHD enough memory per connection,
you should get exactly the same effect.  So this just seems
unnecessarily convoluted (but I didn't try to understand the motivation
behind every branch in that code).

Happy hacking!

Christian

On 11/30/18 4:32 AM, silvioprog wrote:
> Hi Santos and Christian.
> 
> Santos, the Christian's answer was complete and clarified me a lot too. ☺
> 
> Christian, it seems sendfile() is not available in mingw and in the
> Google's NDK (Android), but my library must work at least on
> Windows, Linux, Raspbian and Android, so I've used the fopen() in this
> way: link
> <https://github.com/risoflora/libsagui/blob/master/src/sg_httpres.c#L112> 
> (sorry
> for put a link, but the code is a little bit large). Do you recommend to
> use fopen() in those cases? I would like to use sendfile() because it is
> very fast, but I can't implement it for Windows.
> 
> Thanks in advance for your help!
> 
> On Wed, Nov 28, 2018 at 1:55 PM Christian Grothoff <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     Dear Santos,
> 
>     MHD can send chunked response to the client. That said, this is not a
>     question of how large the file is. Especially, if it is simply a very
>     large file, MHD allows you to use sendfile() to avoid having a copy of
>     the data in userspace.  Chunked encoding is usually only used if the
>     application simply does not know the size of the response ahead of time.
> 
>     Happy hacking!
> 
>     Christian
> 
>     On 11/28/18 4:09 PM, Santos Das wrote:
>     > Hi,
>     >
>     > How can MHD send the chunked message to the client ?   
>     >
>     > When a server receives a simple GET request, and the response is so
>     > large that it must be sent back using the "chunked" procedure.
>     >
>     > An example would be if a server received a file GET request, and the
>     > response is a large data file.    
>     >
>     > Can you please point me to some example on how this can be done
>     using MHD ?
>     >
>     > Thanks in advance.
>     >
>     > Regards, Santos
> 
>  
> -- 
> Silvio Clécio

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to