ruby-ajp 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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