diff --git a/Makefile.am b/Makefile.am index dd938e6b..195a9e5a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -32,7 +32,8 @@ RELEASE = -release 2.0 # If the ABI changed and it isn't backward-compatible: # Return (current+1:0:0) # -# Once an RC is out, DO NOT MAKE ANY ABI-BREAKING CHANGES IN THAT SERIES. +# Once an RC is out, DO NOT MAKE ANY ABI-BREAKING CHANGES IN THAT SERIES +# UNLESS YOU REALLY REALLY HAVE TO. VERSION_INFO = 4:0:2 # History: RELEASE VERSION_INFO @@ -45,13 +46,13 @@ VERSION_INFO = 4:0:2 # 2.0.7-rc -- 2.0 3:0:1 # 2.0.8-rc -- 2.0 4:0:2 # Planned: -# 2.0.9-stable-- 2.0 4:1:2 (Assuming no ABI change) +# 2.0.9-stable-- 2.0 5:0:0 (ABI changed slightly) # -# If Libevent 2.1.1 makes 'struct event' etc opaque in the headers: -# 2.1.1-alpha -- 2.1 1:0:0 -# If Libevent 2.1.1 does not makes 'struct event' opaque in the headers: +# +# For Libevent 2.1: # 2.1.1-alpha -- 2.1 1:0:0 + # ABI version history for this package effectively restarts every time # we change RELEASE. Version 1.4.x had RELEASE of 1.4. # diff --git a/http.c b/http.c index ce120bcc..f4db9f74 100644 --- a/http.c +++ b/http.c @@ -2486,8 +2486,8 @@ evhttp_uridecode(const char *uri, int decode_plus, size_t *size_out) * The arguments are separated by key and value. */ -int -evhttp_parse_query__checked_20(const char *str, struct evkeyvalq *headers, +static int +evhttp_parse_query_impl(const char *str, struct evkeyvalq *headers, int is_whole_uri) { char *line=NULL; @@ -2553,16 +2553,15 @@ done: return result; } -#undef evhttp_parse_query -void evhttp_parse_query(const char *uri, struct evkeyvalq *headers); -/* We define this here so as to avoid changing the ABI for evhttp_parse_query - * in 2.0.8. The next time we break ABI compatibility, we can go back to - * having the function above be called evhttp_parse_query - */ -void +int evhttp_parse_query(const char *uri, struct evkeyvalq *headers) { - evhttp_parse_query__checked_20(uri, headers, 1); + return evhttp_parse_query_impl(uri, headers, 1); +} +int +evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers) +{ + return evhttp_parse_query_impl(uri, headers, 0); } static struct evhttp_cb * diff --git a/include/event2/http.h b/include/event2/http.h index 66246f84..d8a716ae 100644 --- a/include/event2/http.h +++ b/include/event2/http.h @@ -607,8 +607,7 @@ char *evhttp_uridecode(const char *uri, int decode_plus, @param headers the head of the evkeyval queue @return 0 on success, -1 on failure */ -#define evhttp_parse_query(uri, headers) \ - evhttp_parse_query__checked_20((uri), (headers), 1) +int evhttp_parse_query(const char *uri, struct evkeyvalq *headers); /** Helper function to parse out arguments from the query portion of an @@ -627,14 +626,7 @@ char *evhttp_uridecode(const char *uri, int decode_plus, @param headers the head of the evkeyval queue @return 0 on success, -1 on failure */ -#define evhttp_parse_query_str(query, headers) \ - evhttp_parse_query__checked_20((uri), (headers), 0) - -/* Do not call this function directly; it is a temporary alias introduced - * to avoid changing the old signature for evhttp_parse_query - */ -int evhttp_parse_query__checked_20(const char *uri, struct evkeyvalq *headers, - int is_whole_url); +int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers); /** * Escape HTML character entities in a string.