diff options
author | Eric Wong <e@80x24.org> | 2013-11-11 03:31:33 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2013-11-12 07:11:05 +0000 |
commit | 7dbf0de3f00d6400526f7742904d56cd5eb5629b (patch) | |
tree | 8c0c75080c50c0d7380335d09a29d0ccd83c2550 /extras/autoindex.rb | |
parent | 1d33205a7500f08c49e247af688877b0cc22cdfe (diff) | |
download | yahns-7dbf0de3f00d6400526f7742904d56cd5eb5629b.tar.gz |
In case we have bugs, this can help us find bugs in our code.
Diffstat (limited to 'extras/autoindex.rb')
-rw-r--r-- | extras/autoindex.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/extras/autoindex.rb b/extras/autoindex.rb index b868a5c..9ce6c61 100644 --- a/extras/autoindex.rb +++ b/extras/autoindex.rb @@ -112,15 +112,18 @@ class Autoindex rescue Errno::ENOENT, Errno::ENOTDIR # from Dir.open r(404) rescue => e - r(500, e.message, env) + r(500, e, env) ensure dir.close if dir end def r(code, msg = nil, env = nil) - if env && logger = env["rack.logger"] + if env && exc && logger = env["rack.logger"] + msg = exc.message + msg = msg.dump if /[[:cntrl:]]/ =~ msg # prevent code injection logger.warn("#{env['REQUEST_METHOD']} #{env['PATH_INFO']} " \ - "#{code} #{msg.inspect}") + "#{code} #{msg}") + exc.backtrace.each { |line| logger.warn(line) } end if Rack::Utils::STATUS_WITH_NO_ENTITY_BODY.include?(code) |