モジュール: Mongo::Address::Validator Private

次のドキュメントに含まれます。
Srv::ResultURI
定義:
build/ruby-Driver-v 2.19 /lib/mongo/address/validator.rb

Overview

このモジュールはプライベート API の一部です。 このモジュールは将来削除または変更される可能性があるため、可能な限り使用しないでください。

以来

  • 2.0.0

インスタンス メソッドの概要を折りたたむ

インスタンス メソッドの詳細

次は、 validate_address_str です。 (address_str) =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

ipv 4 /ipv 6 /hostname/socket パス形式のアドレス string を受け取り、その形式を検証します。

以来

  • 2.0.0



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
ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/address/validator.rb', 行27

デフォルト validate_address_str!(address_str)
  ケース address_str
  次の場合: /\A\[[\d:]+\](?::(\d+))?\z/
    任意ポートを使用した# IPv 6
    場合 port_str = $1
      validate_port_str!(port_str)
    end
  次の場合: / \A\/ /, / $.sock\z /
    # UNIX ソケット パス
    # を指定すると、パスにエスケープがないことを検証する必要があります。
    両方のスラッシュが存在する場合、解析は次のようになります
    では URI が で分割されていたため、すでに失敗しました。
    # 奇妙な場所。
    # この仕様では相対的なソケット パスも許可され、次が必要です:
    # ソケット パスは ".sock" で終わる。 すべてのパスを受け入れますが、特殊な大文字と小文字は
    .sock 相対パスが
    ホストとポートの大文字と小文字。
  次の場合: /[\/\[\]]/
    任意ポートを持つホストポートポートやIPv 4アドレスではありません。
    # IPv 6アドレスを で使用した可能性 ポート区切り文字が存在し、かつ
    のポートが欠落しているか、その前または後に余計なジャンクが含まれます。
    発生 エラー::InvalidAddress,
      " 無効 な ホスト名: #{ address_str }
  次の場合: /:.*:/m
    発生 エラー::InvalidAddress,
      "複数のポート区切り文字は許可されていません: #{ address_str } "
  else
    任意のポート番号を持つホストとポートまたはIPv 4アドレスを
    ホスト, ポート = address_str.分裂(':')
    場合 ホスト.空の場合
      発生 エラー::InvalidAddress, "ホストが空です: #{ address_str } "
    end

    validate_hostname!(ホスト)

    場合 ポート & & ポート.空の場合
      発生 エラー::InvalidAddress, "ポートが空です: #{ address_str } "
    end

    validate_port_str!(ポート)
  end
end