mod_echo.c revision 9bec939825399ac2816ea0d912d2e3c3b2ed91f4
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke/* Licensed to the Apache Software Foundation (ASF) under one or more
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * contributor license agreements. See the NOTICE file distributed with
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * this work for additional information regarding copyright ownership.
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * The ASF licenses this file to You under the Apache License, Version 2.0
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * (the "License"); you may not use this file except in compliance with
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * the License. You may obtain a copy of the License at
b72a390042c19e630cf221494b60c9df2a60d187Dominik Luecke * Unless required by applicable law or agreed to in writing, software
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * distributed under the License is distributed on an "AS IS" BASIS,
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
cf04ba46b9eb495d334466e24e082e391055ca7bDominik Luecke * See the License for the specific language governing permissions and
cf04ba46b9eb495d334466e24e082e391055ca7bDominik Luecke * limitations under the License.
cf04ba46b9eb495d334466e24e082e391055ca7bDominik Luecketypedef struct {
08056875f5f633ef432598d5245ea41c112d2178Dominik Lueckestatic void *create_echo_server_config(apr_pool_t *p, server_rec *s)
f90884915ff10ae83f59e709c68824de834e64f5Dominik Luecke EchoConfig *pConfig = apr_pcalloc(p, sizeof *pConfig);
b72a390042c19e630cf221494b60c9df2a60d187Dominik Lueckestatic const char *echo_on(cmd_parms *cmd, void *dummy, int arg)
08056875f5f633ef432598d5245ea41c112d2178Dominik Luecke EchoConfig *pConfig = ap_get_module_config(cmd->server->module_config,
08056875f5f633ef432598d5245ea41c112d2178Dominik Lueckestatic apr_status_t brigade_peek(apr_bucket_brigade *bbIn,
08056875f5f633ef432598d5245ea41c112d2178Dominik Luecke /* compensate for NULL */
08056875f5f633ef432598d5245ea41c112d2178Dominik Luecke while ((b != APR_BRIGADE_SENTINEL(bbIn)) && (readbytes < bufflen)) {
08056875f5f633ef432598d5245ea41c112d2178Dominik Luecke if ((rv = apr_bucket_read(b, &str, &len, APR_NONBLOCK_READ))
08056875f5f633ef432598d5245ea41c112d2178Dominik Luecke if ((pos = memchr(str, APR_ASCII_LF, len)) != NULL)
if (!ap_extended_status)
return old_status;
if (last_echoed) {
return old_status;
apr_bucket *b;
&echo_module);
return DECLINED;
c->remote_ip);
c->remote_ip);
if (!csd) {
c->remote_ip);
return OK;
{ NULL }