about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/mongrel.rb7
-rw-r--r--lib/mongrel/configurator.rb2
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index 595df66..6fb7222 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
@@ -4,6 +4,8 @@
 # Additional work donated by contributors.  See http://mongrel.rubyforge.org/attributions.html
 # for more information.
 
+$mongrel_debug_client = false
+
 require 'socket'
 require 'http11'
 require 'tempfile'
@@ -585,11 +587,14 @@ module Mongrel
         # ignored
       rescue HttpParserError
         STDERR.puts "#{Time.now}: BAD CLIENT (#{params[Const::HTTP_X_FORWARDED_FOR] || client.peeraddr.last}): #$!"
+        if $mongrel_debug_client
+          STDERR.puts "#{Time.now}: REQUEST DATA: #{data.inspect}\n---\nPARAMS: #{params.inspect}\n---\n"
+        end
       rescue Errno::EMFILE
         reap_dead_workers('too many files')
       rescue Object
         STDERR.puts "#{Time.now}: ERROR: #$!"
-        STDERR.puts $!.backtrace.join("\n")
+        STDERR.puts $!.backtrace.join("\n") if $mongrel_debug_client
       ensure
         client.close rescue Object
         request.body.delete if request and request.body.class == Tempfile
diff --git a/lib/mongrel/configurator.rb b/lib/mongrel/configurator.rb
index 78895b9..adb2e1f 100644
--- a/lib/mongrel/configurator.rb
+++ b/lib/mongrel/configurator.rb
@@ -356,7 +356,7 @@ module Mongrel
       if RUBY_PLATFORM !~ /mswin/
         # graceful shutdown
         trap("TERM") { log "TERM signal received."; stop }
-
+        trap("USR1") { log "USR1 received, toggling $mongrel_debug_client to #{!$mongrel_debug_client}"; $mongrel_debug_client = !$mongrel_debug_client }
         # restart
         trap("USR2") { log "USR2 signal received."; stop(true) }