diff --git a/libpathod/templates/about.html b/libpathod/templates/about.html
index 0eae48654..9a695a6a8 100644
--- a/libpathod/templates/about.html
+++ b/libpathod/templates/about.html
@@ -1,5 +1,5 @@
{% extends "frame.html" %}
-{% block body %}
+{% block body %}
@@ -28,4 +27,4 @@
The general form of a response is as follows:
- +code:[colon-separated list of features]
dOFFSET | - Disconnect after OFFSET bytes. + Disconnect after OFFSET bytes. |
hVALUE=VALUE | - Set a header. + Set a header. |
iOFFSET,VALUE | - Inject the specified value at the offset. + Inject the specified value at the offset. | mVALUE | HTTP Reason message. Automatically chosen according to - the response code if not specified. + the response code if not specified. | @@ -79,7 +79,7 @@pOFFSET,SECONDS | Pause for SECONDS seconds after OFFSET bytes. SECONDS can - be an integer or "f" to pause forever. + be an integer or "f" to pause forever. | @@ -98,7 +98,7 @@
dOFFSET | - Disconnect after OFFSET bytes. + Disconnect after OFFSET bytes. |
hVALUE=VALUE | - Set a header. + Set a header. |
iOFFSET,VALUE | - Inject the specified value at the offset. + Inject the specified value at the offset. | pOFFSET,SECONDS | Pause for SECONDS seconds after OFFSET bytes. SECONDS can - be an integer or "f" to pause forever. + be an integer or "f" to pause forever. | @@ -156,6 +156,14 @@ +
sVALUE | ++ An embedded Response specification, appended to the path + of the request. + | +
uVALUE uSHORTCUT |
@@ -196,9 +204,9 @@
injections or other transforms are applied. They have 3 flavors:
The basic pattern for pathoc commands is as follows:
pathoc hostname request [request ...]
That is, we specify the hostname to connect to, followed by one or more requests. Lets start with a simple example:
- +> pathoc google.com get:/ << 301 Moved Permanently: 219 bytes@@ -47,7 +47,7 @@ the command-line help:
There are two ways to tell pathoc to issue multiple requests. The first is to specify them on the command-line, like so:
@@ -58,8 +58,8 @@ the command-line help:In this case, pathoc issues the specified requests over the same TCP connection - so in the above example only one connection is made to google.com
- -The other way to issue multiple requets is to use the -n flag:
+ +The other way to issue multiple requets is to use the -n flag:
> pathoc -n 2 google.com get:/ << 301 Moved Permanently: 219 bytes @@ -102,7 +102,7 @@ the command-line help: enter a state where it's awaiting more input from the client. This is where the -t option comes in, which sets a timeout that causes pathoc to disconnect after two seconds. - +
One interesting feature of the Request sppecification language is that + you can embed a response specifcation in it, which is then added to the + request path. Here's an example:
+ +> pathoc localhost:9999 "get:/p/:s'401:ir,@1'"+ +
This crafts a request that connects to the pathod server, and which then + crafts a response that generates a 401, with one random byte embedded at a + random point. The response specification is parsed and expanded by pathoc, + so you see syntax errors immediately. This really becomes handy when + combined with the -e flag to show the expanded request: + +
> > pathoc -e localhost:9999 "get:/p/:s'401:ir,@1'" +>> Spec: get:/p/:s'401:i15,\'o\':h\'Content-Length\'=\'0\'':h'Content-Length'='0' +<< 401 Unoauthorized: 0 bytes+ +
Note that the embedded response has been resolved before being + sent to the server, so that "ir,@1" (embed a random byte at a random + location) has become "i15,\'o\'" (embed the character "o" at offset 15). You + now have a pathoc request specification that is precisely reproducable, even + with random components. This feature comes in terribly handy when testing a + proxy, since you can now drive the server repsonse completely from the + client, and have a complete log of reproducible requests to analyse + afterwards.
+ +