Módulo: Mongo::Address::Validator Private
- Incluído em:
- SRV::Result, URI
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/address/validator.rb
Visão geral
Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.
Recolhimento do Resumo do método de instância
-
#validate_address_str!(address_str) 3 Objeto
privado
Pega uma string de endereço no formato ipv4/ipv6/hostname/socket e valida seu formato.
Detalhes do método de instância
#validate_address_str!(address_str) 3 Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Pega uma string de endereço no formato ipv4/ipv6/hostname/socket e valida seu formato.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'build/ruby-driver-v2.19/lib/mongo/address/validator.rb', linha 27 def validate_address_str!(endereço_str) caso endereço_str quando /\A\[[\d:]+\](?::(\d+))?\z/ # ipv6 com porta opcional se port_str = $1 validate_port_str!(port_str) end quando /\A\//, /\.sock\z/ # Caminho do soquete Unix. # A especificação exige que validemos se o caminho não tem escape # barras, mas se esse fosse o caso, a análise teria # já falhou em outro lugar porque o URI teria sido dividido em # um lugar estranho. # A especificação também permite caminhos de soquete relativos e exige que Os caminhos do #soquete terminam em ".sock". Aceitamos todos os caminhos, exceto caso especial # the .sock extensão para evitar caminhos relativos que caiam no # caso host:port abaixo. quando /[\/\[\]]/ # Não é um host:port nem um endereço ipv4 com porta opcional. # Endereço ipv6 possivelmente comprometido com, por exemplo, delimitador de porta presente e # porta ausente ou lixo extra antes ou depois. aumentar Erro::Endereço inválido, "Nome de host inválido: #{endereço_str}" quando /:.*:/m aumentar Erro::Endereço inválido, "Vários delimitadores de porta não são permitidos: #{endereço_str}" mais # host:port ou endereço ipv4 com número de porta opcional Anfitrião, Porta = endereço_str.dividir(':') se Anfitrião.vazio? aumentar Erro::Endereço inválido, "O host está vazio: #{endereço_str}" end validate_hostname!(Anfitrião) se Porta && Porta.vazio? aumentar Erro::Endereço inválido, "A porta está vazia: #{endereço_str}" end validate_port_str!(Porta) end end |