<?xml version="1.0" encoding="iso-2022-jp"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
<!-- English Revision: 151408 -->

<!--
 Copyright 2002-2005 The Apache Software Foundation or its licensors,
                     as applicable.

 Licensed 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

     http://www.apache.org/licenses/LICENSE-2.0

 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.
-->

<modulesynopsis metafile="mod_echo.xml.meta">

<name>mod_echo</name>
<description>$B%W%m%H%3%k%b%8%e!<%k$N35MW$r<($9$?$a$NC1=c$J%(%3!<%5!<%P(B
</description>
<status>Experimental</status>
<sourcefile>mod_echo.c</sourcefile>
<identifier>echo_module</identifier>
<compatibility>Apache 2.0 $B0J9_(B</compatibility>

<summary>
    <p>$BK\%b%8%e!<%k$O%3%s%;%W%H$rEA$($k$?$a$N%W%m%H%3%k%b%8%e!<%k$N(B
    $B<BAuNc$H$J$C$F$$$^$9!#C1=c$J%(%3!<%5!<%P$rDs6!$7$^$9!#(B
    Telnet $B$G@\B3$7!"J8;zNs$rAw?.$9$k$H!"%(%3!<$rJV$7$^$9!#(B</p>
</summary>

<directivesynopsis>

<name>ProtocolEcho</name>
<description>$B%(%3!<%5!<%P$NM-8zL58z$r@_Dj$7$^$9!#(B</description>
<syntax>ProtocolEcho On|Off</syntax>
<contextlist><context>server config</context>
<context>virtual host</context></contextlist>
<compatibility>Apache 2.0 $B0J9_(B</compatibility>

<usage>
    <p><directive>ProtocolEcho</directive> $B%G%#%l%/%F%#%V$G(B
    $B%(%3!<%5!<%P$NM-8zL58z$r@_Dj$7$^$9!#(B</p>

    <example><title>$BNc(B</title>
      ProtocolEcho On
    </example>
</usage>

</directivesynopsis>
</modulesynopsis>

