handle.c revision 1e5905d1f04191cad9dae6117e1508c7f7d5587a
/*
** 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_log.h"
#include "util_filter.h"
#include "apr_tables.h"
#include "apr_buckets.h"
#include "http_request.h"
#include "apr_strings.h"
#include "apreq_module_apache2.h"
#include "apreq_private_apache2.h"
#include "apreq_error.h"
{
req->r,
req->r->connection);
/* ap_add_input_filter does not guarantee cfg->f == r->input_filters,
* so we reposition the new filter there as necessary.
*/
apreq_filter_relocate(req->f);
}
return req->f;
}
{
request_rec *r = req->r;
req->jar_status =
}
else
}
return req->jar_status;
}
{
request_rec *r = req->r;
req->args_status =
}
else
}
return req->args_status;
}
{
const apr_table_t *t;
const char *val;
apache2_jar(handle, &t);
else
if (t == NULL)
return NULL;
return NULL;
return apreq_value_to_cookie(val);
}
{
const apr_table_t *t;
const char *val;
apache2_args(handle, &t);
else
if (t == NULL)
return NULL;
return NULL;
return apreq_value_to_param(val);
}
{
struct filter_ctx *ctx;
switch (ctx->body_status) {
case APR_EINIT:
break;
case APR_INCOMPLETE:
; /*loop*/
}
return ctx->body_status;
}
{
struct filter_ctx *ctx;
const char *val;
apreq_hook_t *h;
switch (ctx->body_status) {
case APR_SUCCESS:
return apreq_value_to_param(val);
return NULL;
case APR_EINIT:
return NULL;
case APR_INCOMPLETE:
return apreq_value_to_param(val);
/* Not seen yet, so we need to scan for
param while prefetching the body */
h = ctx->find_param;
do {
return NULL;
default:
return NULL;
return apreq_value_to_param(val);
return NULL;
}
/* not reached */
return NULL;
}
static
const apreq_parser_t **parser)
{
return APR_EINIT;
}
return APR_SUCCESS;
}
static
{
struct filter_ctx *ctx;
return APR_SUCCESS;
}
else
return APREQ_ERROR_NOTEMPTY;
}
static
{
struct filter_ctx *ctx;
}
h = h->next;
}
else {
}
return APR_SUCCESS;
}
static
{
struct filter_ctx *ctx;
return APR_SUCCESS;
}
return APREQ_ERROR_MISMATCH;
}
static
{
struct filter_ctx *ctx;
return APR_SUCCESS;
}
static
{
struct filter_ctx *ctx;
return APR_SUCCESS;
}
return APREQ_ERROR_MISMATCH;
}
static
{
struct filter_ctx *ctx;
return APR_SUCCESS;
}
static
const char *path)
{
struct filter_ctx *ctx;
// init vs incomplete state?
return APR_SUCCESS;
}
return APREQ_ERROR_NOTEMPTY;
}
static
const char **path)
{
struct filter_ctx *ctx;
return APR_SUCCESS;
}
{
struct apache2_handle *req =
}
req->r = r;
}