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:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user