Nginx Module (I/O block)

Maxim Dounin mdounin at mdounin.ru
Thu Mar 7 14:09:49 UTC 2013


Hello!

On Wed, Mar 06, 2013 at 05:56:15PM +0100, alexander_koch_log wrote:

> Hi,
> 
> On 03/06/2013 01:50 PM, Maxim Dounin wrote:
> >Hello!
> >>When sending an in-file buffer, is it still possible to have the
> >>read stop when a special byte char is read like \xFF even though the
> >>provided bytes to read are larger?
> >As e.g. with sendfile used file's data is never available in
> >user memory, the answer is no.
> >
> >>One way would be to read to the buffer then truncate the memory,
> >>then send the buffer? Or is there an efficient way?
> >What you are trying to do is probably beter handled by a filter
> >module.  You may ask nginx to read a file into memory buffers
> >(output_buffers), and then inspect/modify all data passed though
> >you filter.
> >
> 
> So the downside of this method would be to not use sendfile and deal
> with the over of read/write, correct?

You can't use sendfile if you have to scan file contents for a 
special byte.

By writing a filter you may avoid reinventing the wheel and doing 
file reads yourself.  Downside is that you have to write filter 
which is expected to work with a data stream, which is not always 
feasible.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx-devel mailing list