/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "httpd.h"
#include "http_config.h"
#include "http_request.h"
#include "http_log.h"
typedef enum {
AH_ALLOW = 0,
} ah_op_e;
typedef struct {
} ah_conf_t;
{
int match = 0;
const char *handler_name;
}
"server configuration: URI %s (file %s)",
return HTTP_FORBIDDEN;
}
else {
handler_name = r->handler;
}
if (!conf)
return DECLINED;
match = 1;
return DECLINED;
}
else {
if (handler_name != no_handler) {
"server configuration: URI %s (file %s)",
}
else {
"configuration: No handler set for URI %s (file %s)",
}
return HTTP_FORBIDDEN;
}
}
{
return conf;
}
{
int i;
if (err)
return err;
if (argc == 0)
return "AllowHandlers: No handler name given";
for (i = 0; i < argc; i++) {
return "Handler name 'forbidden' cannot be changed.";
if (argc != 1)
return "'all' not possible with specific handler names";
return NULL;
}
if (i != 0 || argc == 1)
return "'not' must come before specific handler names";
}
else {
}
}
return NULL;
}
{
}
"only allow specific handlers (use 'not' to negate)"),
{NULL}
};
NULL,
NULL,
NULL,
};