mongrel 0.2.2 → 0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +27 -25
- data/Rakefile +2 -3
- data/bin/mongrel_rails +114 -0
- data/doc/rdoc/classes/Mongrel.html +30 -0
- data/doc/rdoc/classes/Mongrel.src/M000001.html +18 -0
- data/doc/rdoc/classes/Mongrel/Const.html +2 -2
- data/doc/rdoc/classes/Mongrel/DirHandler.html +84 -21
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000009.html +7 -18
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000010.html +26 -9
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000011.html +27 -26
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000012.html +31 -0
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000013.html +38 -0
- data/doc/rdoc/classes/Mongrel/Error404Handler.html +10 -10
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000028.html → M000033.html} +4 -4
- data/doc/rdoc/classes/Mongrel/Error404Handler.src/{M000029.html → M000034.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.html +10 -10
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000017.html → M000019.html} +4 -4
- data/doc/rdoc/classes/Mongrel/HeaderOut.src/{M000018.html → M000020.html} +7 -7
- data/doc/rdoc/classes/Mongrel/HttpHandler.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpHandler.src/{M000023.html → M000025.html} +3 -3
- data/doc/rdoc/classes/Mongrel/HttpParser.html +35 -35
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000002.html +5 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000003.html +7 -7
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000004.html +8 -20
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000005.html +20 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000006.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpParser.src/M000007.html +5 -6
- data/doc/rdoc/classes/Mongrel/HttpParser.src/{M000001.html → M000008.html} +6 -6
- data/doc/rdoc/classes/Mongrel/HttpRequest.html +5 -5
- data/doc/rdoc/classes/Mongrel/HttpRequest.src/{M000030.html → M000035.html} +17 -17
- data/doc/rdoc/classes/Mongrel/HttpResponse.html +66 -21
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000026.html +8 -6
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000027.html +7 -12
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000028.html +19 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000029.html +18 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000030.html +20 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000031.html +21 -0
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000032.html +20 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.html +28 -28
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000014.html +18 -10
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000015.html +51 -5
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000016.html +9 -4
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000017.html +18 -0
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000018.html +18 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.html +31 -21
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000021.html +18 -15
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000022.html +25 -42
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000023.html +36 -0
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000024.html +84 -0
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/README.html +32 -42
- data/doc/rdoc/files/ext/http11/http11_c.html +1 -1
- data/doc/rdoc/files/lib/mongrel_rb.html +1 -1
- data/doc/rdoc/fr_method_index.html +35 -30
- data/examples/simpletest.rb +16 -6
- data/ext/http11/http11.c +19 -3
- data/ext/http11/tst_search.c +2 -3
- data/lib/mongrel.rb +108 -20
- data/test/test_uriclassifier.rb +22 -1
- metadata +25 -19
- data/doc/rdoc/classes/Mongrel/DirHandler.src/M000008.html +0 -20
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000024.html +0 -21
- data/doc/rdoc/classes/Mongrel/HttpResponse.src/M000025.html +0 -20
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000012.html +0 -31
- data/doc/rdoc/classes/Mongrel/HttpServer.src/M000013.html +0 -64
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000019.html +0 -39
- data/doc/rdoc/classes/Mongrel/URIClassifier.src/M000020.html +0 -51
- data/lib/#mongrel.rb# +0 -493
|
@@ -5,25 +5,24 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>new (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.new -> parser
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* rather than making new ones.
|
|
17
|
+
* Creates a new parser.
|
|
19
18
|
*/
|
|
20
|
-
VALUE
|
|
19
|
+
VALUE HttpParser_init(VALUE self)
|
|
21
20
|
{
|
|
22
21
|
http_parser *http = NULL;
|
|
23
22
|
DATA_GET(self, http_parser, http);
|
|
24
23
|
http_parser_init(http);
|
|
25
24
|
|
|
26
|
-
return
|
|
25
|
+
return self;
|
|
27
26
|
}</pre>
|
|
28
27
|
</body>
|
|
29
28
|
</html>
|
|
@@ -5,25 +5,25 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>reset (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.reset -> nil
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* Resets the parser to it's initial state so that you can reuse it
|
|
18
|
+
* rather than making new ones.
|
|
19
19
|
*/
|
|
20
|
-
VALUE
|
|
20
|
+
VALUE HttpParser_reset(VALUE self)
|
|
21
21
|
{
|
|
22
22
|
http_parser *http = NULL;
|
|
23
23
|
DATA_GET(self, http_parser, http);
|
|
24
|
-
|
|
24
|
+
http_parser_init(http);
|
|
25
25
|
|
|
26
|
-
return
|
|
26
|
+
return Qnil;
|
|
27
27
|
}</pre>
|
|
28
28
|
</body>
|
|
29
29
|
</html>
|
|
@@ -5,37 +5,25 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>finish (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.finish -> true/false
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* what the return value, you should call HttpParser#finished? and HttpParser#error?
|
|
20
|
-
* to figure out if it's done parsing or there was an error.
|
|
21
|
-
*
|
|
22
|
-
* This function now throws an exception when there is a parsing error. This makes
|
|
23
|
-
* the logic for working with the parser much easier. You can still test for an
|
|
24
|
-
* error, but now you need to wrap the parser with an exception handling block.
|
|
17
|
+
* Finishes a parser early which could put in a "good" or bad state.
|
|
18
|
+
* You should call reset after finish it or bad things will happen.
|
|
25
19
|
*/
|
|
26
|
-
VALUE
|
|
20
|
+
VALUE HttpParser_finish(VALUE self)
|
|
27
21
|
{
|
|
28
22
|
http_parser *http = NULL;
|
|
29
23
|
DATA_GET(self, http_parser, http);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if(http_parser_has_error(http)) {
|
|
35
|
-
rb_raise(rb_eStandardError, "HTTP Parsing failure");
|
|
36
|
-
} else {
|
|
37
|
-
return INT2FIX(http_parser_nread(http));
|
|
38
|
-
}
|
|
24
|
+
http_parser_finish(http);
|
|
25
|
+
|
|
26
|
+
return http_parser_is_finished(http) ? Qtrue : Qfalse;
|
|
39
27
|
}</pre>
|
|
40
28
|
</body>
|
|
41
29
|
</html>
|
|
@@ -5,23 +5,37 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>execute (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.execute(req_hash, data) -> Integer
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* Takes a Hash and a String of data, parses the String of data filling in the Hash
|
|
18
|
+
* returning an Integer to indicate how much of the data has been read. No matter
|
|
19
|
+
* what the return value, you should call HttpParser#finished? and HttpParser#error?
|
|
20
|
+
* to figure out if it's done parsing or there was an error.
|
|
21
|
+
*
|
|
22
|
+
* This function now throws an exception when there is a parsing error. This makes
|
|
23
|
+
* the logic for working with the parser much easier. You can still test for an
|
|
24
|
+
* error, but now you need to wrap the parser with an exception handling block.
|
|
18
25
|
*/
|
|
19
|
-
VALUE
|
|
26
|
+
VALUE HttpParser_execute(VALUE self, VALUE req_hash, VALUE data)
|
|
20
27
|
{
|
|
21
28
|
http_parser *http = NULL;
|
|
22
29
|
DATA_GET(self, http_parser, http);
|
|
23
|
-
|
|
24
|
-
|
|
30
|
+
|
|
31
|
+
http->data = (void *)req_hash;
|
|
32
|
+
http_parser_execute(http, RSTRING(data)->ptr, RSTRING(data)->len);
|
|
33
|
+
|
|
34
|
+
if(http_parser_has_error(http)) {
|
|
35
|
+
rb_raise(rb_eStandardError, "HTTP Parsing failure");
|
|
36
|
+
} else {
|
|
37
|
+
return INT2FIX(http_parser_nread(http));
|
|
38
|
+
}
|
|
25
39
|
}</pre>
|
|
26
40
|
</body>
|
|
27
41
|
</html>
|
|
@@ -5,23 +5,23 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>error? (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.error? -> true/false
|
|
16
16
|
*
|
|
17
|
-
* Tells you whether the parser is
|
|
17
|
+
* Tells you whether the parser is in an error state.
|
|
18
18
|
*/
|
|
19
|
-
VALUE
|
|
19
|
+
VALUE HttpParser_has_error(VALUE self)
|
|
20
20
|
{
|
|
21
21
|
http_parser *http = NULL;
|
|
22
22
|
DATA_GET(self, http_parser, http);
|
|
23
23
|
|
|
24
|
-
return
|
|
24
|
+
return http_parser_has_error(http) ? Qtrue : Qfalse;
|
|
25
25
|
}</pre>
|
|
26
26
|
</body>
|
|
27
27
|
</html>
|
|
@@ -5,24 +5,23 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>finished? (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.finished? -> true/false
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
* set to 0 on initialize or reset calls and is incremented each time execute is called.
|
|
17
|
+
* Tells you whether the parser is finished or not and in a good state.
|
|
19
18
|
*/
|
|
20
|
-
VALUE
|
|
19
|
+
VALUE HttpParser_is_finished(VALUE self)
|
|
21
20
|
{
|
|
22
21
|
http_parser *http = NULL;
|
|
23
22
|
DATA_GET(self, http_parser, http);
|
|
24
23
|
|
|
25
|
-
return
|
|
24
|
+
return http_parser_is_finished(http) ? Qtrue : Qfalse;
|
|
26
25
|
}</pre>
|
|
27
26
|
</body>
|
|
28
27
|
</html>
|
|
@@ -5,24 +5,24 @@
|
|
|
5
5
|
|
|
6
6
|
<html>
|
|
7
7
|
<head>
|
|
8
|
-
<title>
|
|
8
|
+
<title>nread (Mongrel::HttpParser)</title>
|
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
13
|
<pre>/**
|
|
14
14
|
* call-seq:
|
|
15
|
-
* parser.
|
|
15
|
+
* parser.nread -> Integer
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* Returns the amount of data processed so far during this processing cycle. It is
|
|
18
|
+
* set to 0 on initialize or reset calls and is incremented each time execute is called.
|
|
18
19
|
*/
|
|
19
|
-
VALUE
|
|
20
|
+
VALUE HttpParser_nread(VALUE self)
|
|
20
21
|
{
|
|
21
22
|
http_parser *http = NULL;
|
|
22
23
|
DATA_GET(self, http_parser, http);
|
|
23
|
-
http_parser_init(http);
|
|
24
24
|
|
|
25
|
-
return
|
|
25
|
+
return INT2FIX(http->nread);
|
|
26
26
|
}</pre>
|
|
27
27
|
</body>
|
|
28
28
|
</html>
|
|
@@ -103,7 +103,7 @@ efficiently handling large file uploads.
|
|
|
103
103
|
<h3 class="section-bar">Methods</h3>
|
|
104
104
|
|
|
105
105
|
<div class="name-list">
|
|
106
|
-
<a href="#
|
|
106
|
+
<a href="#M000035">new</a>
|
|
107
107
|
</div>
|
|
108
108
|
</div>
|
|
109
109
|
|
|
@@ -143,12 +143,12 @@ efficiently handling large file uploads.
|
|
|
143
143
|
<div id="methods">
|
|
144
144
|
<h3 class="section-bar">Public Class methods</h3>
|
|
145
145
|
|
|
146
|
-
<div id="method-
|
|
147
|
-
<a name="
|
|
146
|
+
<div id="method-M000035" class="method-detail">
|
|
147
|
+
<a name="M000035"></a>
|
|
148
148
|
|
|
149
149
|
<div class="method-heading">
|
|
150
|
-
<a href="HttpRequest.src/
|
|
151
|
-
onclick="popupCode('HttpRequest.src/
|
|
150
|
+
<a href="HttpRequest.src/M000035.html" target="Code" class="method-signature"
|
|
151
|
+
onclick="popupCode('HttpRequest.src/M000035.html');return false;">
|
|
152
152
|
<span class="method-name">new</span><span class="method-args">(params, initial_body, socket)</span>
|
|
153
153
|
</a>
|
|
154
154
|
</div>
|
|
@@ -10,22 +10,22 @@
|
|
|
10
10
|
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
11
|
</head>
|
|
12
12
|
<body class="standalone-code">
|
|
13
|
-
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
<pre> <span class="ruby-comment cmt"># File lib/mongrel.rb, line 142</span>
|
|
14
|
+
142: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">params</span>, <span class="ruby-identifier">initial_body</span>, <span class="ruby-identifier">socket</span>)
|
|
15
|
+
143: <span class="ruby-ivar">@body</span> = <span class="ruby-identifier">initial_body</span> <span class="ruby-operator">||</span> <span class="ruby-value str">""</span>
|
|
16
|
+
144: <span class="ruby-ivar">@params</span> = <span class="ruby-identifier">params</span>
|
|
17
|
+
145: <span class="ruby-ivar">@socket</span> = <span class="ruby-identifier">socket</span>
|
|
18
|
+
146:
|
|
19
|
+
147: <span class="ruby-comment cmt"># fix up the CGI requirements</span>
|
|
20
|
+
148: <span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">CONTENT_LENGTH</span>] = <span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP_CONTENT_LENGTH</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
|
|
21
|
+
149: <span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">CONTENT_TYPE</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP_CONTENT_TYPE</span>]
|
|
22
|
+
150:
|
|
23
|
+
151: <span class="ruby-comment cmt"># now, if the initial_body isn't long enough for the content length we have to fill it</span>
|
|
24
|
+
152: <span class="ruby-comment cmt"># TODO: adapt for big ass stuff by writing to a temp file</span>
|
|
25
|
+
153: <span class="ruby-identifier">clen</span> = <span class="ruby-identifier">params</span>[<span class="ruby-constant">Const</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP_CONTENT_LENGTH</span>].<span class="ruby-identifier">to_i</span>
|
|
26
|
+
154: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">clen</span>
|
|
27
|
+
155: <span class="ruby-ivar">@body</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@socket</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">clen</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@body</span>.<span class="ruby-identifier">length</span>)
|
|
28
|
+
156: <span class="ruby-keyword kw">end</span>
|
|
29
|
+
157: <span class="ruby-keyword kw">end</span></pre>
|
|
30
30
|
</body>
|
|
31
31
|
</html>
|
|
@@ -94,7 +94,7 @@ The parameter to start is the response code—which <a
|
|
|
94
94
|
href="../Mongrel.html">Mongrel</a> will translate for you based on
|
|
95
95
|
HTTP_STATUS_CODES. The head parameter is how you write custom headers. The
|
|
96
96
|
out parameter is where you write your body. The default status code for <a
|
|
97
|
-
href="HttpResponse.html#
|
|
97
|
+
href="HttpResponse.html#M000027">HttpResponse.start</a> is 200 so the above
|
|
98
98
|
example is redundant.
|
|
99
99
|
</p>
|
|
100
100
|
<p>
|
|
@@ -131,10 +131,13 @@ will write this for you based on the out length.
|
|
|
131
131
|
<h3 class="section-bar">Methods</h3>
|
|
132
132
|
|
|
133
133
|
<div class="name-list">
|
|
134
|
-
<a href="#
|
|
135
|
-
<a href="#
|
|
136
|
-
<a href="#
|
|
137
|
-
<a href="#
|
|
134
|
+
<a href="#M000032">finished</a>
|
|
135
|
+
<a href="#M000026">new</a>
|
|
136
|
+
<a href="#M000028">reset</a>
|
|
137
|
+
<a href="#M000031">send_body</a>
|
|
138
|
+
<a href="#M000030">send_header</a>
|
|
139
|
+
<a href="#M000029">send_status</a>
|
|
140
|
+
<a href="#M000027">start</a>
|
|
138
141
|
</div>
|
|
139
142
|
</div>
|
|
140
143
|
|
|
@@ -189,12 +192,12 @@ will write this for you based on the out length.
|
|
|
189
192
|
<div id="methods">
|
|
190
193
|
<h3 class="section-bar">Public Class methods</h3>
|
|
191
194
|
|
|
192
|
-
<div id="method-
|
|
193
|
-
<a name="
|
|
195
|
+
<div id="method-M000026" class="method-detail">
|
|
196
|
+
<a name="M000026"></a>
|
|
194
197
|
|
|
195
198
|
<div class="method-heading">
|
|
196
|
-
<a href="HttpResponse.src/
|
|
197
|
-
onclick="popupCode('HttpResponse.src/
|
|
199
|
+
<a href="HttpResponse.src/M000026.html" target="Code" class="method-signature"
|
|
200
|
+
onclick="popupCode('HttpResponse.src/M000026.html');return false;">
|
|
198
201
|
<span class="method-name">new</span><span class="method-args">(socket)</span>
|
|
199
202
|
</a>
|
|
200
203
|
</div>
|
|
@@ -205,12 +208,12 @@ will write this for you based on the out length.
|
|
|
205
208
|
|
|
206
209
|
<h3 class="section-bar">Public Instance methods</h3>
|
|
207
210
|
|
|
208
|
-
<div id="method-
|
|
209
|
-
<a name="
|
|
211
|
+
<div id="method-M000032" class="method-detail">
|
|
212
|
+
<a name="M000032"></a>
|
|
210
213
|
|
|
211
214
|
<div class="method-heading">
|
|
212
|
-
<a href="HttpResponse.src/
|
|
213
|
-
onclick="popupCode('HttpResponse.src/
|
|
215
|
+
<a href="HttpResponse.src/M000032.html" target="Code" class="method-signature"
|
|
216
|
+
onclick="popupCode('HttpResponse.src/M000032.html');return false;">
|
|
214
217
|
<span class="method-name">finished</span><span class="method-args">()</span>
|
|
215
218
|
</a>
|
|
216
219
|
</div>
|
|
@@ -223,12 +226,12 @@ the proper format to make an HTTP/1.1 response.
|
|
|
223
226
|
</div>
|
|
224
227
|
</div>
|
|
225
228
|
|
|
226
|
-
<div id="method-
|
|
227
|
-
<a name="
|
|
229
|
+
<div id="method-M000028" class="method-detail">
|
|
230
|
+
<a name="M000028"></a>
|
|
228
231
|
|
|
229
232
|
<div class="method-heading">
|
|
230
|
-
<a href="HttpResponse.src/
|
|
231
|
-
onclick="popupCode('HttpResponse.src/
|
|
233
|
+
<a href="HttpResponse.src/M000028.html" target="Code" class="method-signature"
|
|
234
|
+
onclick="popupCode('HttpResponse.src/M000028.html');return false;">
|
|
232
235
|
<span class="method-name">reset</span><span class="method-args">()</span>
|
|
233
236
|
</a>
|
|
234
237
|
</div>
|
|
@@ -241,12 +244,54 @@ to write an alternative response.
|
|
|
241
244
|
</div>
|
|
242
245
|
</div>
|
|
243
246
|
|
|
244
|
-
<div id="method-
|
|
245
|
-
<a name="
|
|
247
|
+
<div id="method-M000031" class="method-detail">
|
|
248
|
+
<a name="M000031"></a>
|
|
246
249
|
|
|
247
250
|
<div class="method-heading">
|
|
248
|
-
<a href="HttpResponse.src/
|
|
249
|
-
onclick="popupCode('HttpResponse.src/
|
|
251
|
+
<a href="HttpResponse.src/M000031.html" target="Code" class="method-signature"
|
|
252
|
+
onclick="popupCode('HttpResponse.src/M000031.html');return false;">
|
|
253
|
+
<span class="method-name">send_body</span><span class="method-args">()</span>
|
|
254
|
+
</a>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
<div class="method-description">
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<div id="method-M000030" class="method-detail">
|
|
262
|
+
<a name="M000030"></a>
|
|
263
|
+
|
|
264
|
+
<div class="method-heading">
|
|
265
|
+
<a href="HttpResponse.src/M000030.html" target="Code" class="method-signature"
|
|
266
|
+
onclick="popupCode('HttpResponse.src/M000030.html');return false;">
|
|
267
|
+
<span class="method-name">send_header</span><span class="method-args">()</span>
|
|
268
|
+
</a>
|
|
269
|
+
</div>
|
|
270
|
+
|
|
271
|
+
<div class="method-description">
|
|
272
|
+
</div>
|
|
273
|
+
</div>
|
|
274
|
+
|
|
275
|
+
<div id="method-M000029" class="method-detail">
|
|
276
|
+
<a name="M000029"></a>
|
|
277
|
+
|
|
278
|
+
<div class="method-heading">
|
|
279
|
+
<a href="HttpResponse.src/M000029.html" target="Code" class="method-signature"
|
|
280
|
+
onclick="popupCode('HttpResponse.src/M000029.html');return false;">
|
|
281
|
+
<span class="method-name">send_status</span><span class="method-args">()</span>
|
|
282
|
+
</a>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<div class="method-description">
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
|
|
289
|
+
<div id="method-M000027" class="method-detail">
|
|
290
|
+
<a name="M000027"></a>
|
|
291
|
+
|
|
292
|
+
<div class="method-heading">
|
|
293
|
+
<a href="HttpResponse.src/M000027.html" target="Code" class="method-signature"
|
|
294
|
+
onclick="popupCode('HttpResponse.src/M000027.html');return false;">
|
|
250
295
|
<span class="method-name">start</span><span class="method-args">(status=200) {|@header, @body| ...}</span>
|
|
251
296
|
</a>
|
|
252
297
|
</div>
|