Class: IPAccess::TCPServer

Inherits:
TCPServer
  • Object
show all
Includes:
Patches::TCPServer
Defined in:
lib/ipaccess/ghost_doc/ghost_doc_sockets.rb,
lib/ipaccess/socket.rb

Overview

TCPServer class with IP access control. It uses input access lists.

This class acts the same way as TCPServer class but provides special member called acl and a few new instance methods for controlling IP access.

This documentation doesn’t cover description of all class and instance methods of the original TCPServer class, just the patched variants that make use of IP access control.

Example

require 'ipaccess/socket'                 # load sockets subsystem

serv = IPAccess::TCPServer.new(31337)     # create listening TCP socket
serv.acl = :private                       # create and use private access set
serv.blacklist :local, :private           # block local and private IP addresses
serv.permit '127.0.0.5'                   # make an exception

puts serv.acl.show                        # show listed IP addresses

sock = serv.sysaccept                     # accept connection

Instance Attribute Summary collapse

Attributes included from Patches::ACL

#opened_on_deny

Instance Method Summary collapse

Methods included from Patches::ACL

#__ipa_wrap_socket_call, #blacklist_reasonable, #blacklist_reasonable!, #close_on_deny, #close_on_deny=, #default_list, #terminate, #valid_acl?, #whitelist_reasonable, #whitelist_reasonable!

Instance Attribute Details

#aclObject

This member keeps the information about currently used access set. You may use it to do low-level operations on IPAccess::Set object associated with instance. You cannot however call any of global access set operations – to do that use IPAccess::Set.Global contant referencing to global ACL.



784
785
786
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 784

def acl
  @acl
end

Instance Method Details

#acl_recheckObject

This method allows you to re-check access on demad. It uses internal socket’s address and access set assigned to an object. It will close your communication session before throwing an exception in case of denied access – you can prevent it by setting the flag opened_on_deny to true. The flag can be set while initializing object (through argument :opened_on_deny) or by setting the attribute.



795
796
797
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 795

def acl_recheck
  # Real code hidden.
end

#blacklist(*addresses) ⇒ Object #blacklist(list, *addresses) ⇒ Object Also known as: add_black, deny, block



728
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 728

def blacklist(*addresses); end

#blacklist!(*addresses) ⇒ Object #blacklist!(list, *addresses) ⇒ Object Also known as: add_black!, deny!, block!



723
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 723

def blacklist!(*addresses); end

#unblacklist(*addresses) ⇒ Object #unblacklist(list, *addresses) ⇒ Object Also known as: unblock, del_black



748
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 748

def unblacklist(*addresses); end

#unblacklist!(*addresses) ⇒ Object #unblacklist!(list, *addresses) ⇒ Object Also known as: unblock!, del_black!



743
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 743

def unblacklist!(*addresses); end

#unwhitelist(*addresses) ⇒ Object #unwhitelist(list, *addresses) ⇒ Object Also known as: del_white



738
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 738

def unwhitelist(*addresses); end

#unwhitelist!(*addresses) ⇒ Object #unwhitelist!(list, *addresses) ⇒ Object Also known as: del_white!



733
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 733

def unwhitelist!(*addresses); end

#whitelist(*addresses) ⇒ Object #whitelist(list, *addresses) ⇒ Object



718
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 718

def whitelist(*addresses); end

#whitelist!(*addresses) ⇒ Object #whitelist!(list, *addresses) ⇒ Object



713
# File 'lib/ipaccess/ghost_doc/ghost_doc_sockets.rb', line 713

def whitelist!(*addresses); end