1
0
mirror of https://github.com/apache/httpd.git synced 2026-01-06 09:01:14 +03:00

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
This commit is contained in:
Stefan Eissing
2015-09-03 09:39:59 +00:00
parent d581155eb9
commit d84e8bfef6
4 changed files with 29 additions and 25 deletions

View File

@@ -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
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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)
AP_DECLARE(int) ap_array_str_index(const apr_array_header_t *array,
const char *s,
int 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;
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);
}