lib/scripts/knjappserver_cgi.rb in knjappserver-0.0.22 vs lib/scripts/knjappserver_cgi.rb in knjappserver-0.0.23
- old
+ new
@@ -1,9 +1,7 @@
#!/usr/bin/env ruby1.9.1
-time_begin = Time.now
-
#This scripts start an appserver, executes a HTTP-request and terminates.
#Good for programming appserver-supported projects without running an appserver all the time,
#but really slow because of startup for every request.
class Cgi_is_retarded
@@ -63,25 +61,23 @@
:cmdline => false,
:events => false,
:cleaner => false,
:dbrev => false,
:mail_require => false,
+ :debug => false,
:port => 0 #Ruby picks random port and we get the actual port after starting the appserver.
}.merge(Knjappserver::CGI_CONF["knjappserver"])
knjappserver = Knjappserver.new(knjappserver_conf)
knjappserver.start
port = knjappserver.port
-
#Make request.
http = Knj::Http2.new(:host => "localhost", :port => port)
-
#Spawn CGI-variable to emulate FCGI part.
cgi = Cgi_is_retarded.new
-
#The rest is copied from the FCGI-part.
headers = {}
cgi.env_table.each do |key, val|
if key[0, 5] == "HTTP_" and key != "HTTP_KNJAPPSERVER_CGI_CONFIG"
key = Knj::Php.ucwords(key[5, key.length].gsub("_", " ")).gsub(" ", "-")
@@ -134,11 +130,15 @@
count += 1
}
})
end
rescue Exception => e
- knjappserver.stop
-
print "Content-Type: text/html\r\n"
print "\n\n"
print Knj::Errors.error_str(e, {:html => true})
+
+ begin
+ knjappserver.stop if knjappserver
+ rescue => e
+ print "<br />\n<br />\n" + Knj::Errors.error_str(e, {:html => true})
+ end
end
\ No newline at end of file