method
serve
v1_9_3_392 -
Show latest stable
- Class:
HttpServer
serve(io)private
Main Serve Loop —————————————–
# File lib/xmlrpc/httpserver.rb, line 141
def serve(io)
# perform IP authentification
unless @handler.ip_auth_handler(io)
io << http_resp(403, "Forbidden")
return
end
# parse first line
if io.gets =~ /^(\S+)\s+(\S+)\s+(\S+)/
request = Request.new(io, $1, $2, $3)
else
io << http_resp(400, "Bad Request")
return
end
# parse HTTP headers
while (line=io.gets) !~ /^(\n|\r)/
if line =~ /^([\w-]+):\s*(.*)$/
request.header[$1] = $2.strip
end
end
io.binmode
response = Response.new
# execute request handler
@handler.request_handler(request, response)
# write response back to the client
io << http_resp(response.status, response.status_message,
response.header, response.body)
rescue Exception
io << http_resp(500, "Internal Server Error")
end Related methods
- Class methods
- new
- Private methods
-
http_date -
http_header -
http_resp -
serve