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.
@@ -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,13 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'net/ajp13server'
4
+
5
+ # This server always raises error
6
+ class ErrorServer < Net::AJP13::Server
7
+ def process_request(req)
8
+ raise 'something wrong'
9
+ end
10
+ end
11
+
12
+ serv = ErrorServer.new('localhost', 3009)
13
+ serv.start
@@ -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