lib/rack/handler/cgi.rb in rack-0.9.1 vs lib/rack/handler/cgi.rb in rack-1.0.0

- old
+ new

@@ -1,21 +1,25 @@ +require 'rack/content_length' + module Rack module Handler class CGI def self.run(app, options=nil) serve app end def self.serve(app) + app = ContentLength.new(app) + env = ENV.to_hash env.delete "HTTP_CONTENT_LENGTH" env["SCRIPT_NAME"] = "" if env["SCRIPT_NAME"] == "/" env.update({"rack.version" => [0,1], - "rack.input" => STDIN, - "rack.errors" => STDERR, + "rack.input" => $stdin, + "rack.errors" => $stderr, "rack.multithread" => false, "rack.multiprocess" => true, "rack.run_once" => true, @@ -36,10 +40,10 @@ end def self.send_headers(status, headers) STDOUT.print "Status: #{status}\r\n" headers.each { |k, vs| - vs.each { |v| + vs.split("\n").each { |v| STDOUT.print "#{k}: #{v}\r\n" } } STDOUT.print "\r\n" STDOUT.flush