1 diff -Nur ruby-mongrel-1.1.5.orig/bin/mongrel_rails ruby-mongrel-1.1.5.nogems/bin/mongrel_rails
2 --- ruby-mongrel-1.1.5.orig/bin/mongrel_rails 1969-12-31 17:00:00.000000000 -0700
3 +++ ruby-mongrel-1.1.5.nogems/bin/mongrel_rails 2009-02-20 09:32:44.000000000 -0700
6 # Copyright (c) 2005 Zed A. Shaw
7 # You can redistribute it and/or modify it under the same terms as Ruby.
13 -$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"
15 require 'mongrel/rails'
17 diff -Nur ruby-mongrel-1.1.5.orig/examples/camping/blog.rb ruby-mongrel-1.1.5.nogems/examples/camping/blog.rb
18 --- ruby-mongrel-1.1.5.orig/examples/camping/blog.rb 1969-12-31 17:00:00.000000000 -0700
19 +++ ruby-mongrel-1.1.5.nogems/examples/camping/blog.rb 2009-02-20 09:32:44.000000000 -0700
23 $:.unshift File.dirname(__FILE__) + "/../../lib"
25 -require_gem 'camping', '>=1.4'
26 require 'camping/session'
29 diff -Nur ruby-mongrel-1.1.5.orig/examples/camping/tepee.rb ruby-mongrel-1.1.5.nogems/examples/camping/tepee.rb
30 --- ruby-mongrel-1.1.5.orig/examples/camping/tepee.rb 1969-12-31 17:00:00.000000000 -0700
31 +++ ruby-mongrel-1.1.5.nogems/examples/camping/tepee.rb 2009-02-20 09:32:44.000000000 -0700
34 $:.unshift File.dirname(__FILE__) + "/../../lib"
35 -%w(rubygems redcloth camping acts_as_versioned).each { |lib| require lib }
36 +%w(redcloth camping acts_as_versioned).each { |lib| require lib }
40 diff -Nur ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb ruby-mongrel-1.1.5.nogems/examples/mongrel_simple_service.rb
41 --- ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb 1969-12-31 17:00:00.000000000 -0700
42 +++ ruby-mongrel-1.1.5.nogems/examples/mongrel_simple_service.rb 2009-02-20 09:33:09.000000000 -0700
44 # This script emualtes script/server behavior but running webrick http server
50 diff -Nur ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb.orig ruby-mongrel-1.1.5.nogems/examples/mongrel_simple_service.rb.orig
51 --- ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb.orig 1969-12-31 17:00:00.000000000 -0700
52 +++ ruby-mongrel-1.1.5.nogems/examples/mongrel_simple_service.rb.orig 1969-12-31 17:00:00.000000000 -0700
54 +# This script emualtes script/server behavior but running webrick http server
61 +require 'win32/service'
63 +DEBUG_LOG_FILE = File.expand_path(File.dirname(__FILE__) + '/debug.log')
65 +class SimpleHandler < Mongrel::HttpHandler
66 + def process(request, response)
67 + response.start do |head,out|
68 + head["Content-Type"] = "text/html"
69 + results = "<html><body>Your request:<br /><pre>#{request.params.to_yaml}</pre><a href=\"/files\">View the files.</a></body></html>"
70 + if request.params["HTTP_ACCEPT_ENCODING"] == "gzip,deflate"
71 + head["Content-Encoding"] = "deflate"
72 + # send it back deflated
73 + out << Zlib::Deflate.deflate(results)
75 + # no gzip supported, send it back normal
82 +class MongrelDaemon < Win32::Daemon
83 + def initialize(options)
88 + File.open(DEBUG_LOG_FILE,"a+") { |f| f.puts("#{Time.now} - service_init entered") }
90 + File.open(DEBUG_LOG_FILE,"a+") { |f| f.puts("Mongrel running on #{@options[:ip]}:#{@options[:port]} with docroot #{@options[:server_root]}") }
92 + @simple = SimpleHandler.new
93 + @files = Mongrel::DirHandler.new(@options[:server_root])
95 + @http_server = Mongrel::HttpServer.new(@options[:ip], @options[:port])
96 + @http_server.register("/", @simple)
97 + @http_server.register("/files", @files)
99 + File.open(DEBUG_LOG_FILE,"a+") { |f| f.puts("#{Time.now} - service_init left") }
103 + File.open(DEBUG_LOG_FILE,"a+"){ |f|
104 + f.puts "stop signal received: " + Time.now.to_s
105 + f.puts "sending stop to mongrel threads: " + Time.now.to_s
111 + File.open(DEBUG_LOG_FILE,"a+"){ |f|
112 + f.puts "pause signal received: " + Time.now.to_s
117 + File.open(DEBUG_LOG_FILE,"a+"){ |f|
118 + f.puts "continue/resume signal received: " + Time.now.to_s
123 + File.open(DEBUG_LOG_FILE,"a+") { |f| f.puts("#{Time.now} - service_main entered") }
126 + File.open(DEBUG_LOG_FILE,"a+") { |f| f.puts("#{Time.now} - http_server.run") }
129 + # No runner thread was needed after all!
130 + #@runner = Thread.new do
131 + # @http_server.acceptor.join
133 + #File.open("d:\\test.log","a+") { |f| f.puts("#{Time.now} - runner.run") }
136 + # here is where magic happens!
137 + # if put blocking code here, the thread never left service_main, and the rb_func_call in service.c
138 + # never exit, even if the stop signal is received.
140 + # to probe my theory, just comment the while loop and remove the '1' from sleep function
141 + # service start ok, but fail to stop.
143 + # Even if no functional code is in service_main (because we have other working threads),
144 + # we must monitor the state of the service to exit when the STOP event is received.
146 + # Note: maybe not loop in 1 second intervals?
147 + while state == RUNNING
151 + rescue StandardError, Exception, interrupt => err
152 + File.open(DEBUG_LOG_FILE,"a+"){ |f| f.puts("#{Time.now} - Error: #{err}") }
153 + File.open(DEBUG_LOG_FILE,"a+"){ |f| f.puts("BACKTRACE: " + err.backtrace.join("\n")) }
157 + File.open(DEBUG_LOG_FILE,"a+") { |f| f.puts("#{Time.now} - service_main left") }
165 + :server_root => File.expand_path(File.dirname(__FILE__)),
168 +web_server = MongrelDaemon.new(OPTIONS)
170 diff -Nur ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb.rej ruby-mongrel-1.1.5.nogems/examples/mongrel_simple_service.rb.rej
171 --- ruby-mongrel-1.1.5.orig/examples/mongrel_simple_service.rb.rej 1969-12-31 17:00:00.000000000 -0700
172 +++ ruby-mongrel-1.1.5.nogems/examples/mongrel_simple_service.rb.rej 2009-02-20 09:32:44.000000000 -0700
176 + # This script emualtes script/server behavior but running webrick http server
177 +- require 'rubygems'
182 + # This script emualtes script/server behavior but running webrick http server
186 diff -Nur ruby-mongrel-1.1.5.orig/lib/mongrel/command.rb ruby-mongrel-1.1.5.nogems/lib/mongrel/command.rb
187 --- ruby-mongrel-1.1.5.orig/lib/mongrel/command.rb 1969-12-31 17:00:00.000000000 -0700
188 +++ ruby-mongrel-1.1.5.nogems/lib/mongrel/command.rb 2009-02-20 09:32:44.000000000 -0700
191 # Builds a list of possible commands from the Command derivates list
193 + return [] # Neutered
194 pmgr = GemPlugin::Manager.instance
195 list = pmgr.plugins["/commands"].keys
198 cmd_name = "mongrel::" + cmd_name
201 - command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
203 + # command = GemPlugin::Manager.instance.create("/commands/#{cmd_name}", :argv => args)
204 rescue OptionParser::InvalidOption
205 STDERR.puts "#$! for command '#{cmd_name}'"
206 STDERR.puts "Try #{cmd_name} -h to get help."
207 diff -Nur ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb ruby-mongrel-1.1.5.nogems/lib/mongrel/gems.rb
208 --- ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb 1969-12-31 17:00:00.000000000 -0700
209 +++ ruby-mongrel-1.1.5.nogems/lib/mongrel/gems.rb 2009-02-20 09:39:02.000000000 -0700
212 # ActiveSupport breaks 'require' by making it always return a true value
213 Kernel.require 'rubygems'
214 - version ? gem(library, version) : gem(library)
216 - rescue Gem::LoadError, LoadError, RuntimeError
218 + version ? gem(library, version) : gem(library)
219 + rescue Gem::LoadError
222 + rescue LoadError, RuntimeError
223 # puts "** #{library.inspect} could not be loaded" unless library == "mongrel_experimental"
231 \ No newline at end of file
233 diff -Nur ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb.orig ruby-mongrel-1.1.5.nogems/lib/mongrel/gems.rb.orig
234 --- ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb.orig 1969-12-31 17:00:00.000000000 -0700
235 +++ ruby-mongrel-1.1.5.nogems/lib/mongrel/gems.rb.orig 1969-12-31 17:00:00.000000000 -0700
241 + def require(library, version = nil)
243 + Kernel.require library
244 + rescue LoadError, RuntimeError => e
246 + # ActiveSupport breaks 'require' by making it always return a true value
247 + Kernel.require 'rubygems'
248 + version ? gem(library, version) : gem(library)
250 + rescue Gem::LoadError, LoadError, RuntimeError
251 + # puts "** #{library.inspect} could not be loaded" unless library == "mongrel_experimental"
259 \ No newline at end of file
260 diff -Nur ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb.rej ruby-mongrel-1.1.5.nogems/lib/mongrel/gems.rb.rej
261 --- ruby-mongrel-1.1.5.orig/lib/mongrel/gems.rb.rej 1969-12-31 17:00:00.000000000 -0700
262 +++ ruby-mongrel-1.1.5.nogems/lib/mongrel/gems.rb.rej 2009-02-20 09:32:44.000000000 -0700
266 + def require(library, version = nil)
268 + Kernel.require library
269 +- rescue LoadError, RuntimeError => e
271 +- # ActiveSupport breaks 'require' by making it always return a true value
272 +- require 'rubygems'
273 +- version ? gem(library, version) : gem(library)
275 +- rescue Gem::LoadError, LoadError, RuntimeError
276 + # puts "** #{library.inspect} could not be loaded" unless library == "mongrel_experimental"
284 + def require(library, version = nil)
286 + Kernel.require library
287 ++ rescue LoadError, RuntimeError
288 + # puts "** #{library.inspect} could not be loaded" unless library == "mongrel_experimental"