ruby-ajp 0.1.5
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/COPYING +504 -0
- data/Install.en +231 -0
- data/Install.ja +250 -0
- data/NEWS.en +13 -0
- data/NEWS.ja +12 -0
- data/README.en +56 -0
- data/README.ja +54 -0
- data/Rakefile +24 -0
- data/example/dump-server.rb +68 -0
- data/example/error-server.rb +13 -0
- data/example/hello-server.rb +18 -0
- data/lib/net/ajp13.rb +815 -0
- data/lib/net/ajp13client.rb +361 -0
- data/lib/net/ajp13server.rb +430 -0
- data/ruby-ajp.gemspec +27 -0
- data/setup.rb +1585 -0
- data/test/net/data/ajp13request-data.1 +0 -0
- data/test/net/data/ajp13response-header.1 +0 -0
- data/test/net/data/ajp13response-webdav.1 +0 -0
- data/test/net/data/ajp13response-webdav.2 +0 -0
- data/test/net/data/rand +0 -0
- data/test/net/test_ajp13client.rb +353 -0
- data/test/net/test_ajp13packet.rb +320 -0
- data/test/net/test_ajp13request.rb +177 -0
- data/test/net/test_ajp13response.rb +162 -0
- data/test/net/test_ajp13server.rb +548 -0
- metadata +73 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'net/ajp13server'
|
3
|
+
require 'erb'
|
4
|
+
|
5
|
+
class DumpServer < Net::AJP13::Server
|
6
|
+
include ERB::Util
|
7
|
+
|
8
|
+
TEMPLATE = DATA.read
|
9
|
+
|
10
|
+
def process_request(req)
|
11
|
+
logger.info("Requested from #{req.remote_host}:#{req.remote_addr}")
|
12
|
+
res = Net::AJP13::Response.new(200)
|
13
|
+
res['Content-Type'] = 'text/html'
|
14
|
+
res['Content-Langauge'] = 'en-US'
|
15
|
+
res.body = ERB.new(TEMPLATE).result(binding)
|
16
|
+
return res
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
serv = DumpServer.new('localhost', 3009)
|
21
|
+
serv.start
|
22
|
+
|
23
|
+
|
24
|
+
__END__
|
25
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
26
|
+
<html lang="en-US">
|
27
|
+
<head>
|
28
|
+
<title>Ruby/AJP example: Dump Server</title>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<h1>User request</h1>
|
32
|
+
<h2>Request Line</h2>
|
33
|
+
<dl>
|
34
|
+
<dt>Method</dt><dd><%=h req.method %></dd>
|
35
|
+
<dt>Protocol</dt><dd><%=h req.protocol %></dd>
|
36
|
+
<dt>Path</dt><dd><%=h req.path%></dd>
|
37
|
+
</dl>
|
38
|
+
<h2>HTTP headers</h2>
|
39
|
+
<dl>
|
40
|
+
<% req.each do |name, value| %>
|
41
|
+
<dt><%=h name %></dt><dd><%=h value %></dd>
|
42
|
+
<% end %>
|
43
|
+
</dl>
|
44
|
+
<h2>Environments</h2>
|
45
|
+
<dl>
|
46
|
+
<dt>is_ssl?</dt><dd><%= req.is_ssl? %></dd>
|
47
|
+
<dt>remote_addr</dt><dd><%=h req.remote_addr%></dd>
|
48
|
+
<dt>remote_host</dt><dd><%=h req.remote_host%></dd>
|
49
|
+
<dt>server_name</dt><dd><%=h req.server_name%></dd>
|
50
|
+
<dt>server_port</dt><dd><%=h req.server_port%></dd>
|
51
|
+
</dl>
|
52
|
+
<h2>AJP attributes</h2>
|
53
|
+
<dl>
|
54
|
+
<% req.each_attribute do |name, value| %>
|
55
|
+
<dt><%=h name %></dt><dd><%=h value %></dd>
|
56
|
+
<% end %>
|
57
|
+
</dl>
|
58
|
+
<% if req.body_stream %>
|
59
|
+
<% body = req.body_stream.read %>
|
60
|
+
<% if %r(\Atext/) =~ req['content-type'] or
|
61
|
+
req['content-type'] == 'application/x-form-www-urlencoded' %>
|
62
|
+
<pre><%=h body %></pre>
|
63
|
+
<% else %>
|
64
|
+
<pre><%=[body].pack('m')%></pre>
|
65
|
+
<% end %>
|
66
|
+
<% end %>
|
67
|
+
</body>
|
68
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'net/ajp13server'
|
4
|
+
|
5
|
+
# This server always returns "Hello, World!"
|
6
|
+
class HelloServer < Net::AJP13::Server
|
7
|
+
def process_request(req)
|
8
|
+
logger.info("Requested from #{req.remote_host}:#{req.remote_addr}")
|
9
|
+
res = Net::AJP13::Response.new(200)
|
10
|
+
res['Content-Type'] = 'text/plain'
|
11
|
+
res.body = 'Hello, World!'
|
12
|
+
|
13
|
+
return res
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
serv = HelloServer.new('localhost', 3009)
|
18
|
+
serv.start
|