Hi Christian, It's awesome, thank you for the fast work.
> Hi! > > I typically keep the data type 'enum' even if it is a bitmask, as really > in C we have enum = int, and the type declaration as enum helps the > reader understand what kind of 'int' we are talking about. I'd not want > to loose that. > > But, the semantic change, give the pos->kind back instead of 'kind' > makes a lot of sense, as only then one can really use the bitmask and > know what kind of header is returned. So I've changed that bit in SVN > 36571. I didn't "&" with 'kind' as pos->kind should really only always > have one bit set. > > Happy hacking! > > Christian > > On 10/25/2015 10:07 PM, [email protected] wrote: >> Hi folks, >> >> I've playing around with microhttpd and i think the function >> MHD_get_connection_values() can be easily improved. This function >> receives an enum of MHD_ValueKind, so you have to call this function >> with a kind per time if you need to get different kind of values. >> >> I do not know how we deal with api changes in this project, but i think >> it would be better if instead of receive an enum it receives an unsigne >> int, so we could do something like this, MHD_GET_ARGUMENT_KIND | >> MHD_HEADER_KIND | ... >> >> Follow the patch (any suggestion is valid :)) >> >> >> Index: src/include/microhttpd.h >> =================================================================== >> --- src/include/microhttpd.h (revision 36562) >> +++ src/include/microhttpd.h (working copy) >> @@ -1786,7 +1786,7 @@ >> */ >> _MHD_EXTERN int >> MHD_get_connection_values (struct MHD_Connection *connection, >> - enum MHD_ValueKind kind, >> + unsigned int kind, >> MHD_KeyValueIterator iterator, void >> *iterator_cls); >> >> >> Index: src/microhttpd/connection.c >> =================================================================== >> --- src/microhttpd/connection.c (revision 36562) >> +++ src/microhttpd/connection.c (working copy) >> @@ -125,7 +125,7 @@ >> */ >> int >> MHD_get_connection_values (struct MHD_Connection *connection, >> - enum MHD_ValueKind kind, >> + unsigned int kind, >> MHD_KeyValueIterator iterator, void >> *iterator_cls) >> { >> int ret; >> @@ -140,7 +140,7 @@ >> ret++; >> if ((NULL != iterator) && >> (MHD_YES != iterator (iterator_cls, >> - kind, pos->header, pos->value))) >> + (pos->kind & kind), pos->header, pos->value))) >> return ret; >> } >> return ret; >>
