2015-12-16 05:07:31 +00:00
|
|
|
# frozen_string_literal: false
|
2003-10-20 15:24:00 +00:00
|
|
|
require 'drb/drb'
|
|
|
|
require 'drb/extserv'
|
|
|
|
|
2014-06-01 03:07:58 +00:00
|
|
|
module DRbTests
|
|
|
|
|
2003-10-20 15:24:00 +00:00
|
|
|
class EvalAttack
|
2005-02-13 15:13:54 +00:00
|
|
|
def initialize
|
|
|
|
@four = DRb::DRbServer.new('druby://localhost:0', self, {:safe_level => 4})
|
|
|
|
end
|
|
|
|
|
|
|
|
def four
|
|
|
|
DRbObject.new_with_uri(@four.uri)
|
|
|
|
end
|
|
|
|
|
2003-10-20 15:24:00 +00:00
|
|
|
def remote_class
|
|
|
|
DRbObject.new(self.class)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-06-01 03:07:58 +00:00
|
|
|
end
|
|
|
|
|
2003-10-20 15:24:00 +00:00
|
|
|
|
|
|
|
if __FILE__ == $0
|
|
|
|
def ARGV.shift
|
|
|
|
it = super()
|
|
|
|
raise "usage: #{$0} <uri> <name>" unless it
|
|
|
|
it
|
|
|
|
end
|
|
|
|
|
|
|
|
$SAFE = 1
|
|
|
|
|
2014-06-01 03:07:58 +00:00
|
|
|
DRb.start_service('druby://localhost:0', DRbTests::EvalAttack.new, {:safe_level => 2})
|
2014-02-07 01:54:40 +00:00
|
|
|
es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
|
2003-10-20 15:24:00 +00:00
|
|
|
DRb.thread.join
|
2014-02-07 01:54:40 +00:00
|
|
|
es.stop_service if es.alive?
|
2003-10-20 15:24:00 +00:00
|
|
|
end
|