diff --git a/examples/simpletest.rb b/examples/simpletest.rb
index 8ac2e988..48ff1dc1 100644
--- a/examples/simpletest.rb
+++ b/examples/simpletest.rb
@@ -28,13 +28,19 @@ if ARGV.length != 3
exit(1)
end
+stats = Mongrel::StatisticsFilter.new(:sample_rate => 1)
+
config = Mongrel::Configurator.new :host => ARGV[0], :port => ARGV[1] do
listener do
uri "/", :handler => SimpleHandler.new
uri "/", :handler => Mongrel::DeflateFilter.new
+ uri "/", :handler => stats
uri "/dumb", :handler => DumbHandler.new
uri "/dumb", :handler => Mongrel::DeflateFilter.new
+ uri "/dumb", :handler => stats
uri "/files", :handler => Mongrel::DirHandler.new(ARGV[2])
+ uri "/files", :handler => stats
+ uri "/status", :handler => Mongrel::StatusHandler.new(:stats_filter => stats)
end
trap("INT") { stop }
diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index 9165f0aa..e013e5c0 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
@@ -45,6 +45,8 @@ end
module Mongrel
class URIClassifier
+ attr_reader :handler_map
+
# Returns the URIs that have been registered with this classifier so far.
# The URIs returned should not be modified as this will cause a memory leak.
# You can use this to inspect the contents of the URIClassifier.
@@ -457,6 +459,8 @@ module Mongrel
attr_reader :classifier
attr_reader :host
attr_reader :port
+ attr_reader :timeout
+ attr_reader :num_processors
# Creates a working server on host:port (strange things happen if port isn't a Number).
# Use HttpServer::run to start the server and HttpServer.acceptor.join to
@@ -650,6 +654,8 @@ module Mongrel
@classifier.register(uri, [handler])
end
end
+
+ handler.listener = self
end
# Removes any handlers registered at the given URI. See Mongrel::URIClassifier#unregister
diff --git a/lib/mongrel/handlers.rb b/lib/mongrel/handlers.rb
index 0e34a15d..b70568ce 100644
--- a/lib/mongrel/handlers.rb
+++ b/lib/mongrel/handlers.rb
@@ -1,3 +1,5 @@
+require 'mongrel/stats'
+
# Mongrel Web Server - A Mostly Ruby Webserver and Library
#
# Copyright (C) 2005 Zed A. Shaw zedshaw AT zedshaw dot com
@@ -29,6 +31,7 @@ module Mongrel
#
class HttpHandler
attr_reader :header_only
+ attr_accessor :listener
def process(request, response)
end
@@ -42,6 +45,7 @@ module Mongrel
module HttpHandlerPlugin
attr_reader :options
attr_reader :header_only
+ attr_accessor :listener
def initialize(options={})
@options = options
@@ -64,7 +68,7 @@ module Mongrel
def initialize(msg)
@response = Const::ERROR_404_RESPONSE + msg
end
-
+
# Just kicks back the standard 404 response with your special message.
def process(request, response)
response.socket.write(@response)
@@ -165,7 +169,7 @@ module Mongrel
if child == ".."
out << "Up to parent..
"
else
- out << "#{child}
"
+ out << "#{child}
"
end
end
out << "