I am not very clear on the purpose of different data members within the buf 
structure.(appended below)

After looking through the code, I can figure out the purpose of 
   
   - pos,last (sliding window)    

   - file_pos, file_last, start, end ,(data start and end)   

   - tag, (which module owns this buf)   

   - file (name of the file if any associated with the data)   

   - memory(cannot be released by any module that processes the buf).   

   - mmap (buf is memory map)   

   - last_in_chain(last in the chain of bufs)   

   - last_buf(last in the response)   

   - For temporary: can the temporary buffer be released by any module that 
processes it or can it be released by only the module that owns it as indicated 
in the tag   



It will be good if the purpose of other data members is described also. Thanks 
for any inputs


struct ngx_buf_s {    u_char          *pos;    u_char          *last;    off_t  
          file_pos;    off_t            file_last;
    u_char          *start;         /* start of buffer */    u_char          
*end;           /* end of buffer */    ngx_buf_tag_t    tag;    ngx_file_t      
*file;    ngx_buf_t       *shadow;

    /* the buf's content could be changed */    unsigned         temporary:1;
    /*     * the buf's content is in a memory cache or in a read only memory    
 * and must not be changed     */    unsigned         memory:1;
    /* the buf's content is mmap()ed and must not be changed */    unsigned     
    mmap:1;
    unsigned         recycled:1;    unsigned         in_file:1;    unsigned     
    flush:1;    unsigned         sync:1;    unsigned         last_buf:1;    
unsigned         last_in_chain:1;
    unsigned         last_shadow:1;    unsigned         temp_file:1;
    /* STUB */ int   num;};

_______________________________________________
nginx mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx

Reply via email to