Policy Class Reference

#include <policy.h>

List of all members.

Public Types

enum  Action { Accept, Reject }
enum  SpecialPolicy { AcceptAll, RejectAll }

Public Member Functions

 Policy ()
 Policy (QString policy)
 Policy (QString action, QString address, QString ports)
 Policy (SpecialPolicy policy)
 Policy (Action action, QHostAddress addr, uchar mask, quint16 fromPort, quint16 toPort=0)
bool matches (const Policy &policy) const
bool operator== (const Policy &policy) const
void fromString (QString policy)
QString toString () const
QString action () const
QString address () const
QString ports () const

Static Public Member Functions

static Action toAction (QString action)

Private Attributes

Action _action
QHostAddress _address
quint16 _fromPort
quint16 _toPort
uchar _mask


Detailed Description

Definition at line 36 of file policy.h.


Member Enumeration Documentation

enum Policy::Action

A set of possible actions for a policy

Enumerator:
Accept  Connections matching this policy will be accepted.
Reject  Connections matching this policy will be rejected.

Definition at line 42 of file policy.h.

enum Policy::SpecialPolicy

Special rule types.

Enumerator:
AcceptAll  Accepts all connections. Equivalent to "accept *:*".
RejectAll  Rejects all connections. Equivalent to "reject *:*".

Definition at line 47 of file policy.h.


Constructor & Destructor Documentation

Policy::Policy (  ) 

Default constructor. Creates an AcceptAll policy.

Definition at line 34 of file policy.cpp.

References _action, _address, _fromPort, _mask, _toPort, and Accept.

Policy::Policy ( QString  policy  ) 

Parses the given policy, represented as a string.

Constructor. Creates a new Policy object from the given string.

Definition at line 43 of file policy.cpp.

References _action, _address, _fromPort, _mask, _toPort, Accept, and fromString().

Policy::Policy ( QString  action,
QString  address,
QString  ports 
)

Parses the given portions of a policy string.

Constructor. Creates a new Policy object from the string parts.

Definition at line 56 of file policy.cpp.

References _action, _address, _fromPort, _mask, _toPort, Accept, and fromString().

Policy::Policy ( SpecialPolicy  policy  ) 

Creates a policy of the given special type.

Constructor. Creates a new Policy object depending on the specified special policy type.

Definition at line 69 of file policy.cpp.

References _action, _address, _fromPort, _mask, _toPort, Accept, AcceptAll, and Reject.

Policy::Policy ( Action  action,
QHostAddress  addr,
uchar  mask,
quint16  fromPort,
quint16  toPort = 0 
)

Creates a policy using the specified information.

Constructor. Creates a new policy object based on the given rules.

Definition at line 78 of file policy.cpp.

References _action, _address, _fromPort, _mask, and _toPort.


Member Function Documentation

bool Policy::matches ( const Policy policy  )  const

Returns true if this policy matches policy.

Returns true if this policy matches policy. For example, if this policy is "reject *:6660-6669" and policy is "reject *:6662-6664", this will return true. For strict comparison, use the == operator.

Definition at line 103 of file policy.cpp.

References _action, _address, _fromPort, _mask, and _toPort.

Referenced by ExitPolicy::contains().

bool Policy::operator== ( const Policy policy  )  const

Returns true if this policy is identical to policy.

Definition at line 90 of file policy.cpp.

References _action, _address, _fromPort, _mask, and _toPort.

void Policy::fromString ( QString  policy  ) 

Parses the given policy string.

Parses the given exit policy string.

Definition at line 115 of file policy.cpp.

References _action, _address, _fromPort, _mask, _toPort, ports(), and toAction().

Referenced by Policy().

QString Policy::toString (  )  const

Converts this policy to a format Tor understands.

Converts this policy to a form Tor understands. The format is: "accept|reject ADDR[/MASK][:PORT]"

PORT can be a single port number, an interval of ports "FROM_PORT-TO_PORT", or "*". If PORT is omitted, that means "*"

Definition at line 155 of file policy.cpp.

References _action, Accept, address(), and ports().

Referenced by ExitPolicy::toString().

Policy::Action Policy::toAction ( QString  action  )  [static]

Converts a string action to an Action enum value.

Converts the given action to a string. This function tolerates both the translated and untranslated forms of the string "accept" and "reject".

Definition at line 164 of file policy.cpp.

References Accept, and Reject.

Referenced by fromString().

QString Policy::action (  )  const

Returns the action taken when this policy matches an address.

Returns the action associated with this policy. NOTE: This string will be translated to whatever the current language setting is.

Definition at line 176 of file policy.cpp.

References _action, and Accept.

QString Policy::address (  )  const

Returns the host address (including mask, if set) for this policy.

Returns the address (and mask, if specified) for this policy.

Definition at line 183 of file policy.cpp.

References _address, and _mask.

Referenced by toString().

QString Policy::ports (  )  const

Returns the port or port range for this policy.

Returns the port (or port range, if specified) for this policy.

Definition at line 199 of file policy.cpp.

References _fromPort, and _toPort.

Referenced by fromString(), and toString().


Member Data Documentation

Action Policy::_action [private]

The action to take for this policy.

Definition at line 84 of file policy.h.

Referenced by action(), fromString(), matches(), operator==(), Policy(), and toString().

QHostAddress Policy::_address [private]

Addresses to which this policy applies.

Definition at line 85 of file policy.h.

Referenced by address(), fromString(), matches(), operator==(), and Policy().

quint16 Policy::_fromPort [private]

Start of a port range.

Definition at line 86 of file policy.h.

Referenced by fromString(), matches(), operator==(), Policy(), and ports().

quint16 Policy::_toPort [private]

End of a port range.

Definition at line 87 of file policy.h.

Referenced by fromString(), matches(), operator==(), Policy(), and ports().

uchar Policy::_mask [private]

Address mask.

Definition at line 88 of file policy.h.

Referenced by address(), fromString(), matches(), operator==(), and Policy().


The documentation for this class was generated from the following files:
Generated on Wed Sep 5 15:49:29 2007 for Vidalia by  doxygen 1.5.3