* to struct proxy_{worker,balancer} in mod_proxy.h,
* and optional ssl_engine_set() to mod_ssl.h.
* 20160315.3 (2.5.0-dev) Add childtags to dav_error.
+ * 20160608.1 (2.5.0-dev) Rename ap_casecmpstr[n]() to ap_cstr_casecmp[n]()
*/
#define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
#ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 20160315
+#define MODULE_MAGIC_NUMBER_MAJOR 20160608
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 3 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 1 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a
const char *s);
/**
- * Known-fast version of strcasecmp(): ASCII case-folding, POSIX compliant
- * @param s1 The 1st string to compare
- * @param s2 The 2nd string to compare
- * @return 0 if s1 is lexicographically equal to s2 ignoring case;
- * non-0 otherwise.
+ * Perform a case-insensitive comparison of two strings @a atr1 and @a atr2,
+ * treating upper and lower case values of the 26 standard C/POSIX alphabetic
+ * characters as equivalent. Extended latin characters outside of this set
+ * are treated as unique octets, irrespective of the current locale.
+ *
+ * Returns in integer greater than, equal to, or less than 0,
+ * according to whether @a str1 is considered greater than, equal to,
+ * or less than @a str2.
+ *
+ * @note Same code as apr_cstr_casecmp, which arrives in APR 1.6
*/
-AP_DECLARE(int) ap_casecmpstr(const char *s1, const char *s2);
+AP_DECLARE(int) ap_cstr_casecmp(const char *s1, const char *s2);
/**
- * Known-fast version of strncasecmp(): ASCII case-folding, POSIX compliant
- * @param s1 The 1st string to compare
- * @param s2 The 2nd string to compare
- * @param n Maximum number of characters in the strings to compare
- * @return 0 if s1 is lexicographically equal to s2 ignoring case;
- * non-0 otherwise.
+ * Perform a case-insensitive comparison of two strings @a atr1 and @a atr2,
+ * treating upper and lower case values of the 26 standard C/POSIX alphabetic
+ * characters as equivalent. Extended latin characters outside of this set
+ * are treated as unique octets, irrespective of the current locale.
+ *
+ * Returns in integer greater than, equal to, or less than 0,
+ * according to whether @a str1 is considered greater than, equal to,
+ * or less than @a str2.
+ *
+ * @note Same code as apr_cstr_casecmp, which arrives in APR 1.6
*/
-AP_DECLARE(int) ap_casecmpstrn(const char *s1, const char *s2, apr_size_t n);
+AP_DECLARE(int) ap_cstr_casecmpn(const char *s1, const char *s2, apr_size_t n);
#ifdef __cplusplus
}
static int hook_note_basic_auth_failure(request_rec *r, const char *auth_type)
{
- if (ap_casecmpstr(auth_type, "Basic"))
+ if (ap_cstr_casecmp(auth_type, "Basic"))
return DECLINED;
note_basic_auth_failure(r);
return HTTP_UNAUTHORIZED;
}
- if (ap_casecmpstr(ap_getword(r->pool, &auth_line, ' '), "Basic")) {
+ if (ap_cstr_casecmp(ap_getword(r->pool, &auth_line, ' '), "Basic")) {
/* Client tried to authenticate using wrong auth scheme */
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01614)
"client used wrong authentication scheme: %s", r->uri);
/* Are we configured to be Basic auth? */
current_auth = ap_auth_type(r);
- if (!current_auth || ap_casecmpstr(current_auth, "Basic")) {
+ if (!current_auth || ap_cstr_casecmp(current_auth, "Basic")) {
return DECLINED;
}
if (!strcasecmp(op, "auth-int")) {
return "AuthDigestQop auth-int is not implemented";
}
- else if (ap_casecmpstr(op, "auth")) {
+ else if (ap_cstr_casecmp(op, "auth")) {
return apr_pstrcat(cmd->pool, "Unrecognized qop: ", op, NULL);
}
return "AuthDigestAlgorithm: ERROR: algorithm `MD5-sess' "
"is not implemented";
}
- else if (ap_casecmpstr(alg, "MD5")) {
+ else if (ap_cstr_casecmp(alg, "MD5")) {
return apr_pstrcat(cmd->pool, "Invalid algorithm in AuthDigestAlgorithm: ", alg, NULL);
}
}
resp->scheme = ap_getword_white(r->pool, &auth_line);
- if (ap_casecmpstr(resp->scheme, "Digest")) {
+ if (ap_cstr_casecmp(resp->scheme, "Digest")) {
resp->auth_hdr_sts = NOT_DIGEST;
return !OK;
}
auth_line++;
}
- if (!ap_casecmpstr(key, "username"))
+ if (!ap_cstr_casecmp(key, "username"))
resp->username = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "realm"))
+ else if (!ap_cstr_casecmp(key, "realm"))
resp->realm = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "nonce"))
+ else if (!ap_cstr_casecmp(key, "nonce"))
resp->nonce = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "uri"))
+ else if (!ap_cstr_casecmp(key, "uri"))
resp->uri = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "response"))
+ else if (!ap_cstr_casecmp(key, "response"))
resp->digest = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "algorithm"))
+ else if (!ap_cstr_casecmp(key, "algorithm"))
resp->algorithm = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "cnonce"))
+ else if (!ap_cstr_casecmp(key, "cnonce"))
resp->cnonce = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "opaque"))
+ else if (!ap_cstr_casecmp(key, "opaque"))
resp->opaque = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "qop"))
+ else if (!ap_cstr_casecmp(key, "qop"))
resp->message_qop = apr_pstrdup(r->pool, value);
- else if (!ap_casecmpstr(key, "nc"))
+ else if (!ap_cstr_casecmp(key, "nc"))
resp->nonce_count = apr_pstrdup(r->pool, value);
}
if (apr_is_empty_array(conf->qop_list)) {
qop = ", qop=\"auth\"";
}
- else if (!ap_casecmpstr(*(const char **)(conf->qop_list->elts), "none")) {
+ else if (!ap_cstr_casecmp(*(const char **)(conf->qop_list->elts), "none")) {
qop = "";
}
else {
digest_header_rec *resp;
digest_config_rec *conf;
- if (ap_casecmpstr(auth_type, "Digest"))
+ if (ap_cstr_casecmp(auth_type, "Digest"))
return DECLINED;
/* get the client response and mark */
}
if (!apr_is_empty_array(conf->qop_list) &&
- !ap_casecmpstr(*(const char **)(conf->qop_list->elts), "none")) {
+ !ap_cstr_casecmp(*(const char **)(conf->qop_list->elts), "none")) {
/* qop is none, client must not send a nonce count */
if (snc != NULL) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01772)
/* do we require Digest auth for this URI? */
- if (!(t = ap_auth_type(r)) || ap_casecmpstr(t, "Digest")) {
+ if (!(t = ap_auth_type(r)) || ap_cstr_casecmp(t, "Digest")) {
return DECLINED;
}
}
if (resp->algorithm != NULL
- && ap_casecmpstr(resp->algorithm, "MD5")) {
+ && ap_cstr_casecmp(resp->algorithm, "MD5")) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01789)
"unknown algorithm `%s' received: %s",
resp->algorithm, r->uri);
int match = 0, idx;
const char **tmp = (const char **)(conf->qop_list->elts);
for (idx = 0; idx < conf->qop_list->nelts; idx++) {
- if (!ap_casecmpstr(*tmp, resp->message_qop)) {
+ if (!ap_cstr_casecmp(*tmp, resp->message_qop)) {
match = 1;
break;
}
if (!match
&& !(apr_is_empty_array(conf->qop_list)
- && !ap_casecmpstr(resp->message_qop, "auth"))) {
+ && !ap_cstr_casecmp(resp->message_qop, "auth"))) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01793)
"invalid qop `%s' received: %s",
resp->message_qop, r->uri);
/* do rfc-2069 digest
*/
if (!apr_is_empty_array(conf->qop_list) &&
- !ap_casecmpstr(*(const char **)(conf->qop_list->elts), "none")
+ !ap_cstr_casecmp(*(const char **)(conf->qop_list->elts), "none")
&& resp->message_qop == NULL) {
/* use only RFC-2069 format */
ai = nextnonce;
static int hook_note_cookie_auth_failure(request_rec * r,
const char *auth_type)
{
- if (ap_casecmpstr(auth_type, "form"))
+ if (ap_cstr_casecmp(auth_type, "form"))
return DECLINED;
note_cookie_auth_failure(r);
/* Are we configured to be Form auth? */
current_auth = ap_auth_type(r);
- if (!current_auth || ap_casecmpstr(current_auth, "form")) {
+ if (!current_auth || ap_cstr_casecmp(current_auth, "form")) {
return DECLINED;
}
return NULL;
}
- return ap_casecmpstr(type, "None") ? type : NULL;
+ return ap_cstr_casecmp(type, "None") ? type : NULL;
}
return NULL;
/* When the application gives a 200 response, the server ignores response
headers whose names aren't prefixed with Variable- prefix, and ignores
any response content */
- if (ap_casecmpstrn(key, "Variable-", 9) == 0)
+ if (ap_cstr_casecmpn(key, "Variable-", 9) == 0)
apr_table_setn(vars, key, val);
return 1;
}
prov = dconf && dconf->name ? dconf->name : NULL;
- if (!prov || !ap_casecmpstr(prov, "None")) {
+ if (!prov || !ap_cstr_casecmp(prov, "None")) {
return DECLINED;
}
dconf->user_expr ? "yes" : "no",
auth_type);
- if (auth_type && !ap_casecmpstr(auth_type, "Basic")) {
+ if (auth_type && !ap_cstr_casecmp(auth_type, "Basic")) {
if ((res = ap_get_basic_auth_pw(r, &password))) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
APLOGNO(02517) "%s: couldn't retrieve basic auth "
static int filter_header_do(void *v, const char *key, const char *val)
{
- if ((*key == 'W' || *key == 'w') && !ap_casecmpstr(key, "Warning")
+ if ((*key == 'W' || *key == 'w') && !ap_cstr_casecmp(key, "Warning")
&& *val == '1') {
/* any stored Warning headers with warn-code 1xx (see section
* 14.46) MUST be deleted from the cache entry and the forwarded
}
static int remove_header_do(void *v, const char *key, const char *val)
{
- if ((*key == 'W' || *key == 'w') && !ap_casecmpstr(key, "Warning")) {
+ if ((*key == 'W' || *key == 'w') && !ap_cstr_casecmp(key, "Warning")) {
/* any stored Warning headers with warn-code 2xx MUST be retained
* in the cache entry and the forwarded response.
*/
}
else {
/* The URI scheme must be present and identical except for case. */
- if (!url->scheme || ap_casecmpstr(filter->scheme, url->scheme)) {
+ if (!url->scheme || ap_cstr_casecmp(filter->scheme, url->scheme)) {
return 0;
}
char *header = apr_pstrdup(r->pool, pragma_header);
const char *token = cache_strqtok(header, CACHE_SEPARATOR, &last);
while (token) {
- if (!ap_casecmpstr(token, "no-cache")) {
+ if (!ap_cstr_casecmp(token, "no-cache")) {
cc->no_cache = 1;
}
token = cache_strqtok(NULL, CACHE_SEPARATOR, &last);
switch (token[0]) {
case 'n':
case 'N': {
- if (!ap_casecmpstrn(token, "no-cache", 8)) {
+ if (!ap_cstr_casecmpn(token, "no-cache", 8)) {
if (token[8] == '=') {
cc->no_cache_header = 1;
}
cc->no_cache = 1;
}
}
- else if (!ap_casecmpstr(token, "no-store")) {
+ else if (!ap_cstr_casecmp(token, "no-store")) {
cc->no_store = 1;
}
- else if (!ap_casecmpstr(token, "no-transform")) {
+ else if (!ap_cstr_casecmp(token, "no-transform")) {
cc->no_transform = 1;
}
break;
}
case 'm':
case 'M': {
- if (!ap_casecmpstrn(token, "max-age", 7)) {
+ if (!ap_cstr_casecmpn(token, "max-age", 7)) {
if (token[7] == '='
&& !apr_strtoff(&offt, token + 8, &endp, 10)
&& endp > token + 8 && !*endp) {
cc->max_age_value = offt;
}
}
- else if (!ap_casecmpstr(token, "must-revalidate")) {
+ else if (!ap_cstr_casecmp(token, "must-revalidate")) {
cc->must_revalidate = 1;
}
- else if (!ap_casecmpstrn(token, "max-stale", 9)) {
+ else if (!ap_cstr_casecmpn(token, "max-stale", 9)) {
if (token[9] == '='
&& !apr_strtoff(&offt, token + 10, &endp, 10)
&& endp > token + 10 && !*endp) {
cc->max_stale_value = -1;
}
}
- else if (!ap_casecmpstrn(token, "min-fresh", 9)) {
+ else if (!ap_cstr_casecmpn(token, "min-fresh", 9)) {
if (token[9] == '='
&& !apr_strtoff(&offt, token + 10, &endp, 10)
&& endp > token + 10 && !*endp) {
}
case 'o':
case 'O': {
- if (!ap_casecmpstr(token, "only-if-cached")) {
+ if (!ap_cstr_casecmp(token, "only-if-cached")) {
cc->only_if_cached = 1;
}
break;
}
case 'p':
case 'P': {
- if (!ap_casecmpstr(token, "public")) {
+ if (!ap_cstr_casecmp(token, "public")) {
cc->public = 1;
}
- else if (!ap_casecmpstrn(token, "private", 7)) {
+ else if (!ap_cstr_casecmpn(token, "private", 7)) {
if (token[7] == '=') {
cc->private_header = 1;
}
cc->private = 1;
}
}
- else if (!ap_casecmpstr(token, "proxy-revalidate")) {
+ else if (!ap_cstr_casecmp(token, "proxy-revalidate")) {
cc->proxy_revalidate = 1;
}
break;
}
case 's':
case 'S': {
- if (!ap_casecmpstrn(token, "s-maxage", 8)) {
+ if (!ap_cstr_casecmpn(token, "s-maxage", 8)) {
if (token[8] == '='
&& !apr_strtoff(&offt, token + 9, &endp, 10)
&& endp > token + 9 && !*endp) {
switch (token[0]) {
case 'n':
case 'N': {
- if (!ap_casecmpstrn(token, "no-cache", 8)) {
+ if (!ap_cstr_casecmpn(token, "no-cache", 8)) {
if (token[8] == '=') {
const char *header = cache_strqtok(token + 9,
CACHE_SEPARATOR "\"", &slast);
}
case 'p':
case 'P': {
- if (!ap_casecmpstrn(token, "private", 7)) {
+ if (!ap_cstr_casecmpn(token, "private", 7)) {
if (token[7] == '=') {
const char *header = cache_strqtok(token + 8,
CACHE_SEPARATOR "\"", &slast);
return def_depth;
}
- if (ap_casecmpstr(depth, "infinity") == 0) {
+ if (ap_cstr_casecmp(depth, "infinity") == 0) {
return DAV_INFINITY;
}
else if (strcmp(depth, "0") == 0) {
return 0;
range = apr_pstrdup(r->pool, range_c);
- if (ap_casecmpstrn(range, "bytes ", 6) != 0
+ if (ap_cstr_casecmpn(range, "bytes ", 6) != 0
|| (dash = ap_strchr(range, '-')) == NULL
|| (slash = ap_strchr(range, '/')) == NULL) {
/* malformed header */
r->remaining = 0;
if (tenc) {
- if (ap_casecmpstr(tenc, "chunked")) {
+ if (ap_cstr_casecmp(tenc, "chunked")) {
/* Use this instead of Apache's default error string */
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00589)
"Unknown Transfer-Encoding %s", tenc);
request. the port must match our port.
*/
port = r->connection->local_addr->port;
- if (ap_casecmpstr(comp.scheme, scheme) != 0
+ if (ap_cstr_casecmp(comp.scheme, scheme) != 0
#ifdef APACHE_PORT_HANDLING_IS_BUSTED
|| comp.port != port
#endif
if (!ctx->noop && ctx->xlate == NULL) {
const char *mime_type = f->r->content_type;
- if (mime_type && (ap_casecmpstrn(mime_type, "text/", 5) == 0 ||
+ if (mime_type && (ap_cstr_casecmpn(mime_type, "text/", 5) == 0 ||
#if APR_CHARSET_EBCDIC
/* On an EBCDIC machine, be willing to translate mod_autoindex-
* generated output. Otherwise, it doesn't look too cool.
*/
strcmp(mime_type, DIR_MAGIC_TYPE) == 0 ||
#endif
- ap_casecmpstrn(mime_type, "message/", 8) == 0 ||
+ ap_cstr_casecmpn(mime_type, "message/", 8) == 0 ||
dc->force_xlate == FX_FORCE)) {
rv = apr_xlate_open(&ctx->xlate,
if (encoding && *encoding) {
/* check the usual/simple case first */
- if (!ap_casecmpstr(encoding, "gzip")
- || !ap_casecmpstr(encoding, "x-gzip")) {
+ if (!ap_cstr_casecmp(encoding, "gzip")
+ || !ap_cstr_casecmp(encoding, "x-gzip")) {
found = 1;
if (hdrs) {
apr_table_unset(hdrs, "Content-Encoding");
for(;;) {
char *token = ap_strrchr(new_encoding, ',');
if (!token) { /* gzip:identity or other:identity */
- if (!ap_casecmpstr(new_encoding, "gzip")
- || !ap_casecmpstr(new_encoding, "x-gzip")) {
+ if (!ap_cstr_casecmp(new_encoding, "gzip")
+ || !ap_cstr_casecmp(new_encoding, "x-gzip")) {
found = 1;
if (hdrs) {
apr_table_unset(hdrs, "Content-Encoding");
break; /* seen all tokens */
}
for (ptr=token+1; apr_isspace(*ptr); ++ptr);
- if (!ap_casecmpstr(ptr, "gzip")
- || !ap_casecmpstr(ptr, "x-gzip")) {
+ if (!ap_cstr_casecmp(ptr, "gzip")
+ || !ap_cstr_casecmp(ptr, "x-gzip")) {
*token = '\0';
if (hdrs) {
apr_table_setn(hdrs, "Content-Encoding", new_encoding);
}
found = 1;
}
- else if (!ptr[0] || !ap_casecmpstr(ptr, "identity")) {
+ else if (!ptr[0] || !ap_cstr_casecmp(ptr, "identity")) {
*token = '\0';
continue; /* strip the token and find the next one */
}
}
token = ap_get_token(r->pool, &accepts, 0);
- while (token && token[0] && ap_casecmpstr(token, "gzip")) {
+ while (token && token[0] && ap_cstr_casecmp(token, "gzip")) {
/* skip parameters, XXX: ;q=foo evaluation? */
while (*accepts == ';') {
++accepts;
*/
/* If the entire Content-Encoding is "identity", we can replace it. */
- if (!encoding || !ap_casecmpstr(encoding, "identity")) {
+ if (!encoding || !ap_cstr_casecmp(encoding, "identity")) {
apr_table_setn(r->headers_out, "Content-Encoding", "gzip");
}
else {
token = apr_strtok(d, ", \t", &last);
while (token) {
- if (!ap_casecmpstr(token, "none")) {
+ if (!ap_cstr_casecmp(token, "none")) {
/* do nothing */
}
- else if (!ap_casecmpstr(token, "url")) {
+ else if (!ap_cstr_casecmp(token, "url")) {
char *buf = apr_pstrdup(ctx->pool, echo_text);
ap_unescape_url(buf);
echo_text = buf;
}
- else if (!ap_casecmpstr(token, "urlencoded")) {
+ else if (!ap_cstr_casecmp(token, "urlencoded")) {
char *buf = apr_pstrdup(ctx->pool, echo_text);
ap_unescape_urlencoded(buf);
echo_text = buf;
}
- else if (!ap_casecmpstr(token, "entity")) {
+ else if (!ap_cstr_casecmp(token, "entity")) {
char *buf = apr_pstrdup(ctx->pool, echo_text);
decodehtml(buf);
echo_text = buf;
}
- else if (!ap_casecmpstr(token, "base64")) {
+ else if (!ap_cstr_casecmp(token, "base64")) {
echo_text = ap_pbase64decode(ctx->dpool, echo_text);
}
else {
token = apr_strtok(e, ", \t", &last);
while (token) {
- if (!ap_casecmpstr(token, "none")) {
+ if (!ap_cstr_casecmp(token, "none")) {
/* do nothing */
}
- else if (!ap_casecmpstr(token, "url")) {
+ else if (!ap_cstr_casecmp(token, "url")) {
echo_text = ap_escape_uri(ctx->dpool, echo_text);
}
- else if (!ap_casecmpstr(token, "urlencoded")) {
+ else if (!ap_cstr_casecmp(token, "urlencoded")) {
echo_text = ap_escape_urlencoded(ctx->dpool, echo_text);
}
- else if (!ap_casecmpstr(token, "entity")) {
+ else if (!ap_cstr_casecmp(token, "entity")) {
echo_text = ap_escape_html2(ctx->dpool, echo_text, 0);
}
- else if (!ap_casecmpstr(token, "base64")) {
+ else if (!ap_cstr_casecmp(token, "base64")) {
char *buf;
buf = ap_pbase64encode(ctx->dpool, (char *)echo_text);
echo_text = buf;
token = apr_strtok(d, ", \t", &last);
while (token) {
- if (!ap_casecmpstr(token, "none")) {
+ if (!ap_cstr_casecmp(token, "none")) {
/* do nothing */
}
- else if (!ap_casecmpstr(token, "url")) {
+ else if (!ap_cstr_casecmp(token, "url")) {
char *buf = apr_pstrdup(ctx->pool, parsed_string);
ap_unescape_url(buf);
parsed_string = buf;
}
- else if (!ap_casecmpstr(token, "urlencoded")) {
+ else if (!ap_cstr_casecmp(token, "urlencoded")) {
char *buf = apr_pstrdup(ctx->pool, parsed_string);
ap_unescape_urlencoded(buf);
parsed_string = buf;
}
- else if (!ap_casecmpstr(token, "entity")) {
+ else if (!ap_cstr_casecmp(token, "entity")) {
char *buf = apr_pstrdup(ctx->pool, parsed_string);
decodehtml(buf);
parsed_string = buf;
}
- else if (!ap_casecmpstr(token, "base64")) {
+ else if (!ap_cstr_casecmp(token, "base64")) {
parsed_string = ap_pbase64decode(ctx->dpool, parsed_string);
}
else {
token = apr_strtok(e, ", \t", &last);
while (token) {
- if (!ap_casecmpstr(token, "none")) {
+ if (!ap_cstr_casecmp(token, "none")) {
/* do nothing */
}
- else if (!ap_casecmpstr(token, "url")) {
+ else if (!ap_cstr_casecmp(token, "url")) {
parsed_string = ap_escape_uri(ctx->dpool, parsed_string);
}
- else if (!ap_casecmpstr(token, "urlencoded")) {
+ else if (!ap_cstr_casecmp(token, "urlencoded")) {
parsed_string = ap_escape_urlencoded(ctx->dpool, parsed_string);
}
- else if (!ap_casecmpstr(token, "entity")) {
+ else if (!ap_cstr_casecmp(token, "entity")) {
parsed_string = ap_escape_html2(ctx->dpool, parsed_string, 0);
}
- else if (!ap_casecmpstr(token, "base64")) {
+ else if (!ap_cstr_casecmp(token, "base64")) {
char *buf;
buf = ap_pbase64encode(ctx->dpool, (char *)parsed_string);
parsed_string = buf;
}
ap_fputstrs(ctx->f->next, ctx->bb, "<!DOCTYPE ", (const char *)name, NULL);
if (externalID) {
- if (!ap_casecmpstr((const char*)name, "html") &&
- !ap_casecmpstrn((const char *)externalID, "-//W3C//DTD XHTML ", 18)) {
+ if (!ap_cstr_casecmp((const char*)name, "html") &&
+ !ap_cstr_casecmpn((const char *)externalID, "-//W3C//DTD XHTML ", 18)) {
ctx->etag = xhtml_etag;
}
else {
while (!apr_isalpha(*++p));
for (q = p; apr_isalnum(*q) || (*q == '-'); ++q);
header = apr_pstrndup(r->pool, p, q-p);
- if (ap_casecmpstrn(header, "Content-", 8)) {
+ if (ap_cstr_casecmpn(header, "Content-", 8)) {
/* find content=... string */
p = apr_strmatch(seek_content, buf+offs+pmatch[0].rm_so,
pmatch[0].rm_eo - pmatch[0].rm_so);
}
}
}
- else if (!ap_casecmpstrn(header, "Content-Type", 12)) {
+ else if (!ap_cstr_casecmpn(header, "Content-Type", 12)) {
ret = apr_palloc(r->pool, sizeof(meta));
ret->start = offs+pmatch[0].rm_so;
ret->end = offs+pmatch[0].rm_eo;
else if (!f->r->content_type) {
errmsg = "No content-type; bailing out of proxy-html filter";
}
- else if (ap_casecmpstrn(f->r->content_type, "text/html", 9) &&
- ap_casecmpstrn(f->r->content_type,
+ else if (ap_cstr_casecmpn(f->r->content_type, "text/html", 9) &&
+ ap_cstr_casecmpn(f->r->content_type,
"application/xhtml+xml", 21)) {
errmsg = "Non-HTML content; not inserting proxy-html filter";
}
emit_H1 = 1;
}
}
- else if (!ap_casecmpstrn("text/", rr->content_type, 5)) {
+ else if (!ap_cstr_casecmpn("text/", rr->content_type, 5)) {
/*
* If we can open the file, prefix it with the preamble
* regardless; since we'll be sending a <pre> block around
suppress_post = suppress_amble;
}
}
- else if (!ap_casecmpstrn("text/", rr->content_type, 5)) {
+ else if (!ap_cstr_casecmpn("text/", rr->content_type, 5)) {
/*
* If we can open the file, suppress the signature.
*/
" <title>Server Information</title>\n" "</head>\n", r);
ap_rputs("<body><h1 style=\"text-align: center\">"
"Apache Server Information</h1>\n", r);
- if (!r->args || ap_casecmpstr(r->args, "list")) {
+ if (!r->args || ap_cstr_casecmp(r->args, "list")) {
if (!r->args) {
ap_rputs("<dl><dt><tt>Subpages:<br />", r);
ap_rputs("<a href=\"?config\">Configuration Files</a>, "
ap_rputs("</tt></dt></dl><hr />", r);
}
- if (!r->args || !ap_casecmpstr(r->args, "server")) {
+ if (!r->args || !ap_cstr_casecmp(r->args, "server")) {
show_server_settings(r);
}
- if (!r->args || !ap_casecmpstr(r->args, "hooks")) {
+ if (!r->args || !ap_cstr_casecmp(r->args, "hooks")) {
show_active_hooks(r);
}
- if (!r->args || !ap_casecmpstr(r->args, "providers")) {
+ if (!r->args || !ap_cstr_casecmp(r->args, "providers")) {
show_providers(r);
}
- if (r->args && 0 == ap_casecmpstr(r->args, "config")) {
+ if (r->args && 0 == ap_cstr_casecmp(r->args, "config")) {
ap_rputs("<dl><dt><strong>Configuration:</strong>\n", r);
mod_info_module_cmds(r, NULL, ap_conftree, 0, 0);
ap_rputs("</dl><hr />", r);
modules = get_sorted_modules(r->pool);
for (i = 0; i < modules->nelts; i++) {
modp = APR_ARRAY_IDX(modules, i, module *);
- if (!r->args || !ap_casecmpstr(modp->name, r->args)) {
+ if (!r->args || !ap_cstr_casecmp(modp->name, r->args)) {
ap_rprintf(r,
"<dl><dt><a name=\"%s\"><strong>Module Name:</strong></a> "
"<font size=\"+1\"><tt><a href=\"?%s\">%s</a></tt></font></dt>\n",
}
}
}
- if (!modp && r->args && ap_casecmpstr(r->args, "server")) {
+ if (!modp && r->args && ap_cstr_casecmp(r->args, "server")) {
ap_rputs("<p><b>No such module</b></p>\n", r);
}
}
}
range = apr_table_get(r->headers_in, "Range");
- if (!range || ap_casecmpstrn(range, "bytes=", 6) || r->status != HTTP_OK) {
+ if (!range || ap_cstr_casecmpn(range, "bytes=", 6) || r->status != HTTP_OK) {
return 0;
}
/* is content already a multiple range? */
if ((ct = apr_table_get(r->headers_out, "Content-Type"))
- && ap_casecmpstrn(ct, "multipart/byteranges", 20) == 0) {
+ && ap_cstr_casecmpn(ct, "multipart/byteranges", 20) == 0) {
return 0;
}
lenp = apr_table_get(f->r->headers_in, "Content-Length");
if (tenc) {
- if (ap_casecmpstr(tenc, "chunked") == 0 /* fast path */
+ if (ap_cstr_casecmp(tenc, "chunked") == 0 /* fast path */
|| ap_find_last_token(f->r->pool, tenc, "chunked")) {
ctx->state = BODY_CHUNK;
}
*/
for (i = 0, strpp = (char **) values->elts; i < values->nelts;
++i, ++strpp) {
- if (*strpp && ap_casecmpstr(*strpp, start) == 0) {
+ if (*strpp && ap_cstr_casecmp(*strpp, start) == 0) {
break;
}
}
while (field && (token = ap_get_list_item(r->pool, &field)) != NULL) {
for (i = 0; i < r->content_languages->nelts; ++i) {
- if (!ap_casecmpstr(token, languages[i]))
+ if (!ap_cstr_casecmp(token, languages[i]))
break;
}
if (i == r->content_languages->nelts) {
r->remaining = 0;
if (tenc) {
- if (ap_casecmpstr(tenc, "chunked")) {
+ if (ap_cstr_casecmp(tenc, "chunked")) {
ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(01592)
"Unknown Transfer-Encoding %s", tenc);
return HTTP_NOT_IMPLEMENTED;
int i;
for (i = 0; transform_hdrs[i].name; ++i) {
- if (!ap_casecmpstr(transform_hdrs[i].name, n)) {
+ if (!ap_cstr_casecmp(transform_hdrs[i].name, n)) {
dconf = ap_get_module_config(r->per_dir_config, &proxy_module);
apr_table_add(r->headers_out, n,
(*transform_hdrs[i].func)(r, dconf, v));
}
/*******************************************************************************
- * ap_casecmpstr, when will it be backported?
+ * ap_cstr_casecmp, when will it be backported?
******************************************************************************/
#if !APR_CHARSET_EBCDIC
/*
*/
apr_off_t h2_brigade_mem_size(apr_bucket_brigade *bb);
-/* when will ap_casecmpstr() be backported finally? */
+/* when will ap_cstr_casecmp() be backported finally? */
int h2_casecmpstr(const char *s1, const char *s2);
int h2_casecmpstrn(const char *s1, const char *s2, apr_size_t n);
result_list = rp = NULL;
do {
- if (!ap_casecmpstr(t_elt->key, key)) {
+ if (!ap_cstr_casecmp(t_elt->key, key)) {
if (!result_list) {
result_list = rp = apr_palloc(pool, sizeof(*rp));
}
{
const char *cp = NULL;
- if (!ap_casecmpstr(a, "Content-type") && r->content_type) {
+ if (!ap_cstr_casecmp(a, "Content-type") && r->content_type) {
cp = ap_field_noparam(r->pool, r->content_type);
}
- else if (!ap_casecmpstr(a, "Set-Cookie")) {
+ else if (!ap_cstr_casecmp(a, "Set-Cookie")) {
cp = find_multiple_headers(r->pool, r->headers_out, a);
}
else {
--last;
}
- if (!ap_casecmpstr(name, a)) {
+ if (!ap_cstr_casecmp(name, a)) {
/* last1 points to the next char following the ';' delim,
or the trailing NUL char of the string */
last = last1 - (*last1 ? 2 : 1);
/* We need to shortcut the rest of this block following the Body:
* tag - we will not look for continutation after this line.
*/
- if (!ap_casecmpstrn(buffer, "Body:", 5))
+ if (!ap_cstr_casecmpn(buffer, "Body:", 5))
return header_seen;
while (apr_file_getc(&c, map) != APR_EOF) {
switch (*uri++) {
case 'a':
case 'A':
- if (!ap_casecmpstrn(uri, "jp://", 5)) { /* ajp:// */
+ if (!ap_cstr_casecmpn(uri, "jp://", 5)) { /* ajp:// */
*sqs = 1;
return 6;
}
case 'b':
case 'B':
- if (!ap_casecmpstrn(uri, "alancer://", 10)) { /* balancer:// */
+ if (!ap_cstr_casecmpn(uri, "alancer://", 10)) { /* balancer:// */
*sqs = 1;
return 11;
}
case 'f':
case 'F':
- if (!ap_casecmpstrn(uri, "tp://", 5)) { /* ftp:// */
+ if (!ap_cstr_casecmpn(uri, "tp://", 5)) { /* ftp:// */
return 6;
}
- if (!ap_casecmpstrn(uri, "cgi://", 6)) { /* fcgi:// */
+ if (!ap_cstr_casecmpn(uri, "cgi://", 6)) { /* fcgi:// */
*sqs = 1;
return 7;
}
case 'g':
case 'G':
- if (!ap_casecmpstrn(uri, "opher://", 8)) { /* gopher:// */
+ if (!ap_cstr_casecmpn(uri, "opher://", 8)) { /* gopher:// */
return 9;
}
break;
case 'h':
case 'H':
- if (!ap_casecmpstrn(uri, "ttp://", 6)) { /* http:// */
+ if (!ap_cstr_casecmpn(uri, "ttp://", 6)) { /* http:// */
*sqs = 1;
return 7;
}
- else if (!ap_casecmpstrn(uri, "ttps://", 7)) { /* https:// */
+ else if (!ap_cstr_casecmpn(uri, "ttps://", 7)) { /* https:// */
*sqs = 1;
return 8;
}
- else if (!ap_casecmpstrn(uri, "2://", 4)) { /* h2:// */
+ else if (!ap_cstr_casecmpn(uri, "2://", 4)) { /* h2:// */
*sqs = 1;
return 5;
}
- else if (!ap_casecmpstrn(uri, "2c://", 5)) { /* h2c:// */
+ else if (!ap_cstr_casecmpn(uri, "2c://", 5)) { /* h2c:// */
*sqs = 1;
return 6;
}
case 'l':
case 'L':
- if (!ap_casecmpstrn(uri, "dap://", 6)) { /* ldap:// */
+ if (!ap_cstr_casecmpn(uri, "dap://", 6)) { /* ldap:// */
return 7;
}
break;
case 'm':
case 'M':
- if (!ap_casecmpstrn(uri, "ailto:", 6)) { /* mailto: */
+ if (!ap_cstr_casecmpn(uri, "ailto:", 6)) { /* mailto: */
*sqs = 1;
return 7;
}
case 'n':
case 'N':
- if (!ap_casecmpstrn(uri, "ews:", 4)) { /* news: */
+ if (!ap_cstr_casecmpn(uri, "ews:", 4)) { /* news: */
return 5;
}
- else if (!ap_casecmpstrn(uri, "ntp://", 6)) { /* nntp:// */
+ else if (!ap_cstr_casecmpn(uri, "ntp://", 6)) { /* nntp:// */
return 7;
}
break;
case 's':
case 'S':
- if (!ap_casecmpstrn(uri, "cgi://", 6)) { /* scgi:// */
+ if (!ap_cstr_casecmpn(uri, "cgi://", 6)) { /* scgi:// */
*sqs = 1;
return 7;
}
case 'w':
case 'W':
- if (!ap_casecmpstrn(uri, "s://", 4)) { /* ws:// */
+ if (!ap_cstr_casecmpn(uri, "s://", 4)) { /* ws:// */
*sqs = 1;
return 5;
}
- else if (!ap_casecmpstrn(uri, "ss://", 5)) { /* wss:// */
+ else if (!ap_cstr_casecmpn(uri, "ss://", 5)) { /* wss:// */
*sqs = 1;
return 6;
}
* [dn ["?" [attributes] ["?" [scope]
* ["?" [filter] ["?" extensions]]]]]]
*/
- if (!ap_casecmpstrn(uri, "ldap", 4)) {
+ if (!ap_cstr_casecmpn(uri, "ldap", 4)) {
char *token[5];
int c = 0;
cp = (char *)ap_http_scheme(r);
l = strlen(cp);
if ( strlen(r->filename) > l+3
- && ap_casecmpstrn(r->filename, cp, l) == 0
+ && ap_cstr_casecmpn(r->filename, cp, l) == 0
&& r->filename[l] == ':'
&& r->filename[l+1] == '/'
&& r->filename[l+2] == '/' ) {
: NULL,
expires ? (exp_time ? exp_time : "")
: NULL,
- (secure && (!ap_casecmpstr(secure, "true")
+ (secure && (!ap_cstr_casecmp(secure, "true")
|| !strcmp(secure, "1")
- || !ap_casecmpstr(secure,
+ || !ap_cstr_casecmp(secure,
"secure"))) ?
"; secure" : NULL,
- (httponly && (!ap_casecmpstr(httponly, "true")
+ (httponly && (!ap_cstr_casecmp(httponly, "true")
|| !strcmp(httponly, "1")
- || !ap_casecmpstr(httponly,
+ || !ap_cstr_casecmp(httponly,
"HttpOnly"))) ?
"; HttpOnly" : NULL,
NULL);
}
if (!ap_os_is_path_absolute(cmd->pool, map)) {
- if (ap_casecmpstr(map, "none")) {
+ if (ap_cstr_casecmp(map, "none")) {
return "format string must be an absolute path, or 'none'";
}
*pmap = NULL;
while (apr_isspace(*l))
++l;
- if (!ap_casecmpstr(w, "Content-type")) {
+ if (!ap_cstr_casecmp(w, "Content-type")) {
char *tmp;
/* Nuke trailing whitespace */
ap_content_type_tolower(tmp);
ap_set_content_type(r, tmp);
}
- else if (!ap_casecmpstr(w, "Status")) {
+ else if (!ap_cstr_casecmp(w, "Status")) {
sscanf(l, "%d", &r->status);
r->status_line = apr_pstrdup(r->pool, l);
}
}
break;
case hdr_set:
- if (!ap_casecmpstr(hdr->header, "Content-Type")) {
+ if (!ap_cstr_casecmp(hdr->header, "Content-Type")) {
ap_set_content_type(r, process_tags(hdr, r));
}
apr_table_setn(headers, hdr->header, process_tags(hdr, r));
break;
case hdr_setifempty:
if (NULL == apr_table_get(headers, hdr->header)) {
- if (!ap_casecmpstr(hdr->header, "Content-Type")) {
+ if (!ap_cstr_casecmp(hdr->header, "Content-Type")) {
ap_set_content_type(r, process_tags(hdr, r));
}
apr_table_setn(headers, hdr->header, process_tags(hdr, r));
break;
case hdr_edit:
case hdr_edit_r:
- if (!ap_casecmpstr(hdr->header, "Content-Type") && r->content_type) {
+ if (!ap_cstr_casecmp(hdr->header, "Content-Type") && r->content_type) {
const char *repl = process_regexp(hdr, r->content_type, r);
if (repl == NULL)
return 0;
}
/* Set-Cookie need additional processing */
- if (!ap_casecmpstr(stringname, "Set-Cookie")) {
+ if (!ap_cstr_casecmp(stringname, "Set-Cookie")) {
value = ap_proxy_cookie_reverse_map(r, dconf, value);
}
/* Location, Content-Location, URI and Destination need additional
* processing */
- else if (!ap_casecmpstr(stringname, "Location")
- || !ap_casecmpstr(stringname, "Content-Location")
- || !ap_casecmpstr(stringname, "URI")
- || !ap_casecmpstr(stringname, "Destination"))
+ else if (!ap_cstr_casecmp(stringname, "Location")
+ || !ap_cstr_casecmp(stringname, "Content-Location")
+ || !ap_cstr_casecmp(stringname, "URI")
+ || !ap_cstr_casecmp(stringname, "Destination"))
{
value = ap_proxy_location_reverse_map(r, dconf, value);
}
apr_table_add(r->headers_out, stringname, value);
/* Content-type needs an additional handling */
- if (ap_casecmpstr(stringname, "Content-Type") == 0) {
+ if (ap_cstr_casecmp(stringname, "Content-Type") == 0) {
/* add corresponding filter */
ap_set_content_type(r, apr_pstrdup(r->pool, value));
ap_log_rerror(APLOG_MARK, APLOG_TRACE5, 0, r,
if (conf->req && r->parsed_uri.scheme) {
/* but it might be something vhosted */
if (!(r->parsed_uri.hostname
- && !ap_casecmpstr(r->parsed_uri.scheme, ap_http_scheme(r))
+ && !ap_cstr_casecmp(r->parsed_uri.scheme, ap_http_scheme(r))
&& ap_matches_request_vhost(r, r->parsed_uri.hostname,
(apr_port_t)(r->parsed_uri.port_str ? r->parsed_uri.port
: ap_default_port(r))))) {
/* If host does contain a dot already, or it is "localhost", decline */
if (strchr(r->parsed_uri.hostname, '.') != NULL /* has domain, or IPv4 literal */
|| strchr(r->parsed_uri.hostname, ':') != NULL /* IPv6 literal */
- || ap_casecmpstr(r->parsed_uri.hostname, "localhost") == 0)
+ || ap_cstr_casecmp(r->parsed_uri.hostname, "localhost") == 0)
return DECLINED; /* host name has a dot already */
ref = apr_table_get(r->headers_in, "Referer");
if (strcmp(ents[i].scheme, "*") == 0 ||
(ents[i].use_regex &&
ap_regexec(ents[i].regexp, url, 0, NULL, 0) == 0) ||
- (p2 == NULL && ap_casecmpstr(scheme, ents[i].scheme) == 0) ||
+ (p2 == NULL && ap_cstr_casecmp(scheme, ents[i].scheme) == 0) ||
(p2 != NULL &&
- ap_casecmpstrn(url, ents[i].scheme,
+ ap_cstr_casecmpn(url, ents[i].scheme,
strlen(ents[i].scheme)) == 0)) {
/* handle the scheme */
* We could be passed a URL during the config stage that contains
* the UDS path... ignore it
*/
- if (!ap_casecmpstrn(url, "unix:", 5) &&
+ if (!ap_cstr_casecmpn(url, "unix:", 5) &&
((ptr = ap_strchr_c(url, '|')) != NULL)) {
/* move past the 'unix:...|' UDS path info */
const char *ret, *c;
apr_port_t port, def_port;
/* ap_port_of_scheme() */
- if (ap_casecmpstrn(url, "ajp:", 4) == 0) {
+ if (ap_cstr_casecmpn(url, "ajp:", 4) == 0) {
url += 4;
}
else {
/* read the first bloc of data */
input_brigade = apr_brigade_create(p, r->connection->bucket_alloc);
tenc = apr_table_get(r->headers_in, "Transfer-Encoding");
- if (tenc && (ap_casecmpstr(tenc, "chunked") == 0)) {
+ if (tenc && (ap_cstr_casecmp(tenc, "chunked") == 0)) {
/* The AJP protocol does not want body data yet */
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00870) "request is chunked");
} else {
apr_pool_t *p = r->pool;
apr_uri_t *uri;
- if (ap_casecmpstrn(url, "ajp:", 4) != 0) {
+ if (ap_cstr_casecmpn(url, "ajp:", 4) != 0) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00894) "declining URL %s", url);
return DECLINED;
}
apr_port_t port = 0;
/* TODO: offset of BALANCER_PREFIX ?? */
- if (ap_casecmpstrn(url, "balancer:", 9) == 0) {
+ if (ap_cstr_casecmpn(url, "balancer:", 9) == 0) {
url += 9;
}
else {
if ((val = apr_table_get(params, "w_hm"))) {
proxy_hcmethods_t *method = proxy_hcmethods;
for (; method->name; method++) {
- if (!ap_casecmpstr(method->name, val) && method->implemented)
+ if (!ap_cstr_casecmp(method->name, val) && method->implemented)
wsel->s->method = method->method;
}
}
ap_rprintf(r, " <httpd:lbset>%d</httpd:lbset>\n",
worker->s->lbset);
/* End proxy_worker_stat */
- if (!ap_casecmpstr(worker->s->scheme, "ajp")) {
+ if (!ap_cstr_casecmp(worker->s->scheme, "ajp")) {
ap_rputs(" <httpd:flushpackets>", r);
switch (worker->s->flush_packets) {
case flush_off:
fcgi_req_config_t *rconf = NULL;
const char *pathinfo_type = NULL;
- if (ap_casecmpstrn(url, "fcgi:", 5) == 0) {
+ if (ap_cstr_casecmpn(url, "fcgi:", 5) == 0) {
url += 5;
}
else {
"url: %s proxyname: %s proxyport: %d",
url, proxyname, proxyport);
- if (ap_casecmpstrn(url, "fcgi:", 5) != 0) {
+ if (ap_cstr_casecmpn(url, "fcgi:", 5) != 0) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(01077) "declining URL %s", url);
return DECLINED;
}
{
const char *path;
- if (ap_casecmpstrn(url, "fd://", 5) == 0) {
+ if (ap_cstr_casecmpn(url, "fd://", 5) == 0) {
url += 5;
}
else {
apr_socket_t *sock;
apr_socket_t *clientsock;
- if (ap_casecmpstrn(url, "fd://", 5) == 0) {
+ if (ap_cstr_casecmpn(url, "fd://", 5) == 0) {
url += 5;
}
else {
apr_port_t port, def_port;
/* */
- if (ap_casecmpstrn(url, "ftp:", 4) == 0) {
+ if (ap_cstr_casecmpn(url, "ftp:", 4) == 0) {
url += 4;
}
else {
path = apr_uri_unparse(p, &f->r->parsed_uri, APR_URI_UNP_OMITSITEPART | APR_URI_UNP_OMITQUERY);
/* If path began with /%2f, change the basedir */
- if (ap_casecmpstrn(path, "/%2f", 4) == 0) {
+ if (ap_cstr_casecmpn(path, "/%2f", 4) == 0) {
basedir = "/%2f";
}
proxyhost);
return DECLINED; /* proxy connections are via HTTP */
}
- if (ap_casecmpstrn(url, "ftp:", 4)) {
+ if (ap_cstr_casecmpn(url, "ftp:", 4)) {
ap_log_rerror(APLOG_MARK, APLOG_TRACE3, 0, r,
"declining URL %s - not ftp:", url);
return DECLINED; /* only interested in FTP */
* still smaller that the URL is logged regularly.
*/
if ((password = apr_table_get(r->headers_in, "Authorization")) != NULL
- && ap_casecmpstr(ap_getword(r->pool, &password, ' '), "Basic") == 0
+ && ap_cstr_casecmp(ap_getword(r->pool, &password, ' '), "Basic") == 0
&& (password = ap_pbase64decode(r->pool, password))[0] != ':') {
/* Check the decoded string for special characters. */
if (!ftp_check_string(password)) {
/* Special handling for leading "%2f": this enforces a "cwd /"
* out of the $HOME directory which was the starting point after login
*/
- if (ap_casecmpstrn(path, "%2f", 3) == 0) {
+ if (ap_cstr_casecmpn(path, "%2f", 3) == 0) {
path += 3;
while (*path == '/') /* skip leading '/' (after root %2f) */
++path;
hc_template_t *template;
template = (hc_template_t *)ctx->templates->elts;
for (ival = 0; ival < ctx->templates->nelts; ival++, template++) {
- if (!ap_casecmpstr(template->name, val)) {
+ if (!ap_cstr_casecmp(template->name, val)) {
if (worker) {
worker->s->method = template->method;
worker->s->interval = template->interval;
else if (!strcasecmp(key, "hcmethod")) {
proxy_hcmethods_t *method = proxy_hcmethods;
for (; method->name; method++) {
- if (!ap_casecmpstr(val, method->name)) {
+ if (!ap_cstr_casecmp(val, method->name)) {
if (!method->implemented) {
return apr_psprintf(p, "Health check method %s not (yet) implemented",
val);
{
char *var = (char *)data;
- if (var && *var && ctx->r && ap_casecmpstr(var, "BODY") == 0) {
+ if (var && *var && ctx->r && ap_cstr_casecmp(var, "BODY") == 0) {
return hc_get_body(ctx->r);
}
return NULL;
{
char *var = (char *)arg;
- if (var && *var && ctx->r && ap_casecmpstr(var, "BODY") == 0) {
+ if (var && *var && ctx->r && ap_cstr_casecmp(var, "BODY") == 0) {
return hc_get_body(ctx->r);
}
return NULL;
apr_port_t port, def_port;
/* ap_port_of_scheme() */
- if (ap_casecmpstrn(url, "http:", 5) == 0) {
+ if (ap_cstr_casecmpn(url, "http:", 5) == 0) {
url += 5;
scheme = "http";
}
- else if (ap_casecmpstrn(url, "https:", 6) == 0) {
+ else if (ap_cstr_casecmpn(url, "https:", 6) == 0) {
url += 6;
scheme = "https";
}
* encoding has been done by the extensions' handler, and
* do not modify add_te_chunked's logic
*/
- if (*old_te_val && ap_casecmpstr(*old_te_val, "chunked") != 0) {
+ if (*old_te_val && ap_cstr_casecmp(*old_te_val, "chunked") != 0) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01093)
"%s Transfer-Encoding is not supported", *old_te_val);
return HTTP_INTERNAL_SERVER_ERROR;
};
int i;
for (i = 0; date_hdrs[i]; ++i) {
- if (!ap_casecmpstr(date_hdrs[i], key)) {
+ if (!ap_cstr_casecmp(date_hdrs[i], key)) {
apr_table_add(r->headers_out, key,
date_canon(r->pool, value));
return;
}
}
for (i = 0; transform_hdrs[i].name; ++i) {
- if (!ap_casecmpstr(transform_hdrs[i].name, key)) {
+ if (!ap_cstr_casecmp(transform_hdrs[i].name, key)) {
apr_table_add(r->headers_out, key,
(*transform_hdrs[i].func)(r, c, value));
return;
const char *err, *path;
apr_port_t port, def_port;
- if (ap_casecmpstrn(url, SCHEME "://", sizeof(SCHEME) + 2)) {
+ if (ap_cstr_casecmpn(url, SCHEME "://", sizeof(SCHEME) + 2)) {
return DECLINED;
}
url += sizeof(SCHEME); /* Keep slashes */
if (location && *location == '/') {
scgi_request_config *req_conf = apr_palloc(r->pool,
sizeof(*req_conf));
- if (ap_casecmpstr(location_header, "Location")) {
+ if (ap_cstr_casecmp(location_header, "Location")) {
if (err) {
apr_table_unset(r->err_headers_out, location_header);
}
apr_uri_t *uri;
char dummy;
- if (ap_casecmpstrn(url, SCHEME "://", sizeof(SCHEME) + 2)) {
+ if (ap_cstr_casecmpn(url, SCHEME "://", sizeof(SCHEME) + 2)) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(00865)
"declining URL %s", url);
return DECLINED;
apr_port_t port, def_port;
/* ap_port_of_scheme() */
- if (ap_casecmpstrn(url, "ws:", 3) == 0) {
+ if (ap_cstr_casecmpn(url, "ws:", 3) == 0) {
url += 3;
scheme = "ws:";
def_port = apr_uri_port_of_scheme("http");
}
- else if (ap_casecmpstrn(url, "wss:", 4) == 0) {
+ else if (ap_cstr_casecmpn(url, "wss:", 4) == 0) {
url += 4;
scheme = "wss:";
def_port = apr_uri_port_of_scheme("https");
apr_uri_t *uri;
int is_ssl = 0;
- if (ap_casecmpstrn(url, "wss:", 4) == 0) {
+ if (ap_cstr_casecmpn(url, "wss:", 4) == 0) {
scheme = "WSS";
is_ssl = 1;
}
- else if (ap_casecmpstrn(url, "ws:", 3) == 0) {
+ else if (ap_cstr_casecmpn(url, "ws:", 3) == 0) {
scheme = "WS";
}
else {
}
upgrade = apr_table_get(r->headers_in, "Upgrade");
- if (!upgrade || ap_casecmpstr(upgrade, "WebSocket") != 0) {
+ if (!upgrade || ap_cstr_casecmp(upgrade, "WebSocket") != 0) {
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02900)
"declining URL %s (not WebSocket)", url);
return DECLINED;
switch (key[0]) {
case 'a':
case 'A':
- if (ap_casecmpstr("Accept-Encoding", key) == 0) {
+ if (ap_cstr_casecmp("Accept-Encoding", key) == 0) {
return 0;
}
break;
case 'c':
case 'C':
- if (ap_casecmpstr("Connection", key) == 0) {
+ if (ap_cstr_casecmp("Connection", key) == 0) {
return 0;
}
break;
case 'h':
case 'H':
- if (ap_casecmpstr("Host", key) == 0) {
+ if (ap_cstr_casecmp("Host", key) == 0) {
return 0;
}
break;
case 'k':
case 'K':
- if (ap_casecmpstr("Keep-Alive", key) == 0) {
+ if (ap_cstr_casecmp("Keep-Alive", key) == 0) {
return 0;
}
break;
case 't':
case 'T':
- if (ap_casecmpstr("TE", key) == 0) {
+ if (ap_cstr_casecmp("TE", key) == 0) {
return 0;
}
- if (ap_casecmpstr("Trailer", key) == 0) {
+ if (ap_cstr_casecmp("Trailer", key) == 0) {
return 0;
}
break;
case 'u':
case 'U':
- if (ap_casecmpstr("Upgrade", key) == 0) {
+ if (ap_cstr_casecmp("Upgrade", key) == 0) {
return 0;
}
break;
switch (key[0]) {
case 'c':
case 'C':
- if (ap_casecmpstr("Content-Type", key) == 0) {
+ if (ap_cstr_casecmp("Content-Type", key) == 0) {
ap_set_content_type(ctx->r, value);
done = 1;
break;
}
- else if (ap_casecmpstr("Connection", key) == 0) {
+ else if (ap_cstr_casecmp("Connection", key) == 0) {
done = 1;
break;
}
- else if (ap_casecmpstr("Content-Encoding", key) == 0) {
+ else if (ap_cstr_casecmp("Content-Encoding", key) == 0) {
done = 1;
break;
}
- else if (ap_casecmpstr("Content-Length", key) == 0) {
+ else if (ap_cstr_casecmp("Content-Length", key) == 0) {
done = 1;
break;
}
break;
case 't':
case 'T':
- if (ap_casecmpstr("Transfer-Encoding", key) == 0) {
+ if (ap_cstr_casecmp("Transfer-Encoding", key) == 0) {
done = 1;
break;
}
baton->done_headers = 0;
baton->keep_reading = 1;
- if (ap_casecmpstr(conf->url.scheme, "https") == 0) {
+ if (ap_cstr_casecmp(conf->url.scheme, "https") == 0) {
baton->want_ssl = 1;
}
else {
{
if (!i)
i = sizeof(BALANCER_PREFIX)-1;
- return (!ap_casecmpstrn(name, BALANCER_PREFIX, i));
+ return (!ap_cstr_casecmpn(name, BALANCER_PREFIX, i));
}
if (ptr) {
*ptr = '\0';
rv = apr_uri_parse(p, url, &urisock);
- if (rv == APR_SUCCESS && !ap_casecmpstr(urisock.scheme, "unix")) {
+ if (rv == APR_SUCCESS && !ap_cstr_casecmp(urisock.scheme, "unix")) {
sockpath = ap_runtime_dir_relative(p, urisock.path);;
url = ptr+1; /* so we get the scheme for the uds */
}
ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, APLOGNO(02807)
"Removing header '%s' listed in Connection header",
name);
- if (!ap_casecmpstr(name, "close")) {
+ if (!ap_cstr_casecmp(name, "close")) {
closed = 1;
}
apr_table_unset(headers, name);
/* Add the Expect header if not already there. */
if (((val = apr_table_get(r->headers_in, "Expect")) == NULL)
- || (ap_casecmpstr(val, "100-Continue") != 0 /* fast path */
+ || (ap_cstr_casecmp(val, "100-Continue") != 0 /* fast path */
&& !ap_find_token(r->pool, val, "100-Continue"))) {
apr_table_mergen(r->headers_in, "Expect", "100-Continue");
}
|| headers_in[counter].val == NULL
/* Already sent */
- || !ap_casecmpstr(headers_in[counter].key, "Host")
+ || !ap_cstr_casecmp(headers_in[counter].key, "Host")
/* Clear out hop-by-hop request headers not to send
* RFC2616 13.5.1 says we should strip these headers
*/
- || !ap_casecmpstr(headers_in[counter].key, "Keep-Alive")
- || !ap_casecmpstr(headers_in[counter].key, "TE")
- || !ap_casecmpstr(headers_in[counter].key, "Trailer")
- || !ap_casecmpstr(headers_in[counter].key, "Upgrade")
+ || !ap_cstr_casecmp(headers_in[counter].key, "Keep-Alive")
+ || !ap_cstr_casecmp(headers_in[counter].key, "TE")
+ || !ap_cstr_casecmp(headers_in[counter].key, "Trailer")
+ || !ap_cstr_casecmp(headers_in[counter].key, "Upgrade")
) {
continue;
* If we have used it then MAYBE: RFC2616 says we MAY propagate it.
* So let's make it configurable by env.
*/
- if (!ap_casecmpstr(headers_in[counter].key,"Proxy-Authorization")) {
+ if (!ap_cstr_casecmp(headers_in[counter].key,"Proxy-Authorization")) {
if (r->user != NULL) { /* we've authenticated */
if (!apr_table_get(r->subprocess_env, "Proxy-Chain-Auth")) {
continue;
/* Skip Transfer-Encoding and Content-Length for now.
*/
- if (!ap_casecmpstr(headers_in[counter].key, "Transfer-Encoding")) {
+ if (!ap_cstr_casecmp(headers_in[counter].key, "Transfer-Encoding")) {
*old_te_val = headers_in[counter].val;
continue;
}
- if (!ap_casecmpstr(headers_in[counter].key, "Content-Length")) {
+ if (!ap_cstr_casecmp(headers_in[counter].key, "Content-Length")) {
*old_cl_val = headers_in[counter].val;
continue;
}
/* for sub-requests, ignore freshness/expiry headers */
if (r->main) {
- if ( !ap_casecmpstr(headers_in[counter].key, "If-Match")
- || !ap_casecmpstr(headers_in[counter].key, "If-Modified-Since")
- || !ap_casecmpstr(headers_in[counter].key, "If-Range")
- || !ap_casecmpstr(headers_in[counter].key, "If-Unmodified-Since")
- || !ap_casecmpstr(headers_in[counter].key, "If-None-Match")) {
+ if ( !ap_cstr_casecmp(headers_in[counter].key, "If-Match")
+ || !ap_cstr_casecmp(headers_in[counter].key, "If-Modified-Since")
+ || !ap_cstr_casecmp(headers_in[counter].key, "If-Range")
+ || !ap_cstr_casecmp(headers_in[counter].key, "If-Unmodified-Since")
+ || !ap_cstr_casecmp(headers_in[counter].key, "If-None-Match")) {
continue;
}
}
} else {
proxy_schemes_t *pscheme;
for (pscheme = pschemes; pscheme->name != NULL; ++pscheme) {
- if (ap_casecmpstr(scheme, pscheme->name) == 0) {
+ if (ap_cstr_casecmp(scheme, pscheme->name) == 0) {
return pscheme->default_port;
}
}
return NULL;
}
- if (ap_casecmpstr(u->scheme, "http") != 0) {
+ if (ap_cstr_casecmp(u->scheme, "http") != 0) {
ap_log_cerror(APLOG_MARK, APLOG_DEBUG, rv, c, APLOGNO(01920)
"cannot handle OCSP responder URI '%s'", s);
return NULL;
char *header = apr_pstrdup(r->pool, pragma_header);
const char *token = apr_strtok(header, ", ", &last);
while (token) {
- if (!ap_casecmpstr(token, "no-cache")) {
+ if (!ap_cstr_casecmp(token, "no-cache")) {
fail = 1;
}
token = apr_strtok(NULL, ", ", &last);
switch (token[0]) {
case 'n':
case 'N': {
- if (!ap_casecmpstrn(token, "no-cache", 8)) {
+ if (!ap_cstr_casecmpn(token, "no-cache", 8)) {
if (token[8] == '=') {
}
else if (!token[8]) {
}
break;
}
- else if (!ap_casecmpstr(token, "no-store")) {
+ else if (!ap_cstr_casecmp(token, "no-store")) {
fail = 1;
}
break;
}
case 'p':
case 'P': {
- if (!ap_casecmpstrn(token, "private", 7)) {
+ if (!ap_cstr_casecmpn(token, "private", 7)) {
if (token[7] == '=') {
}
else if (!token[7]) {
switch (token[0]) {
case 'm':
case 'M': {
- if (!ap_casecmpstrn(token, "max-age", 7)) {
+ if (!ap_cstr_casecmpn(token, "max-age", 7)) {
if (token[7] == '=') {
max_age = 1;
max_age_value = apr_atoi64(token + 8);
}
case 's':
case 'S': {
- if (!ap_casecmpstrn(token, "s-maxage", 8)) {
+ if (!ap_cstr_casecmpn(token, "s-maxage", 8)) {
if (token[8] == '=') {
s_maxage = 1;
s_maxage_value = apr_atoi64(token + 9);
*/
w = ap_getword_conf(parms->temp_pool, &args);
- if (*w == '\0' || (ap_casecmpstr(w, "on") && ap_casecmpstr(w, "off")))
+ if (*w == '\0' || (ap_cstr_casecmp(w, "on") && ap_cstr_casecmp(w, "off")))
return apr_pstrcat(parms->pool, cmd->name, " must be On or Off",
NULL);
- return cmd->AP_FLAG(parms, mconfig, ap_casecmpstr(w, "off") != 0);
+ return cmd->AP_FLAG(parms, mconfig, ap_cstr_casecmp(w, "off") != 0);
default:
return apr_pstrcat(parms->pool, cmd->name,
const command_rec *cmds)
{
while (cmds->name) {
- if (!ap_casecmpstr(name, cmds->name))
+ if (!ap_cstr_casecmp(name, cmds->name))
return cmds;
++cmds;
*bracket = '\0';
- if (ap_casecmpstr(cmd_name + 2,
+ if (ap_cstr_casecmp(cmd_name + 2,
(*curr_parent)->directive + 1) != 0) {
parms->err_directive = newdir;
return apr_pstrcat(p, "Expected </",
while ((rc = ap_varbuf_cfg_getline(&vb, parms->config_file, max_len))
== APR_SUCCESS) {
if (!memcmp(vb.buf, "</", 2)
- && (ap_casecmpstr(vb.buf + 2, bracket) == 0)
+ && (ap_cstr_casecmp(vb.buf + 2, bracket) == 0)
&& (*curr_parent == NULL)) {
break;
}
if (cmd_name[1] == '/') {
cmd_name[strlen(cmd_name) - 1] = '\0';
- if (ap_casecmpstr(cmd_name + 2, directive + 1) != 0) {
+ if (ap_cstr_casecmp(cmd_name + 2, directive + 1) != 0) {
return apr_pstrcat(cmd->pool, "Expected </",
directive + 1, "> but saw ",
cmd_name, ">", NULL);
while (current != NULL) {
if (current->first_child != NULL)
count += count_directives_sub(directive, current->first_child);
- if (ap_casecmpstr(current->directive, directive) == 0)
+ if (ap_cstr_casecmp(current->directive, directive) == 0)
count++;
current = current->next;
}
dirp = dirp->parent;
/* ### it would be nice to have atom-ized directives */
- if (ap_casecmpstr(dirp->directive, what) == 0)
+ if (ap_cstr_casecmp(dirp->directive, what) == 0)
return dirp;
}
static const char *set_define(cmd_parms *cmd, void *dummy,
const char *name, const char *value)
{
- if (cmd->parent && ap_casecmpstr(cmd->parent->directive, "<VirtualHost")) {
+ if (cmd->parent && ap_cstr_casecmp(cmd->parent->directive, "<VirtualHost")) {
return apr_pstrcat(cmd->pool, cmd->cmd->name, " is not valid in ",
cmd->parent->directive, " context", NULL);
}
{
int i;
char **defines;
- if (cmd->parent && ap_casecmpstr(cmd->parent->directive, "<VirtualHost")) {
+ if (cmd->parent && ap_cstr_casecmp(cmd->parent->directive, "<VirtualHost")) {
return apr_pstrcat(cmd->pool, cmd->cmd->name, " is not valid in ",
cmd->parent->directive, " context", NULL);
}
{
core_dir_config *d = d_;
- if (!ap_casecmpstr(arg, "Off")) {
+ if (!ap_cstr_casecmp(arg, "Off")) {
d->add_default_charset = ADD_DEFAULT_CHARSET_OFF;
}
- else if (!ap_casecmpstr(arg, "On")) {
+ else if (!ap_cstr_casecmp(arg, "On")) {
d->add_default_charset = ADD_DEFAULT_CHARSET_ON;
d->add_default_charset_name = DEFAULT_ADD_DEFAULT_CHARSET_NAME;
}
conf->response_code_exprs = apr_hash_make(cmd->pool);
}
- if (ap_casecmpstr(msg, "default") == 0) {
+ if (ap_cstr_casecmp(msg, "default") == 0) {
/* special case: ErrorDocument 404 default restores the
* canned server error response
*/
first = 0;
}
- if (!ap_casecmpstr(w, "Indexes")) {
+ if (!ap_cstr_casecmp(w, "Indexes")) {
opt = OPT_INDEXES;
}
- else if (!ap_casecmpstr(w, "Includes")) {
+ else if (!ap_cstr_casecmp(w, "Includes")) {
/* If Includes is permitted, both Includes and
* IncludesNOEXEC may be changed. */
opt = (OPT_INCLUDES | OPT_INC_WITH_EXEC);
}
- else if (!ap_casecmpstr(w, "IncludesNOEXEC")) {
+ else if (!ap_cstr_casecmp(w, "IncludesNOEXEC")) {
opt = OPT_INCLUDES;
}
- else if (!ap_casecmpstr(w, "FollowSymLinks")) {
+ else if (!ap_cstr_casecmp(w, "FollowSymLinks")) {
opt = OPT_SYM_LINKS;
}
- else if (!ap_casecmpstr(w, "SymLinksIfOwnerMatch")) {
+ else if (!ap_cstr_casecmp(w, "SymLinksIfOwnerMatch")) {
opt = OPT_SYM_OWNER;
}
- else if (!ap_casecmpstr(w, "ExecCGI")) {
+ else if (!ap_cstr_casecmp(w, "ExecCGI")) {
opt = OPT_EXECCGI;
}
- else if (!ap_casecmpstr(w, "MultiViews")) {
+ else if (!ap_cstr_casecmp(w, "MultiViews")) {
opt = OPT_MULTI;
}
- else if (!ap_casecmpstr(w, "RunScripts")) { /* AI backcompat. Yuck */
+ else if (!ap_cstr_casecmp(w, "RunScripts")) { /* AI backcompat. Yuck */
opt = OPT_MULTI|OPT_EXECCGI;
}
- else if (!ap_casecmpstr(w, "None")) {
+ else if (!ap_cstr_casecmp(w, "None")) {
opt = OPT_NONE;
}
- else if (!ap_casecmpstr(w, "All")) {
+ else if (!ap_cstr_casecmp(w, "All")) {
opt = OPT_ALL;
}
else {
*v++ = '\0';
}
- if (!ap_casecmpstr(w, "Limit")) {
+ if (!ap_cstr_casecmp(w, "Limit")) {
d->override |= OR_LIMIT;
}
- else if (!ap_casecmpstr(k, "Options")) {
+ else if (!ap_cstr_casecmp(k, "Options")) {
d->override |= OR_OPTIONS;
if (v)
set_allow_opts(cmd, &(d->override_opts), v);
else
d->override_opts = OPT_ALL;
}
- else if (!ap_casecmpstr(w, "FileInfo")) {
+ else if (!ap_cstr_casecmp(w, "FileInfo")) {
d->override |= OR_FILEINFO;
}
- else if (!ap_casecmpstr(w, "AuthConfig")) {
+ else if (!ap_cstr_casecmp(w, "AuthConfig")) {
d->override |= OR_AUTHCFG;
}
- else if (!ap_casecmpstr(w, "Indexes")) {
+ else if (!ap_cstr_casecmp(w, "Indexes")) {
d->override |= OR_INDEXES;
}
- else if (!ap_casecmpstr(w, "Nonfatal")) {
- if (!ap_casecmpstr(v, "Override")) {
+ else if (!ap_cstr_casecmp(w, "Nonfatal")) {
+ if (!ap_cstr_casecmp(v, "Override")) {
d->override |= NONFATAL_OVERRIDE;
}
- else if (!ap_casecmpstr(v, "Unknown")) {
+ else if (!ap_cstr_casecmp(v, "Unknown")) {
d->override |= NONFATAL_UNKNOWN;
}
- else if (!ap_casecmpstr(v, "All")) {
+ else if (!ap_cstr_casecmp(v, "All")) {
d->override |= NONFATAL_ALL;
}
}
- else if (!ap_casecmpstr(w, "None")) {
+ else if (!ap_cstr_casecmp(w, "None")) {
d->override = OR_NONE;
}
- else if (!ap_casecmpstr(w, "All")) {
+ else if (!ap_cstr_casecmp(w, "All")) {
d->override = OR_ALL;
}
else {
d->override_list = apr_table_make(cmd->pool, argc);
for (i = 0; i < argc; i++) {
- if (!ap_casecmpstr(argv[i], "None")) {
+ if (!ap_cstr_casecmp(argv[i], "None")) {
if (argc != 1) {
return "'None' not allowed with other directives in "
"AllowOverrideList";
return "Either all Options must start with + or -, or no Option may.";
}
- if (!ap_casecmpstr(w, "Indexes")) {
+ if (!ap_cstr_casecmp(w, "Indexes")) {
opt = OPT_INDEXES;
}
- else if (!ap_casecmpstr(w, "Includes")) {
+ else if (!ap_cstr_casecmp(w, "Includes")) {
opt = (OPT_INCLUDES | OPT_INC_WITH_EXEC);
}
- else if (!ap_casecmpstr(w, "IncludesNOEXEC")) {
+ else if (!ap_cstr_casecmp(w, "IncludesNOEXEC")) {
opt = OPT_INCLUDES;
}
- else if (!ap_casecmpstr(w, "FollowSymLinks")) {
+ else if (!ap_cstr_casecmp(w, "FollowSymLinks")) {
opt = OPT_SYM_LINKS;
}
- else if (!ap_casecmpstr(w, "SymLinksIfOwnerMatch")) {
+ else if (!ap_cstr_casecmp(w, "SymLinksIfOwnerMatch")) {
opt = OPT_SYM_OWNER;
}
- else if (!ap_casecmpstr(w, "ExecCGI")) {
+ else if (!ap_cstr_casecmp(w, "ExecCGI")) {
opt = OPT_EXECCGI;
}
- else if (!ap_casecmpstr(w, "MultiViews")) {
+ else if (!ap_cstr_casecmp(w, "MultiViews")) {
opt = OPT_MULTI;
}
- else if (!ap_casecmpstr(w, "RunScripts")) { /* AI backcompat. Yuck */
+ else if (!ap_cstr_casecmp(w, "RunScripts")) { /* AI backcompat. Yuck */
opt = OPT_MULTI|OPT_EXECCGI;
}
- else if (!ap_casecmpstr(w, "None")) {
+ else if (!ap_cstr_casecmp(w, "None")) {
if (!first) {
return "'Options None' must be the first Option given.";
}
opt = OPT_NONE;
all_none = 1;
}
- else if (!ap_casecmpstr(w, "All")) {
+ else if (!ap_cstr_casecmp(w, "All")) {
if (!first) {
return "'Options All' must be the first option given.";
}
static const char *set_default_type(cmd_parms *cmd, void *d_,
const char *arg)
{
- if (ap_casecmpstr(arg, "off") != 0 && ap_casecmpstr(arg, "none") != 0) {
+ if (ap_cstr_casecmp(arg, "off") != 0 && ap_cstr_casecmp(arg, "none") != 0) {
ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server, APLOGNO(00117)
"Ignoring deprecated use of DefaultType in line %d of %s.",
cmd->directive->line_num, cmd->directive->filename);
}
}
- if (ap_casecmpstr(token, "None") == 0) {
+ if (ap_cstr_casecmp(token, "None") == 0) {
if (action != '*') {
valid = 0;
}
explicit = 1;
}
}
- else if (ap_casecmpstr(token, "All") == 0) {
+ else if (ap_cstr_casecmp(token, "All") == 0) {
if (action != '*') {
valid = 0;
}
cfg->etag_bits = bit = ETAG_ALL;
}
}
- else if (ap_casecmpstr(token, "Size") == 0) {
+ else if (ap_cstr_casecmp(token, "Size") == 0) {
bit = ETAG_SIZE;
}
- else if ((ap_casecmpstr(token, "LMTime") == 0)
- || (ap_casecmpstr(token, "MTime") == 0)
- || (ap_casecmpstr(token, "LastModified") == 0)) {
+ else if ((ap_cstr_casecmp(token, "LMTime") == 0)
+ || (ap_cstr_casecmp(token, "MTime") == 0)
+ || (ap_cstr_casecmp(token, "LastModified") == 0)) {
bit = ETAG_MTIME;
}
- else if (ap_casecmpstr(token, "INode") == 0) {
+ else if (ap_cstr_casecmp(token, "INode") == 0) {
bit = ETAG_INODE;
}
else {
{
core_dir_config *d = d_;
- if (ap_casecmpstr(arg, "on") == 0) {
+ if (ap_cstr_casecmp(arg, "on") == 0) {
d->enable_mmap = ENABLE_MMAP_ON;
}
- else if (ap_casecmpstr(arg, "off") == 0) {
+ else if (ap_cstr_casecmp(arg, "off") == 0) {
d->enable_mmap = ENABLE_MMAP_OFF;
}
else {
{
core_dir_config *d = d_;
- if (ap_casecmpstr(arg, "on") == 0) {
+ if (ap_cstr_casecmp(arg, "on") == 0) {
d->enable_sendfile = ENABLE_SENDFILE_ON;
}
- else if (ap_casecmpstr(arg, "off") == 0) {
+ else if (ap_cstr_casecmp(arg, "off") == 0) {
d->enable_sendfile = ENABLE_SENDFILE_OFF;
}
else {
{
core_dir_config *d = d_;
- if (ap_casecmpstr(arg, "On") == 0) {
+ if (ap_cstr_casecmp(arg, "On") == 0) {
d->server_signature = srv_sig_on;
}
- else if (ap_casecmpstr(arg, "Off") == 0) {
+ else if (ap_cstr_casecmp(arg, "Off") == 0) {
d->server_signature = srv_sig_off;
}
- else if (ap_casecmpstr(arg, "EMail") == 0) {
+ else if (ap_cstr_casecmp(arg, "EMail") == 0) {
d->server_signature = srv_sig_withmail;
}
else {
{
core_dir_config *d = d_;
- if (0 == ap_casecmpstr(arg, "on")) {
+ if (0 == ap_cstr_casecmp(arg, "on")) {
d->allow_encoded_slashes = 1;
d->decode_encoded_slashes = 1; /* for compatibility with 2.0 & 2.2 */
- } else if (0 == ap_casecmpstr(arg, "off")) {
+ } else if (0 == ap_cstr_casecmp(arg, "off")) {
d->allow_encoded_slashes = 0;
d->decode_encoded_slashes = 0;
- } else if (0 == ap_casecmpstr(arg, "nodecode")) {
+ } else if (0 == ap_cstr_casecmp(arg, "nodecode")) {
d->allow_encoded_slashes = 1;
d->decode_encoded_slashes = 0;
} else {
{
core_dir_config *d = d_;
- if (!ap_casecmpstr(arg, "on")) {
+ if (!ap_cstr_casecmp(arg, "on")) {
d->hostname_lookups = HOSTNAME_LOOKUP_ON;
}
- else if (!ap_casecmpstr(arg, "off")) {
+ else if (!ap_cstr_casecmp(arg, "off")) {
d->hostname_lookups = HOSTNAME_LOOKUP_OFF;
}
- else if (!ap_casecmpstr(arg, "double")) {
+ else if (!ap_cstr_casecmp(arg, "double")) {
d->hostname_lookups = HOSTNAME_LOOKUP_DOUBLE;
}
else {
{
core_dir_config *d = d_;
- if (ap_casecmpstr(arg, "on") == 0) {
+ if (ap_cstr_casecmp(arg, "on") == 0) {
d->accept_path_info = AP_REQ_ACCEPT_PATH_INFO;
}
- else if (ap_casecmpstr(arg, "off") == 0) {
+ else if (ap_cstr_casecmp(arg, "off") == 0) {
d->accept_path_info = AP_REQ_REJECT_PATH_INFO;
}
- else if (ap_casecmpstr(arg, "default") == 0) {
+ else if (ap_cstr_casecmp(arg, "default") == 0) {
d->accept_path_info = AP_REQ_DEFAULT_PATH_INFO;
}
else {
{
core_dir_config *d = d_;
- if (ap_casecmpstr(arg, "on") == 0) {
+ if (ap_cstr_casecmp(arg, "on") == 0) {
d->use_canonical_name = USE_CANONICAL_NAME_ON;
}
- else if (ap_casecmpstr(arg, "off") == 0) {
+ else if (ap_cstr_casecmp(arg, "off") == 0) {
d->use_canonical_name = USE_CANONICAL_NAME_OFF;
}
- else if (ap_casecmpstr(arg, "dns") == 0) {
+ else if (ap_cstr_casecmp(arg, "dns") == 0) {
d->use_canonical_name = USE_CANONICAL_NAME_DNS;
}
else {
{
core_dir_config *d = d_;
- if (ap_casecmpstr(arg, "on") == 0) {
+ if (ap_cstr_casecmp(arg, "on") == 0) {
d->use_canonical_phys_port = USE_CANONICAL_PHYS_PORT_ON;
}
- else if (ap_casecmpstr(arg, "off") == 0) {
+ else if (ap_cstr_casecmp(arg, "off") == 0) {
d->use_canonical_phys_port = USE_CANONICAL_PHYS_PORT_OFF;
}
else {
return err;
}
- if (!ap_casecmpstr(arg, "OS")) {
+ if (!ap_cstr_casecmp(arg, "OS")) {
ap_server_tokens = SrvTk_OS;
}
- else if (!ap_casecmpstr(arg, "Min") || !ap_casecmpstr(arg, "Minimal")) {
+ else if (!ap_cstr_casecmp(arg, "Min") || !ap_cstr_casecmp(arg, "Minimal")) {
ap_server_tokens = SrvTk_MINIMAL;
}
- else if (!ap_casecmpstr(arg, "Major")) {
+ else if (!ap_cstr_casecmp(arg, "Major")) {
ap_server_tokens = SrvTk_MAJOR;
}
- else if (!ap_casecmpstr(arg, "Minor") ) {
+ else if (!ap_cstr_casecmp(arg, "Minor") ) {
ap_server_tokens = SrvTk_MINOR;
}
- else if (!ap_casecmpstr(arg, "Prod") || !ap_casecmpstr(arg, "ProductOnly")) {
+ else if (!ap_cstr_casecmp(arg, "Prod") || !ap_cstr_casecmp(arg, "ProductOnly")) {
ap_server_tokens = SrvTk_PRODUCT_ONLY;
}
- else if (!ap_casecmpstr(arg, "Full")) {
+ else if (!ap_cstr_casecmp(arg, "Full")) {
ap_server_tokens = SrvTk_FULL;
}
else {
core_dir_config *conf = conf_;
int val = 0;
- if (!ap_casecmpstr(arg, "none")) {
+ if (!ap_cstr_casecmp(arg, "none")) {
val = AP_MAXRANGES_NORANGES;
}
- else if (!ap_casecmpstr(arg, "default")) {
+ else if (!ap_cstr_casecmp(arg, "default")) {
val = AP_MAXRANGES_DEFAULT;
}
- else if (!ap_casecmpstr(arg, "unlimited")) {
+ else if (!ap_cstr_casecmp(arg, "unlimited")) {
val = AP_MAXRANGES_UNLIMITED;
}
else {
core_dir_config *conf = conf_;
int val = 0;
- if (!ap_casecmpstr(arg, "none")) {
+ if (!ap_cstr_casecmp(arg, "none")) {
val = AP_MAXRANGES_NORANGES;
}
- else if (!ap_casecmpstr(arg, "default")) {
+ else if (!ap_cstr_casecmp(arg, "default")) {
val = AP_MAXRANGES_DEFAULT;
}
- else if (!ap_casecmpstr(arg, "unlimited")) {
+ else if (!ap_cstr_casecmp(arg, "unlimited")) {
val = AP_MAXRANGES_UNLIMITED;
}
else {
core_dir_config *conf = conf_;
int val = 0;
- if (!ap_casecmpstr(arg, "none")) {
+ if (!ap_cstr_casecmp(arg, "none")) {
val = AP_MAXRANGES_NORANGES;
}
- else if (!ap_casecmpstr(arg, "default")) {
+ else if (!ap_cstr_casecmp(arg, "default")) {
val = AP_MAXRANGES_DEFAULT;
}
- else if (!ap_casecmpstr(arg, "unlimited")) {
+ else if (!ap_cstr_casecmp(arg, "unlimited")) {
val = AP_MAXRANGES_UNLIMITED;
}
else {
core_server_config *conf =
ap_get_core_module_config(cmd->server->module_config);
- if (ap_casecmpstr(arg1, "on") == 0) {
+ if (ap_cstr_casecmp(arg1, "on") == 0) {
conf->trace_enable = AP_TRACE_ENABLE;
}
- else if (ap_casecmpstr(arg1, "off") == 0) {
+ else if (ap_cstr_casecmp(arg1, "off") == 0) {
conf->trace_enable = AP_TRACE_DISABLE;
}
- else if (ap_casecmpstr(arg1, "extended") == 0) {
+ else if (ap_cstr_casecmp(arg1, "extended") == 0) {
conf->trace_enable = AP_TRACE_EXTENDED;
}
else {
return err;
}
- if (ap_casecmpstr(arg, "on") == 0) {
+ if (ap_cstr_casecmp(arg, "on") == 0) {
conf->protocols_honor_order = 1;
}
- else if (ap_casecmpstr(arg, "off") == 0) {
+ else if (ap_cstr_casecmp(arg, "off") == 0) {
conf->protocols_honor_order = 0;
}
else {
return err;
}
- if (ap_casecmpstr(arg, "network") == 0) {
+ if (ap_cstr_casecmp(arg, "network") == 0) {
conf->async_filter = AP_FTYPE_NETWORK;
}
- else if (ap_casecmpstr(arg, "connection") == 0) {
+ else if (ap_cstr_casecmp(arg, "connection") == 0) {
conf->async_filter = AP_FTYPE_CONNECTION;
}
- else if (ap_casecmpstr(arg, "request") == 0) {
+ else if (ap_cstr_casecmp(arg, "request") == 0) {
conf->async_filter = 0;
}
else {
conf->error_log_format = parse_errorlog_string(cmd->pool, arg1,
&err_string, 1);
}
- else if (!ap_casecmpstr(arg1, "connection")) {
+ else if (!ap_cstr_casecmp(arg1, "connection")) {
if (!conf->error_log_conn) {
conf->error_log_conn = apr_array_make(cmd->pool, 5,
sizeof(apr_array_header_t *));
*e = parse_errorlog_string(cmd->pool, arg2, &err_string, 0);
}
}
- else if (!ap_casecmpstr(arg1, "request")) {
+ else if (!ap_cstr_casecmp(arg1, "request")) {
if (!conf->error_log_req) {
conf->error_log_req = apr_array_make(cmd->pool, 5,
sizeof(apr_array_header_t *));
* expensive to do correctly (performing a complete SSL handshake)
* or cause log spam by doing incorrectly (simply sending EOF). */
lp = ap_listeners;
- while (lp && lp->protocol && ap_casecmpstr(lp->protocol, "http") != 0) {
+ while (lp && lp->protocol && ap_cstr_casecmp(lp->protocol, "http") != 0) {
lp = lp->next;
}
if (!lp) {
return rv;
}
- if (lp->protocol && ap_casecmpstr(lp->protocol, "https") == 0) {
+ if (lp->protocol && ap_cstr_casecmp(lp->protocol, "https") == 0) {
/* Send a TLS 1.0 close_notify alert. This is perhaps the
* "least wrong" way to open and cleanly terminate an SSL
* connection. It should "work" without noisy error logs if
if (status == APR_SUCCESS) {
/* if it has a scheme we may need to do absoluteURI vhost stuff */
if (r->parsed_uri.scheme
- && !ap_casecmpstr(r->parsed_uri.scheme, ap_http_scheme(r))) {
+ && !ap_cstr_casecmp(r->parsed_uri.scheme, ap_http_scheme(r))) {
r->hostname = r->parsed_uri.hostname;
}
else if (r->method_number == M_CONNECT) {
}
}
if (3 == sscanf(r->protocol, "%4s/%u.%u", http, &major, &minor)
- && (ap_casecmpstr("http", http) == 0)
+ && (ap_cstr_casecmp("http", http) == 0)
&& (minor < HTTP_VERSION(1, 0)) ) { /* don't allow HTTP/0.1000 */
r->proto_num = HTTP_VERSION(major, minor);
}
* the final encoding ...; the server MUST respond with the 400
* (Bad Request) status code and then close the connection".
*/
- if (!(ap_casecmpstr(tenc, "chunked") == 0 /* fast path */
+ if (!(ap_cstr_casecmp(tenc, "chunked") == 0 /* fast path */
|| ap_find_last_token(r->pool, tenc, "chunked"))) {
ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(02539)
"client sent unknown Transfer-Encoding "
* unfortunately, to signal a poor man's mandatory extension that
* the server must understand or return 417 Expectation Failed.
*/
- if (ap_casecmpstr(expect, "100-continue") == 0) {
+ if (ap_cstr_casecmp(expect, "100-continue") == 0) {
r->expecting_100 = 1;
}
else {
{
const char *t, *auth_line;
- if (!(t = ap_auth_type(r)) || ap_casecmpstr(t, "Basic"))
+ if (!(t = ap_auth_type(r)) || ap_cstr_casecmp(t, "Basic"))
return DECLINED;
if (!ap_auth_name(r)) {
return HTTP_UNAUTHORIZED;
}
- if (ap_casecmpstr(ap_getword(r->pool, &auth_line, ' '), "Basic")) {
+ if (ap_cstr_casecmp(ap_getword(r->pool, &auth_line, ' '), "Basic")) {
/* Client tried to authenticate using wrong auth scheme */
ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(00573)
"client used wrong authentication scheme: %s", r->uri);
if (finfo.filetype != APR_REG &&
#if defined(WIN32) || defined(OS2) || defined(NETWARE)
- ap_casecmpstr(apr_filepath_name_get(name), "nul") != 0) {
+ ap_cstr_casecmp(apr_filepath_name_get(name), "nul") != 0) {
#else
strcmp(name, "/dev/null") != 0) {
#endif /* WIN32 || OS2 */
while (*s && !TEST_CHAR(*s, T_HTTP_TOKEN_STOP)) {
++s;
}
- if (!ap_casecmpstrn((const char *)start_token, (const char *)tok,
+ if (!ap_cstr_casecmpn((const char *)start_token, (const char *)tok,
s - start_token)) {
return 1;
}
(lidx > 0 && !(apr_isspace(line[lidx - 1]) || line[lidx - 1] == ',')))
return 0;
- return (ap_casecmpstrn(&line[lidx], tok, tlen) == 0);
+ return (ap_cstr_casecmpn(&line[lidx], tok, tlen) == 0);
}
AP_DECLARE(char *) ap_escape_shell_cmd(apr_pool_t *p, const char *str)
/* sanity check - we only support forms for now */
ct = apr_table_get(r->headers_in, "Content-Type");
- if (!ct || ap_casecmpstrn("application/x-www-form-urlencoded", ct, 33)) {
+ if (!ct || ap_cstr_casecmpn("application/x-www-form-urlencoded", ct, 33)) {
return ap_discard_request_body(r);
}
};
#endif
-AP_DECLARE(int) ap_casecmpstrn(const char *s1, const char *s2)
+AP_DECLARE(int) ap_cstr_casecmpn(const char *s1, const char *s2)
{
const unsigned char *str1 = (const unsigned char *)s1;
const unsigned char *str2 = (const unsigned char *)s2;
}
}
-AP_DECLARE(int) ap_casecmpstrn(const char *s1, const char *s2, apr_size_t n)
+AP_DECLARE(int) ap_cstr_casecmpn(const char *s1, const char *s2, apr_size_t n)
{
const unsigned char *str1 = (const unsigned char *)s1;
const unsigned char *str2 = (const unsigned char *)s2;
while (prov->func) {
const char **name = prov->names;
while (*name) {
- if (ap_casecmpstr(*name, parms->name) == 0) {
+ if (ap_cstr_casecmp(*name, parms->name) == 0) {
*parms->func = prov->func;
*parms->data = name;
return OK;
if (parms->type == AP_EXPR_FUNC_OP_UNARY)
match = !strcmp(prov->name, parms->name);
else
- match = !ap_casecmpstr(prov->name, parms->name);
+ match = !ap_cstr_casecmp(prov->name, parms->name);
if (match) {
if ((parms->flags & AP_EXPR_FLAG_RESTRICTED)
&& prov->restricted) {
* for no particular reason.
*/
- if (!ap_casecmpstr(hdrs[i].key, "Content-type")) {
+ if (!ap_cstr_casecmp(hdrs[i].key, "Content-type")) {
apr_table_addn(e, "CONTENT_TYPE", hdrs[i].val);
}
- else if (!ap_casecmpstr(hdrs[i].key, "Content-length")) {
+ else if (!ap_cstr_casecmp(hdrs[i].key, "Content-length")) {
apr_table_addn(e, "CONTENT_LENGTH", hdrs[i].val);
}
/*
* in the environment with "ps -e". But, if you must...
*/
#ifndef SECURITY_HOLE_PASS_AUTHORIZATION
- else if (!ap_casecmpstr(hdrs[i].key, "Authorization")
- || !ap_casecmpstr(hdrs[i].key, "Proxy-Authorization")) {
+ else if (!ap_cstr_casecmp(hdrs[i].key, "Authorization")
+ || !ap_cstr_casecmp(hdrs[i].key, "Proxy-Authorization")) {
if (conf->cgi_pass_auth == AP_CGI_PASS_AUTH_ON) {
add_unless_null(e, http2env(r, hdrs[i].key), hdrs[i].val);
}
++l;
}
- if (!ap_casecmpstr(w, "Content-type")) {
+ if (!ap_cstr_casecmp(w, "Content-type")) {
char *tmp;
/* Nuke trailing whitespace */
* If the script returned a specific status, that's what
* we'll use - otherwise we assume 200 OK.
*/
- else if (!ap_casecmpstr(w, "Status")) {
+ else if (!ap_cstr_casecmp(w, "Status")) {
r->status = cgi_status = atoi(l);
if (!ap_is_HTTP_VALID_RESPONSE(cgi_status))
/* Intentional no APLOGNO */
apr_filepath_name_get(r->filename), l);
r->status_line = apr_pstrdup(r->pool, l);
}
- else if (!ap_casecmpstr(w, "Location")) {
+ else if (!ap_cstr_casecmp(w, "Location")) {
apr_table_set(r->headers_out, w, l);
}
- else if (!ap_casecmpstr(w, "Content-Length")) {
+ else if (!ap_cstr_casecmp(w, "Content-Length")) {
apr_table_set(r->headers_out, w, l);
}
- else if (!ap_casecmpstr(w, "Content-Range")) {
+ else if (!ap_cstr_casecmp(w, "Content-Range")) {
apr_table_set(r->headers_out, w, l);
}
- else if (!ap_casecmpstr(w, "Transfer-Encoding")) {
+ else if (!ap_cstr_casecmp(w, "Transfer-Encoding")) {
apr_table_set(r->headers_out, w, l);
}
- else if (!ap_casecmpstr(w, "ETag")) {
+ else if (!ap_cstr_casecmp(w, "ETag")) {
apr_table_set(r->headers_out, w, l);
}
/*
* If the script gave us a Last-Modified header, we can't just
* pass it on blindly because of restrictions on future values.
*/
- else if (!ap_casecmpstr(w, "Last-Modified")) {
+ else if (!ap_cstr_casecmp(w, "Last-Modified")) {
ap_update_mtime(r, apr_date_parse_http(l));
ap_set_last_modified(r);
}
- else if (!ap_casecmpstr(w, "Set-Cookie")) {
+ else if (!ap_cstr_casecmp(w, "Set-Cookie")) {
apr_table_add(cookie_table, w, l);
}
else {