From: Stefan Eissing Date: Thu, 3 Sep 2015 09:39:59 +0000 (+0000) Subject: final final change to the new ap_array_str_* functions after review X-Git-Tag: 2.5.0-alpha~2874 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d84e8bfef678f612cef263bfdf4666c2983cecb4;p=apache final final change to the new ap_array_str_* functions after review git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1700968 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/include/httpd.h b/include/httpd.h index 24e1e2d9cc..ee5034c167 100644 --- a/include/httpd.h +++ b/include/httpd.h @@ -2407,22 +2407,22 @@ AP_DECLARE(char *) ap_get_exec_line(apr_pool_t *p, * searching a start. * @param array The array the check * @param s The string to find - * @param start Start index for search. If start is greater or - equal to array length, -1 will be returned. + * @param start Start index for search. If start is out of bounds (negative or + equal to array length or greater), -1 will be returned. * @return index of string in array or -1 */ -AP_DECLARE(int) ap_array_index(const apr_array_header_t *array, - const char *s, - apr_size_t start); +AP_DECLARE(int) ap_array_str_index(const apr_array_header_t *array, + const char *s, + int start); /** * Check if the string is member of the given array by strcmp. * @param array The array the check * @param s The string to find - * @return !=0 iff string is member of array + * @return !=0 iff string is member of array (via strcmp) */ -AP_DECLARE(int) ap_array_contains(const apr_array_header_t *array, - const char *s); +AP_DECLARE(int) ap_array_str_contains(const apr_array_header_t *array, + const char *s); #ifdef __cplusplus } diff --git a/modules/http2/h2_switch.c b/modules/http2/h2_switch.c index 4f774959e1..4cdc4118b0 100644 --- a/modules/http2/h2_switch.c +++ b/modules/http2/h2_switch.c @@ -108,7 +108,7 @@ static int h2_protocol_propose(conn_rec *c, request_rec *r, /* Add all protocols we know (tls or clear) and that * are part of the offerings (if there have been any). */ - if (!offers || ap_array_contains(offers, *protos)) { + if (!offers || ap_array_str_contains(offers, *protos)) { ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, c, "proposing protocol '%s'", *protos); APR_ARRAY_PUSH(proposals, const char*) = *protos; diff --git a/server/protocol.c b/server/protocol.c index d78408cf2b..014957adfa 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -1956,8 +1956,8 @@ static int protocol_cmp(apr_array_header_t *preferences, const char *proto2) { if (preferences && preferences->nelts > 0) { - int index1 = ap_array_index(preferences, proto1, 0); - int index2 = ap_array_index(preferences, proto2, 0); + int index1 = ap_array_str_index(preferences, proto1, 0); + int index2 = ap_array_str_index(preferences, proto2, 0); if (index2 > index1) { return (index1 >= 0) ? 1 : -1; } @@ -2006,8 +2006,8 @@ AP_DECLARE(const char *) ap_select_protocol(conn_rec *c, request_rec *r, /* If the existing protocol has not been proposed, but is a choice, * add it to the proposals implicitly. */ - if (!ap_array_contains(proposals, existing) - && ap_array_contains(choices, existing)) { + if (!ap_array_str_contains(proposals, existing) + && ap_array_str_contains(choices, existing)) { APR_ARRAY_PUSH(proposals, const char*) = existing; } @@ -2021,7 +2021,7 @@ AP_DECLARE(const char *) ap_select_protocol(conn_rec *c, request_rec *r, for (i = 0; i < proposals->nelts; ++i) { const char *p = APR_ARRAY_IDX(proposals, i, const char *); if (conf->protocols->nelts > 0 - && !ap_array_contains(conf->protocols, p)) { + && !ap_array_str_contains(conf->protocols, p)) { /* not a permitted protocol here */ continue; } diff --git a/server/util.c b/server/util.c index 21a7651235..cd7997295d 100644 --- a/server/util.c +++ b/server/util.c @@ -3149,23 +3149,27 @@ AP_DECLARE(char *) ap_get_exec_line(apr_pool_t *p, return apr_pstrndup(p, buf, k); } -AP_DECLARE(int) ap_array_index(const apr_array_header_t *array, - const char *s, - apr_size_t start) -{ - apr_size_t i; - for (i = start; i < array->nelts; i++) { - const char *p = APR_ARRAY_IDX(array, i, const char *); - if (!strcmp(p, s)) { - return (int)i; +AP_DECLARE(int) ap_array_str_index(const apr_array_header_t *array, + const char *s, + int start) +{ + if (start >= 0) { + int i; + + for (i = start; i < array->nelts; i++) { + const char *p = APR_ARRAY_IDX(array, i, const char *); + if (!strcmp(p, s)) { + return i; + } } } + return -1; } -AP_DECLARE(int) ap_array_contains(const apr_array_header_t *array, - const char *s) +AP_DECLARE(int) ap_array_str_contains(const apr_array_header_t *array, + const char *s) { - return (ap_array_index(array, s, 0) >= 0); + return (ap_array_str_index(array, s, 0) >= 0); }