Class Dsadmin::Webfe::DispatchServlet
In: lib/dsadmin/webfe/dispatch_servlet.rb
Parent: WEBrick::HTTPServlet::AbstractServlet

The servlet handling all requests.

In large parts copied from Rails‘s DispatchServlet

Methods

Constants

ABSOLUTE_RAILS_ROOT = File.expand_path(RAILS_ROOT)
REQUEST_MUTEX = Mutex.new

Public Class methods

[Source]

     # File lib/dsadmin/webfe/dispatch_servlet.rb, line 163
163:   def initialize(server)
164:     super(server)
165:     @server = server
166:     server_root  = File.expand_path(RAILS_ROOT + "/public/")
167:     @file_handler = WEBrick::HTTPServlet::FileHandler.new(server, server_root)
168:   end

Private Instance methods

[Source]

     # File lib/dsadmin/webfe/dispatch_servlet.rb, line 155
155:   def assign_status(res, header)
156:       if /^(\d+)/ =~ header['status'][0]
157:         res.status = $1.to_i
158:         header.delete('status')
159:       end
160:   end

[Source]

     # File lib/dsadmin/webfe/dispatch_servlet.rb, line 137
137:   def create_env_table(req, origin)
138:       env = req.meta_vars.clone
139:       env.delete "SCRIPT_NAME"
140:       env["QUERY_STRING"] = req.request_uri.query
141:       env["REQUEST_URI"]  = origin if origin
142:       return env
143:   end

[Source]

     # File lib/dsadmin/webfe/dispatch_servlet.rb, line 145
145:   def extract_header_and_body(data)
146:       data.rewind
147:       data = data.read
148: 
149:       raw_header, body = *data.split(/^[\xd\xa]+/on, 2)
150:       header = WEBrick::HTTPUtils::parse_header(raw_header)
151: 
152:       return header, body
153:   end

[Validate]