PTLib  Version 2.10.4
PIpAccessControlEntry Class Reference

This class is a single IP access control specification. More...

#include <ipacl.h>

Inheritance diagram for PIpAccessControlEntry:
PObject

List of all members.

Public Member Functions

 PIpAccessControlEntry (PIPSocket::Address addr, PIPSocket::Address msk, PBoolean allow)
 Create a new IP access control specification.
 PIpAccessControlEntry (const PString &description)
PIpAccessControlEntryoperator= (const PString &pstr)
 Set a new IP access control specification.
PIpAccessControlEntryoperator= (const char *cstr)
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank.
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream.
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream.
PString AsString () const
 Convert the specification to a string, that can be processed by the Parse() function.
PBoolean IsValid ()
 Check the internal fields of the specification for validity.
PBoolean Parse (const PString &description)
 Parse the description string into this IP access control specification.
PBoolean Match (PIPSocket::Address &address)
 Check to see if the specified IP address match any of the conditions specifed in the Parse() function for this entry.
const PStringGetDomain () const
 Get the domain part of entry.
const PIPSocket::AddressGetAddress () const
 Get the address part of entry.
const PIPSocket::AddressGetMask () const
 Get the mask part of entry.
PBoolean IsAllowed () const
 Get the allowed flag of entry.
PBoolean IsHidden () const
 Get the hidden flag of entry.

Protected Attributes

PString domain
PIPSocket::Address address
PIPSocket::Address mask
PBoolean allowed
PBoolean hidden

Detailed Description

This class is a single IP access control specification.


Constructor & Destructor Documentation

Create a new IP access control specification.

See the Parse() function for more details on the format of the description parameter.


Member Function Documentation

Convert the specification to a string, that can be processed by the Parse() function.

Returns:
PString representation of the entry.
virtual Comparison PIpAccessControlEntry::Compare ( const PObject obj) const [virtual]

Compare the two objects and return their relative rank.

Returns:
LessThan, EqualTo or GreaterThan according to the relative rank of the objects.
Parameters:
objObject to compare against.

Reimplemented from PObject.

Get the address part of entry.

References address.

const PString& PIpAccessControlEntry::GetDomain ( ) const [inline]

Get the domain part of entry.

References domain.

Get the mask part of entry.

References mask.

Get the allowed flag of entry.

References allowed.

Get the hidden flag of entry.

References hidden.

Check the internal fields of the specification for validity.

Returns:
true if entry is valid.

Check to see if the specified IP address match any of the conditions specifed in the Parse() function for this entry.

Returns:
true if entry can match the address.
Parameters:
addressAddress to search for
PIpAccessControlEntry& PIpAccessControlEntry::operator= ( const PString pstr)

Set a new IP access control specification.

See the Parse() function for more details on the format of the pstr and cstr parameters.

PIpAccessControlEntry& PIpAccessControlEntry::operator= ( const char *  cstr)
PBoolean PIpAccessControlEntry::Parse ( const PString description)

Parse the description string into this IP access control specification.

The string may be of several forms: n.n.n.n Simple IP number, this has an implicit mask of 255.255.255.255 n.n. IP with trailing dot, assumes a mask equal to the number of specified octets eg 10.1. is equivalent to 10.1.0.0/255.255.0.0 n.n.n.n/b An IP network using b bits of mask, for example 10.1.0.0/14 is equivalent to 10.0.1.0/255.248.0.0 n.n.n.n/m.m.m.m An IP network using the specified mask hostname A specific host name, this has an implicit mask of 255.255.255.255 .domain.dom Matches an IP number whose cannonical name (found using a reverse DNS lookup) ends with the specified domain.

Returns:
true if entry is valid.
Parameters:
descriptionDescription of the specification
virtual void PIpAccessControlEntry::PrintOn ( ostream &  strm) const [virtual]

Output the contents of the object to the stream.

This outputs the same format as the AsString() function.

Parameters:
strmStream to print the object into.

Reimplemented from PObject.

virtual void PIpAccessControlEntry::ReadFrom ( istream &  strm) [virtual]

Input the contents of the object from the stream.

This expects the next space delimited entry in the stream to be as described in the Parse() function.

Parameters:
strmStream to read the objects contents from.

Reimplemented from PObject.


Member Data Documentation


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines