класс DRb::DRbSSLSocket
Протокол для DRb по SSL-сокету
Указание URI для DRb сокета по SSL: drbssl://<host>:<port>?<option>. Опция необязательна
Публичные методы класса
# File lib/drb/ssl.rb, line 304 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.
BasicObject::new # File lib/drb/ssl.rb, line 249 def self.open(uri, config) host, port, = parse_uri(uri) 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 267
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–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.