класс DRb::DRbSSLSocket
Протокол DRb через сокет SSL
URI для сокета DRb через SSL: drbssl://<host>:<port>?<option>. Опция необязательна
Публичные методы класса
# File lib/drb/ssl.rb, line 305 def initialize(uri, soc, config, is_established) @ssl = is_established ? soc : nil super(uri, soc.to_io, config) end
Создаёт экземпляр DRb::DRbSSLSocket.
uri — URI, к которому мы подключены. soc — tcp сокет, к которому мы привязаны. config — наша конфигурация. Либо Hash, либо SSLConfig is_established — логическое значение, указывающее, soc в настоящее время установлен
Вызывается автоматически в соответствии с протоколом DRb.
# File lib/drb/ssl.rb, line 248 def self.open(uri, config) host, port, = parse_uri(uri) host.untaint port.untaint soc = TCPSocket.open(host, port) ssl_conf = SSLConfig::new(config) ssl_conf.setup_ssl_context ssl = ssl_conf.connect(soc) self.new(uri, ssl, ssl_conf, true) end
Возвращает экземпляр DRb::DRbSSLSocket как клиентское подключение с установленным SSL. Вызывается из DRb.start_service или при подключении к удалённому объекту:
DRb.start_service 'drbssl://localhost:0', front, config
uri — URI, к которому мы подключены, 'drbssl://localhost:0' выше, config — наша конфигурация. Либо Hash, либо DRb::DRbSSLSocket::SSLConfig
# File lib/drb/ssl.rb, line 268
def self.open_server(uri, config)
uri = 'drbssl://:0' unless uri
host, port, = parse_uri(uri)
if host.size == 0
host = getservername
soc = open_server_inaddr_any(host, port)
else
soc = TCPServer.open(host, port)
end
port = soc.addr[1] if port == 0
@uri = "drbssl://#{host}:#{port}"
ssl_conf = SSLConfig.new(config)
ssl_conf.setup_certificate
ssl_conf.setup_ssl_context
self.new(@uri, soc, ssl_conf, false)
end Возвращает экземпляр DRb::DRbSSLSocket как серверное подключение с установленным SSL. Вызывается из DRb.start_service или при подключении к удалённому объекту:
DRb.start_service 'drbssl://localhost:0', front, config
uri — URI, к которому мы подключены, 'drbssl://localhost:0' выше, config — наша конфигурация. Либо Hash, либо DRb::DRbSSLSocket::SSLConfig
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.