On Monday 23 July 2001 01:19, Justin Erenkrantz wrote:
> One last warning concerning modules/http/http_protocol.c.  No patch
> as I'm not sure which enum is right.
>
> "http_protocol.c", line 502: warning: enum type mismatch: arg #4
> "http_protocol.c", line 593: warning: enum type mismatch: arg #4
> "http_protocol.c", line 642: warning: enum type mismatch: arg #4
>
> Those lines concern the mode variable into the bucket read functions.
> apr_util has BLOCK_READ and NONBLOCK_READ.  The filters have similar
> (but not exactly the same) names and honor a third value PEEK.  IIRC,
> most compilers start enums at 0 - so I doubt the mismatch is hurting
> us as long as we don't pass PEEK to the buckets.  It does look like
> the filter code (ap_http_filter) is using the PEEK enum for
> keepalive/pipelining detection (not being passed to the buckets
> though).  Since we are using the PEEK value, I don't think we can
> just toss the ap_input_mode_t enum.
>
> Here are the relevant enums:
>
> typedef enum {
>     APR_BLOCK_READ,
>     APR_NONBLOCK_READ
> } apr_read_type_e;
>
> typedef enum {
>     /** The filter shouldn't return until data is received or EOF is hit
>      *  or an error occurs. */
>     AP_MODE_BLOCKING,
>     /** The filter should process any available data/status as normal,
>      *  but will not wait for additional data. */
>     AP_MODE_NONBLOCKING,
>     /** The filter should return ::APR_SUCCESS if data is available or
>      *  ::APR_EOF otherwise.  The filter must not return any buckets of
>      *  data.  Data returned on a subsequent call, when mode is
>      *  ::AP_MODE_BLOCKING or ::AP_MODE_NONBLOCKING. */
>     AP_MODE_PEEK
> } ap_input_mode_t;
>
> I'll let someone who is more familiar with the bucket code and who has
> httpd commit access figure this out if they want to.  =)  -- justin

This was done specifically because of the way enums work in C.  We need both enums,
because filters have more modes than buckets, and filters are a part of Apache, whereas
buckets are a part of APR-util.  Not much we can do about this, other than to lower the
warning level, or cast.

Ryan

_____________________________________________________________________________
Ryan Bloom                              [EMAIL PROTECTED]
Covalent Technologies                   [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to