Sha256: e704e15ba33fd610e94c92268d4bc99471b6df50f13b856a2e23a1b4e5bf7152

Contents?: true

Size: 1.26 KB

Versions: 11

Compression:

Stored size: 1.26 KB

Contents

module DeepTest
  class DRbBindAllTCPSocket < DRb::DRbTCPSocket
    def self.parse_uri(uri)
      if uri =~ /^drubyall:\/\/(.*?):(\d+)(\?(.*))?$/
      	host = $1
      	port = $2.to_i
      	option = $4
      	[host, port, option]
      else
      	raise(DRb::DRbBadScheme, uri) unless uri =~ /^drubyall:/
      	raise(DRb::DRbBadURI, 'can\'t parse uri:' + uri)
    	end
    end

    # Open a server listening for connections at +uri+ using 
    # configuration +config+.
    def self.open_server(uri, config)
      
      DeepTest.logger.debug "drubyall open_server with args: #{uri.inspect} #{config.inspect}"
      
      uri = 'drubyall://:0' unless uri
      host, port, opt = parse_uri(uri)

      if host.size == 0
        host = getservername
      end

      DeepTest.logger.debug("Listening on port #{port}, all addresses.")
	    soc = TCPServer.open('0.0.0.0', port)  	    
      port = soc.addr[1] if port == 0
      uri = "druby://#{host}:#{port}"
      self.new(uri, soc, config)
      
    rescue Exception => e
      unless DRb::DRbBadURI === e or DRb::DRbBadScheme === e
        DeepTest.logger.debug "drubyall open_server exception: #{e.message}\n#{e.backtrace.join("\n")}"
      end
      raise
    end
  end
end

DRb::DRbProtocol.add_protocol DeepTest::DRbBindAllTCPSocket

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
jason-o-matic-deep_test-1.2.2.10 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.11 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.12 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.13 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.14 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.5 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.6 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.7 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.8 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.9 lib/deep_test/extensions/drb_extension.rb
jason-o-matic-deep_test-1.2.2.15 lib/deep_test/extensions/drb_extension.rb