drb で用いる ACL(Access Control List)クラス。
Access control list は "allow" と "deny" の2つからなります。 "all" や "*" という文字列は任意のアドレスにマッチします。 IPAddr が取り扱える任意のアドレス/アドレスマスクを使うことができます。
ACLのエントリーは、以下の例に示すように、
"allow_or_deny", "addr1", "allow_or_deny", "addr2", :
という文字列配列で表現されます。
@see DRb.#install_acl, DRb.#start_service, DRb::DRbServer.default_acl, DRb::DRbServer.new
ACL を単独で用いる例。
require "drb/acl" list = %w[ deny all allow 192.168.1.1 allow ::ffff:192.168.1.2 allow 192.168.1.3 ] # From Socket#peeraddr, see also ACL#allow_socket? addr = ["AF_INET", 10, "lc630", "192.168.1.3"] acl = ACL.new p acl.allow_addr?(addr) # => true acl = ACL.new(list, ACL::DENY_ALLOW) p acl.allow_addr?(addr) # => true
new(list=nil, order = DENY_ALLOW) -> ACL
[permalink][rdoc]新たな ACL オブジェクトを返します。
list で許可/拒否するアドレスのリストを指定し、 order でデフォルトの挙動を指定します。
order に ACL::DENY_ALLOW を指定するとデフォルトですべてのアドレスを拒否します。ACL::ALLOW_DENY を指定するとデフォルトですべてのアドレスを許可します。
require "drb/acl" list = %w[ deny all allow 192.168.1.1 allow ::ffff:192.168.1.2 allow 192.168.1.3 ] acl = ACL.new(list, ACL::DENY_ALLOW)
allow_addr?(addr) -> bool
[permalink][rdoc]addr が ACL で許可されているならば真を返します。
allow_socket?(soc) -> bool
[permalink][rdoc]ソケットに関連付けられたアドレスが ACL で許可されているならば真を返します。
install_list(list) -> ()
[permalink][rdoc]ACL に list で指定したエントリーを追加します。
require "drb/acl" acl = ACL.new acl.install_list(["deny", "192.168.1.45"])