| Server IP : 109.234.162.214 / Your IP : 216.73.216.112 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/ruby30/share/gems/gems/ruby-lsapi-5.6/scripts/ |
Upload File : |
#!/opt/alt/ruby30/bin/ruby
require 'lsapi'
class CodeCache
def [](filename)
mtime = File.mtime( filename )
entry = @cache[filename];
if entry != nil
return entry
end
code = compile(filename)
#entry = CodeEntry.new( filename, mtime, code )
@cache[filename] = code
return code
end
private
def initialize
@cache = {}
end
def compile(filename)
open(filename) do |f|
s = f.read
s.untaint
binding = eval_string_wrap("binding")
return eval(format("Proc.new {\n%s\n}", s), binding, filename, 0)
end
end
end
$count = 0;
$cache = CodeCache.new
while true
$req = LSAPI.accept
break if $req == nil
filename = ENV['SCRIPT_FILENAME']
filename.untaint
filename =~ %r{^(\/.*?)\/*([^\/]+)$}
path = $1
Dir.chdir( path )
#load( filename, true )
code = $cache[filename]
code.call
end
class CodeEntry
public :path, :name, :mtime, :opcode
def initizlize( filename, mtime, opcode )
filename =~ %r{^(\/.*?)\/*([^\/]+)$}
@path = $1
@name = $2
@mtime = mtime
@opcode = opcode
end
end