From: Graham Leggett Date: Sat, 17 Dec 2011 17:06:08 +0000 (+0000) Subject: Update transformations. X-Git-Tag: 2.5.0-alpha~7669 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ad07e75189301740ac788cbebe4ec8845a92aa7;p=thirdparty%2Fapache%2Fhttpd.git Update transformations. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1215526 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/man/firehose.1 b/docs/man/firehose.1 new file mode 100644 index 00000000000..fffac9ae3c1 --- /dev/null +++ b/docs/man/firehose.1 @@ -0,0 +1,63 @@ +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +.\" DO NOT EDIT! Generated from XML source. +.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +.de Sh \" Subsection +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Ip \" List item +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.TH "FIREHOSE" 1 "2011-12-17" "Apache HTTP Server" "firehose" + +.SH NAME +firehose \- Demultiplex a firehose stream + +.SH "SYNOPSIS" + +.PP +\fBfirehose\fR [ -\fBf\fR \fIinput\fR ] [ -\fBo\fR \fIoutput-directory\fR ] [ -\fBu\fR \fIuuid\fR ] [ -\fBh\fR ] [ --\fBversion\fR ] [\fIprefix1\fR [\&.\&.\&.]] + + +.SH "SUMMARY" + +.PP +firehose demultiplexes the given stream of multiplexed connections, and writes each connection to an individual file\&. + +.PP +When writing to files, each connection is placed into a dedicated file named after the UUID of the connection within the stream\&. Separate files will be created if requests and responses are found in the stream\&. + +.PP +If an optional prefix is specified as a parameter, connections that start with the given prefix will be included\&. The prefix needs to fit completely within the first fragment for a successful match to occur\&. + + +.SH "OPTIONS" + + +.TP +--file, -f \fIfilename\fR +File to read the firehose from\&. Defaults to stdin\&. +.TP +--output-directory, -o \fIoutput-directory\fR +Directory to write demultiplexed connections to\&. +.TP +--uuid, -u \fIuuid\fR +The UUID of the connection to demultiplex\&. Can be specified more than once\&. If not specified, all UUIDs will be demultiplexed\&. +.TP +--help, -h +This help text\&. +.TP +--version +Display the version of the program\&. + diff --git a/docs/manual/mod/allmodules.xml.de b/docs/manual/mod/allmodules.xml.de index bd204e82479..57aca67d9e9 100644 --- a/docs/manual/mod/allmodules.xml.de +++ b/docs/manual/mod/allmodules.xml.de @@ -49,6 +49,7 @@ mod_ext_filter.xml mod_file_cache.xml mod_filter.xml + mod_firehose.xml mod_headers.xml mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/allmodules.xml.es b/docs/manual/mod/allmodules.xml.es index ff7038cb652..ee0cebbc9ff 100644 --- a/docs/manual/mod/allmodules.xml.es +++ b/docs/manual/mod/allmodules.xml.es @@ -49,6 +49,7 @@ mod_ext_filter.xml mod_file_cache.xml mod_filter.xml + mod_firehose.xml mod_headers.xml mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/allmodules.xml.fr b/docs/manual/mod/allmodules.xml.fr index 1732a415832..4d4a82b87ee 100644 --- a/docs/manual/mod/allmodules.xml.fr +++ b/docs/manual/mod/allmodules.xml.fr @@ -49,6 +49,7 @@ mod_ext_filter.xml mod_file_cache.xml mod_filter.xml + mod_firehose.xml mod_headers.xml.fr mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/allmodules.xml.ja b/docs/manual/mod/allmodules.xml.ja index ff21f6691fe..61409458a23 100644 --- a/docs/manual/mod/allmodules.xml.ja +++ b/docs/manual/mod/allmodules.xml.ja @@ -49,6 +49,7 @@ mod_ext_filter.xml.ja mod_file_cache.xml mod_filter.xml + mod_firehose.xml mod_headers.xml.ja mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/allmodules.xml.ko b/docs/manual/mod/allmodules.xml.ko index 714c6736172..7d67de05ca1 100644 --- a/docs/manual/mod/allmodules.xml.ko +++ b/docs/manual/mod/allmodules.xml.ko @@ -49,6 +49,7 @@ mod_ext_filter.xml.ko mod_file_cache.xml.ko mod_filter.xml + mod_firehose.xml mod_headers.xml.ko mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/allmodules.xml.tr b/docs/manual/mod/allmodules.xml.tr index 941fcc54ba1..54ce00e7500 100644 --- a/docs/manual/mod/allmodules.xml.tr +++ b/docs/manual/mod/allmodules.xml.tr @@ -49,6 +49,7 @@ mod_ext_filter.xml mod_file_cache.xml mod_filter.xml + mod_firehose.xml mod_headers.xml mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/allmodules.xml.zh-cn b/docs/manual/mod/allmodules.xml.zh-cn index 2e0706ca804..a26ed7b80e7 100644 --- a/docs/manual/mod/allmodules.xml.zh-cn +++ b/docs/manual/mod/allmodules.xml.zh-cn @@ -49,6 +49,7 @@ mod_ext_filter.xml mod_file_cache.xml mod_filter.xml + mod_firehose.xml mod_headers.xml mod_heartbeat.xml mod_heartmonitor.xml diff --git a/docs/manual/mod/directives.html.en b/docs/manual/mod/directives.html.en index d1554a84d2c..cc11a45de68 100644 --- a/docs/manual/mod/directives.html.en +++ b/docs/manual/mod/directives.html.en @@ -253,6 +253,12 @@
  • FilterProtocol
  • FilterProvider
  • FilterTrace
  • +
  • FirehoseConnectionInput
  • +
  • FirehoseConnectionOutput
  • +
  • FirehoseProxyConnectionInput
  • +
  • FirehoseProxyConnectionOutput
  • +
  • FirehoseRequestInput
  • +
  • FirehoseRequestOutput
  • ForceLanguagePriority
  • ForceType
  • ForensicLog
  • diff --git a/docs/manual/mod/index.html.en b/docs/manual/mod/index.html.en index 82124238905..16fc237cad7 100644 --- a/docs/manual/mod/index.html.en +++ b/docs/manual/mod/index.html.en @@ -132,6 +132,7 @@ criteria delivery to the client
    mod_file_cache
    Caches a static list of files in memory
    mod_filter
    Context-sensitive smart filter configuration module
    +
    mod_firehose
    Multiplexes all I/O to a given file or pipe.
    mod_headers
    Customization of HTTP request and response headers
    mod_heartbeat
    diff --git a/docs/manual/mod/mod_firehose.html b/docs/manual/mod/mod_firehose.html new file mode 100644 index 00000000000..0b789539760 --- /dev/null +++ b/docs/manual/mod/mod_firehose.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_firehose.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/mod/mod_firehose.html.en b/docs/manual/mod/mod_firehose.html.en new file mode 100644 index 00000000000..370cbd8cec3 --- /dev/null +++ b/docs/manual/mod/mod_firehose.html.en @@ -0,0 +1,282 @@ + + + +mod_firehose - Apache HTTP Server + + + + + + +
    <-
    + +
    +

    Apache Module mod_firehose

    +
    +

    Available Languages:  en 

    +
    + + + +
    Description:Multiplexes all I/O to a given file or pipe.
    Status:Extension
    Module Identifier:firehose_module
    Source File:mod_firehose.c
    +

    Summary

    + +

    mod_firehose provides a mechanism to record data + being passed between the httpd server and the client at the raw + connection level to either a file or a pipe in such a way that the + data can be analysed or played back to the server at a future date. + It can be thought of as "tcpdump for httpd".

    + +

    Connections are recorded after the SSL has been stripped, and can + be used for forensic debugging.

    + +

    The firehose tool can be used to demultiplex + the recorded stream back into individual files for analysis, or + playback using a tool like netcat.

    + +

    WARNING

    This module IGNORES all request level + mechanisms to keep data private. It is the responsibility of the + administrator to ensure that private data is not inadvertently + exposed using this module. +
    + +
    + +
    top
    +
    +

    Enabling a Firehose

    + + +

    To enable the module, it should be compiled and loaded + in to your running Apache configuration, and the directives below + used to record the data you are interested in.

    + +

    It is possible to record both incoming and outgoing data to + the same filename if desired, as the direction of flow is recorded + within each fragment.

    + +

    It is possible to write to both normal files and fifos (pipes). + In the case of fifos, mod_firehose ensures that the packet size is + no larger than PIPE_BUF to ensure writes are atomic.

    + +

    If a pipe is being used, something must be reading from the pipe + before httpd is started for the pipe to be successfully opened for + write. If the request to open the pipe fails, mod_firehose will + silently stand down and not record anything, and the server will + keep running as normal.

    + +

    All file writes are non blocking, and buffer overflows will cause + debugging data to be lost. The module makes the call that the + reliable running of the server takes precedence over the recording + of firehose data.

    + +
    top
    +
    +

    Stream Format

    + + +

    The server typically serves multiple connections simultaneously, + and as a result requests and responses need to be multiplexed before + being written to the firehose.

    + +

    The fragment format is designed as clear text, so that a firehose + can be opened with and inspected by a normal text editor. + Alternatively, the firehose tool can be used to + demultiplex the firehose back into individual requests or + connections.

    + +

    The size of the multiplexed fragments is governed by PIPE_BUF, + the maximum size of write the system is prepared to perform + atomically. By keeping the multiplexed fragments below PIPE_BUF in + size, the module guarantees that data from different fragments does + not interleave. The size of PIPE_BUF varies on different operating + systems.

    + +

    The BNF for the fragment format is as follows:

    + +
    + stream = 0*(fragment)
    +
    + fragment = header CRLF body CRLF
    +
    + header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count
    +
    + length = <up to 16 byte hex fragment length>
    + timestamp = <up to 16 byte hex timestamp microseconds since 1970>
    + request = "<"
    + response = ">"
    + uuid = <formatted uuid of the connection>
    + count = <hex fragment number in the connection>
    +
    + body = <the binary content of the fragment>
    +
    + SPC = <a single space>
    + CRLF = <a carriage return, followed by a line feed>
    +    
    + +

    All fragments for a connection or a request will share the same + UUID, depending on whether connections or requests are being recorded. + If connections are being recorded, multiple requests may appear within + a connection. A fragment with a zero length indicates the end of the + connection.

    + +

    Fragments may go missing or be dropped if the process reading the + fragments is too slow. If this happens, gaps will exist in the + connection counter numbering. A warning will be logged in the error + log to indicate the UUID and counter of the dropped fragment, so it + can be confirmed the fragment was dropped.

    + +

    It is possible that the terminating empty fragment may not appear, + caused by the httpd process crashing, or being terminated ungracefully. + The terminating fragment may be dropped if the process reading the + fragments is not fast enough.

    + +
    +
    top
    +

    FirehoseConnectionInput Directive

    + + + + + + + + +
    Description:Capture traffic coming into the server on each connection
    Syntax:FirehoseConnectionInput filename
    Default:none
    Context:server config
    Status:Extension
    Module:mod_firehose
    Compatibility:FirehoseConnectionInput is only available in Apache 2.5.0 and +later.
    +

    Capture traffic coming into the server on each connection. Multiple + requests will be captured within the same connection if keepalive is + present.

    + +

    Example

    + FirehoseConnectionInput connection-input.firehose +

    + +
    +
    top
    +

    FirehoseConnectionOutput Directive

    + + + + + + + + +
    Description:Capture traffic going out of the server on each connection
    Syntax:FirehoseConnectionOutput filename
    Default:none
    Context:server config
    Status:Extension
    Module:mod_firehose
    Compatibility:FirehoseConnectionOutput is only available in Apache 2.5.0 and +later.
    +

    Capture traffic going out of the server on each connection. + Multiple requests will be captured within the same connection if + keepalive is present.

    + +

    Example

    + FirehoseConnectionOutput connection-output.firehose +

    + +
    +
    top
    +

    FirehoseProxyConnectionInput Directive

    + + + + + + + + +
    Description:Capture traffic coming into the back of mod_proxy
    Syntax:FirehoseProxyConnectionInput filename
    Default:none
    Context:server config
    Status:Extension
    Module:mod_firehose
    Compatibility:FirehoseProxyConnectionInput is only available in Apache 2.5.0 and +later.
    +

    Capture traffic being received by mod_proxy.

    + +

    Example

    + FirehoseProxyConnectionInput proxy-input.firehose +

    + +
    +
    top
    +

    FirehoseProxyConnectionOutput Directive

    + + + + + + + + +
    Description:Capture traffic sent out from the back of mod_proxy
    Syntax:FirehoseProxyConnectionOutput filename
    Default:none
    Context:server config
    Status:Extension
    Module:mod_firehose
    Compatibility:FirehoseProxyConnectionOutput is only available in Apache 2.5.0 and +later.
    +

    Capture traffic being sent out by mod_proxy.

    + +

    Example

    + FirehoseProxyConnectionOutput proxy-output.firehose +

    + +
    +
    top
    +

    FirehoseRequestInput Directive

    + + + + + + + + +
    Description:Capture traffic coming into the server on each request
    Syntax:FirehoseRequestInput filename
    Default:none
    Context:server config
    Status:Extension
    Module:mod_firehose
    Compatibility:FirehoseRequestInput is only available in Apache 2.5.0 and +later.
    +

    Capture traffic coming into the server on each request. Requests + will be captured separately, regardless of the presence of keepalive.

    + +

    Example

    + FirehoseRequestInput request-input.firehose +

    + +
    +
    top
    +

    FirehoseRequestOutput Directive

    + + + + + + + + +
    Description:Capture traffic going out of the server on each request
    Syntax:FirehoseRequestOutput filename
    Default:none
    Context:server config
    Status:Extension
    Module:mod_firehose
    Compatibility:FirehoseRequestOutput is only available in Apache 2.5.0 and +later.
    +

    Capture traffic going out of the server on each request. Requests + will be captured separately, regardless of the presence of keepalive.

    + +

    Example

    + FirehoseRequestOutput request-output.firehose +

    + +
    +
    +
    +

    Available Languages:  en 

    +
    + \ No newline at end of file diff --git a/docs/manual/mod/mod_firehose.xml.meta b/docs/manual/mod/mod_firehose.xml.meta new file mode 100644 index 00000000000..af0e693035c --- /dev/null +++ b/docs/manual/mod/mod_firehose.xml.meta @@ -0,0 +1,12 @@ + + + + + mod_firehose + /mod/ + .. + + + en + + diff --git a/docs/manual/mod/quickreference.html.en b/docs/manual/mod/quickreference.html.en index e03639c6b45..6544020344f 100644 --- a/docs/manual/mod/quickreference.html.en +++ b/docs/manual/mod/quickreference.html.en @@ -419,6 +419,12 @@ filenames expressionsvdhBRegister a content filter FilterTrace filter-name levelsvdBGet debug/diagnostic information from mod_filter +FirehoseConnectionInput filenamesECapture traffic coming into the server on each connection +FirehoseConnectionOutput filenamesECapture traffic going out of the server on each connection +FirehoseProxyConnectionInput filenamesECapture traffic coming into the back of mod_proxy +FirehoseProxyConnectionOutput filenamesECapture traffic sent out from the back of mod_proxy +FirehoseRequestInput filenamesECapture traffic coming into the server on each request +FirehoseRequestOutput filenamesECapture traffic going out of the server on each request ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhBAction to take if a single acceptable document is not found ForceType media-type|NonedhCForces all matching files to be served with the specified diff --git a/docs/manual/new_features_2_4.html.en b/docs/manual/new_features_2_4.html.en index f42c7c80eb3..2449721fc1e 100644 --- a/docs/manual/new_features_2_4.html.en +++ b/docs/manual/new_features_2_4.html.en @@ -19,7 +19,8 @@ Apache > HTTP Server > Documentation > Version 2.5

    Overview of new features in Apache HTTP Server 2.4

    Available Languages:  en  | - fr 

    + fr  | + tr 

    This document describes some of the major changes between the @@ -319,7 +320,8 @@

    Available Languages:  en  | - fr 

    + fr  | + tr 

    diff --git a/docs/manual/programs/firehose.html b/docs/manual/programs/firehose.html new file mode 100644 index 00000000000..be4e77d8868 --- /dev/null +++ b/docs/manual/programs/firehose.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: firehose.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/docs/manual/programs/firehose.html.en b/docs/manual/programs/firehose.html.en new file mode 100644 index 00000000000..475b7685ac3 --- /dev/null +++ b/docs/manual/programs/firehose.html.en @@ -0,0 +1,77 @@ + + + +firehose - Demultiplex a firehose stream - Apache HTTP Server + + + + + +
    <-
    +

    firehose - Demultiplex a firehose stream

    +
    +

    Available Languages:  en 

    +
    + +

    firehose demultiplexes the given stream of multiplexed + connections, and writes each connection to an individual file.

    + +

    When writing to files, each connection is placed into a dedicated file + named after the UUID of the connection within the stream. Separate files + will be created if requests and responses are found in the stream.

    + +

    If an optional prefix is specified as a parameter, connections that + start with the given prefix will be included. The prefix needs to fit + completely within the first fragment for a successful match to occur.

    + +
    + +
    top
    +
    +

    Synopsis

    +

    firehose + [ -f input ] + [ -o output-directory ] + [ -u uuid ] + [ -h ] + [ --version ] + [prefix1 [...]]

    + +
    top
    +
    +

    Options

    +
    +
    --file, -f filename
    +
    File to read the firehose from. Defaults to stdin.
    + +
    --output-directory, -o output-directory
    +
    Directory to write demultiplexed connections to.
    + +
    --uuid, -u uuid
    +
    The UUID of the connection to demultiplex. Can be specified more + than once. If not specified, all UUIDs will be demultiplexed.
    + +
    --help, -h
    +
    This help text.
    + +
    --version
    +
    Display the version of the program.
    +
    + +
    +
    +

    Available Languages:  en 

    +
    + \ No newline at end of file diff --git a/docs/manual/programs/firehose.xml b/docs/manual/programs/firehose.xml new file mode 100644 index 00000000000..27cbf22a1ec --- /dev/null +++ b/docs/manual/programs/firehose.xml @@ -0,0 +1,75 @@ + + + + + + + + +Programs + +firehose - Demultiplex a firehose stream + + +

    firehose demultiplexes the given stream of multiplexed + connections, and writes each connection to an individual file.

    + +

    When writing to files, each connection is placed into a dedicated file + named after the UUID of the connection within the stream. Separate files + will be created if requests and responses are found in the stream.

    + +

    If an optional prefix is specified as a parameter, connections that + start with the given prefix will be included. The prefix needs to fit + completely within the first fragment for a successful match to occur.

    + +
    +mod_firehose + +
    Synopsis +

    firehose + [ -f input ] + [ -o output-directory ] + [ -u uuid ] + [ -h ] + [ --version ] + [prefix1 [...]]

    + +
    + +
    Options +
    +
    --file, -f filename
    +
    File to read the firehose from. Defaults to stdin.
    + +
    --output-directory, -o output-directory
    +
    Directory to write demultiplexed connections to.
    + +
    --uuid, -u uuid
    +
    The UUID of the connection to demultiplex. Can be specified more + than once. If not specified, all UUIDs will be demultiplexed.
    + +
    --help, -h
    +
    This help text.
    + +
    --version
    +
    Display the version of the program.
    +
    + +
    + +
    diff --git a/docs/manual/programs/firehose.xml.meta b/docs/manual/programs/firehose.xml.meta new file mode 100644 index 00000000000..7567aca9f46 --- /dev/null +++ b/docs/manual/programs/firehose.xml.meta @@ -0,0 +1,12 @@ + + + + + firehose + /programs/ + .. + + + en + + diff --git a/docs/manual/programs/index.html.en b/docs/manual/programs/index.html.en index 21cbce353ba..041e4e56581 100644 --- a/docs/manual/programs/index.html.en +++ b/docs/manual/programs/index.html.en @@ -62,6 +62,10 @@
    Start a FastCGI program
    +
    firehose
    + +
    Demultiplex a firehose from mod_firehose
    +
    htcacheclean
    Clean up the disk cache
    diff --git a/docs/manual/sitemap.html.en b/docs/manual/sitemap.html.en index c652d00c1fc..78dc40fb71d 100644 --- a/docs/manual/sitemap.html.en +++ b/docs/manual/sitemap.html.en @@ -216,6 +216,7 @@ Server on HPUX
  • Apache Module mod_ext_filter
  • Apache Module mod_file_cache
  • Apache Module mod_filter
  • +
  • Apache Module mod_firehose
  • Apache Module mod_headers
  • Apache Module mod_heartbeat
  • Apache Module mod_heartmonitor