Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.112
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
ruby /
vendor_ruby /
rack /
Delete
Unzip
Name
Size
Permission
Date
Action
auth
[ DIR ]
drwxrwxrwx
2020-08-24 23:49
backports
[ DIR ]
drwxrwxrwx
2020-08-24 23:49
handler
[ DIR ]
drwxrwxrwx
2020-08-24 23:49
multipart
[ DIR ]
drwxrwxrwx
2020-08-24 23:49
session
[ DIR ]
drwxrwxrwx
2020-08-24 23:49
utils
[ DIR ]
drwxrwxrwx
2020-08-24 23:49
body_proxy.rb
958
B
-rwxrwxrwx
2020-07-10 13:18
builder.rb
4.27
KB
-rwxrwxrwx
2020-07-10 13:18
cascade.rb
1.34
KB
-rwxrwxrwx
2020-07-10 13:18
chunked.rb
1.58
KB
-rwxrwxrwx
2020-07-10 13:18
commonlogger.rb
2.28
KB
-rwxrwxrwx
2020-07-10 13:18
conditionalget.rb
2.5
KB
-rwxrwxrwx
2020-07-10 13:18
config.rb
379
B
-rwxrwxrwx
2020-07-10 13:18
content_length.rb
840
B
-rwxrwxrwx
2020-07-10 13:18
content_type.rb
670
B
-rwxrwxrwx
2020-07-10 13:18
deflater.rb
4.57
KB
-rwxrwxrwx
2020-07-10 13:18
directory.rb
4.24
KB
-rwxrwxrwx
2020-07-10 13:18
etag.rb
2.11
KB
-rwxrwxrwx
2020-07-10 13:18
file.rb
4.09
KB
-rwxrwxrwx
2020-07-10 13:18
handler.rb
3.25
KB
-rwxrwxrwx
2020-07-10 13:18
head.rb
484
B
-rwxrwxrwx
2020-07-10 13:18
lint.rb
29.26
KB
-rwxrwxrwx
2020-07-10 13:18
lobster.rb
1.97
KB
-rwxrwxrwx
2020-07-10 13:18
lock.rb
601
B
-rwxrwxrwx
2020-07-10 13:18
logger.rb
357
B
-rwxrwxrwx
2020-07-10 13:18
methodoverride.rb
1.01
KB
-rwxrwxrwx
2020-07-10 13:18
mime.rb
30.94
KB
-rwxrwxrwx
2020-07-10 13:18
mock.rb
5.68
KB
-rwxrwxrwx
2020-07-10 13:18
multipart.rb
1.14
KB
-rwxrwxrwx
2020-07-10 13:18
nulllogger.rb
951
B
-rwxrwxrwx
2020-07-10 13:18
recursive.rb
1.73
KB
-rwxrwxrwx
2020-07-10 13:18
reloader.rb
2.97
KB
-rwxrwxrwx
2020-07-10 13:18
request.rb
12.88
KB
-rwxrwxrwx
2020-07-10 13:18
response.rb
4.33
KB
-rwxrwxrwx
2020-07-10 13:18
rewindable_input.rb
3.19
KB
-rwxrwxrwx
2020-07-10 13:18
runtime.rb
961
B
-rwxrwxrwx
2020-07-10 13:18
sendfile.rb
5.18
KB
-rwxrwxrwx
2020-07-10 13:18
server.rb
10.8
KB
-rwxrwxrwx
2020-07-10 13:18
showexceptions.rb
11.7
KB
-rwxrwxrwx
2020-07-10 13:18
showstatus.rb
3.46
KB
-rwxrwxrwx
2020-07-10 13:18
static.rb
4.88
KB
-rwxrwxrwx
2020-07-10 13:18
tempfile_reaper.rb
670
B
-rwxrwxrwx
2020-07-10 13:18
urlmap.rb
2.46
KB
-rwxrwxrwx
2020-07-10 13:18
utils.rb
20.86
KB
-rwxrwxrwx
2020-07-10 13:18
Save
Rename
module Rack # Rack::URLMap takes a hash mapping urls or paths to apps, and # dispatches accordingly. Support for HTTP/1.1 host names exists if # the URLs start with <tt>http://</tt> or <tt>https://</tt>. # # URLMap modifies the SCRIPT_NAME and PATH_INFO such that the part # relevant for dispatch is in the SCRIPT_NAME, and the rest in the # PATH_INFO. This should be taken care of when you need to # reconstruct the URL in order to create links. # # URLMap dispatches in such a way that the longest paths are tried # first, since they are most specific. class URLMap NEGATIVE_INFINITY = -1.0 / 0.0 INFINITY = 1.0 / 0.0 def initialize(map = {}) remap(map) end def remap(map) @mapping = map.map { |location, app| if location =~ %r{\Ahttps?://(.*?)(/.*)} host, location = $1, $2 else host = nil end unless location[0] == ?/ raise ArgumentError, "paths need to start with /" end location = location.chomp('/') match = Regexp.new("^#{Regexp.quote(location).gsub('/', '/+')}(.*)", nil, 'n') [host, location, match, app] }.sort_by do |(host, location, _, _)| [host ? -host.size : INFINITY, -location.size] end end def call(env) path = env[PATH_INFO] script_name = env['SCRIPT_NAME'] hHost = env['HTTP_HOST'] sName = env['SERVER_NAME'] sPort = env['SERVER_PORT'] @mapping.each do |host, location, match, app| unless casecmp?(hHost, host) \ || casecmp?(sName, host) \ || (!host && (casecmp?(hHost, sName) || casecmp?(hHost, sName+':'+sPort))) next end next unless m = match.match(path.to_s) rest = m[1] next unless !rest || rest.empty? || rest[0] == ?/ env['SCRIPT_NAME'] = (script_name + location) env['PATH_INFO'] = rest return app.call(env) end [404, {CONTENT_TYPE => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{path}"]] ensure env['PATH_INFO'] = path env['SCRIPT_NAME'] = script_name end private def casecmp?(v1, v2) # if both nil, or they're the same string return true if v1 == v2 # if either are nil... (but they're not the same) return false if v1.nil? return false if v2.nil? # otherwise check they're not case-insensitive the same v1.casecmp(v2).zero? end end end