ucc::cidr Class Reference
A class to hold internet segment routing rules.
More...
#include <socket.h>
Detailed Description
A class to hold internet segment routing rules.
This class can be used to provide a stand-alone representation of a cidr block of internet addresses or chained together into some form of access control list. The cidr class can hold segments for both IPV4 and IPV6 addresses. The class accepts cidr's defined as C strings, typically in the form of address/bits or address/submask. These routines auto-detect ipv4 and ipv6 addresses.
- Author:
- David Sugar <dyfet@gnutelephony.org>
Definition at line 154 of file socket.h.
Constructor & Destructor Documentation
ucc::cidr::cidr |
( |
char * |
string |
) |
|
Create an unlinked cidr from a string.
The string is typically in the form base-host-address/range, where range might be a bit count or a network mask.
- Parameters:
-
ucc::cidr::cidr |
( |
policy ** |
policy, |
|
|
char * |
string | |
|
) |
| | |
Create an unnamed cidr entry on a specified policy chain.
- Parameters:
-
ucc::cidr::cidr |
( |
policy ** |
policy, |
|
|
char * |
string, |
|
|
char * |
name | |
|
) |
| | |
Create a named cidr entry on a specified policy chain.
- Parameters:
-
| policy | chain to link cidr to. |
| string | for cidr block. |
| name | of this policy object. |
ucc::cidr::cidr |
( |
cidr & |
existing |
) |
|
Construct a copy of an existing cidr.
- Parameters:
-
| existing | cidr we copy from. |
Member Function Documentation
static cidr* ucc::cidr::container |
( |
policy * |
policy, |
|
|
struct sockaddr * |
address | |
|
) |
| | [static] |
Get the largest container cidr entry in a list that matches the socket address.
- Parameters:
-
| policy | chain to search. |
| address | to search for. |
- Returns:
- largest cidr or NULL if none match.
static cidr* ucc::cidr::find |
( |
policy * |
policy, |
|
|
struct sockaddr * |
address | |
|
) |
| | [static] |
Find the smallest cidr entry in a list that matches the socket address.
- Parameters:
-
| policy | chain to search. |
| address | to search for. |
- Returns:
- smallest cidr or NULL if none match.
Get the broadcast host address represented by our cidr.
- Returns:
- binary broadcast host address.
int ucc::cidr::getFamily |
( |
void |
|
) |
[inline] |
Get the address family of our cidr block object.
- Returns:
- family of our cidr.
Definition at line 233 of file socket.h.
unsigned ucc::cidr::getMask |
( |
void |
|
) |
|
Get the number of bits in the cidr bitmask.
- Returns:
- bit mask of cidr.
char* ucc::cidr::getName |
( |
void |
|
) |
[inline] |
Get the saved name of our cidr.
This is typically used with find when the same policy name might be associated with multiple non- overlapping cidr blocks. A typical use might to have a cidr block like 127/8 named "localdomain", as well as the ipv6 "::1".
- Returns:
- name of cidr.
Definition at line 226 of file socket.h.
Get the effective network mask for our cidr block.
- Returns:
- binary network mask for our cidr.
Definition at line 247 of file socket.h.
Get the network host base address of our cidr block.
- Returns:
- binary network host address.
Definition at line 240 of file socket.h.
bool ucc::cidr::isMember |
( |
struct sockaddr * |
address |
) |
|
Test if a given socket address falls within this cidr.
- Parameters:
-
| address | of socket to test. |
- Returns:
- true if address is within cidr.
bool ucc::cidr::operator!= |
( |
struct sockaddr * |
address |
) |
[inline] |
Test if a given socket address falls outside this cidr.
- Parameters:
-
| address | of socket to test. |
- Returns:
- true if address is outside cidr.
Definition at line 288 of file socket.h.
bool ucc::cidr::operator== |
( |
struct sockaddr * |
address |
) |
[inline] |
Test if a given socket address falls within this cidr.
- Parameters:
-
| address | of socket to test. |
- Returns:
- true if address is within cidr.
Definition at line 280 of file socket.h.
void ucc::cidr::set |
( |
char * |
string |
) |
|
Set our cidr to a string address.
Replaces prior value.
- Parameters:
-
The documentation for this class was generated from the following file: