ipsec initsubnet − initialize an ip_subnet |
#include <freeswan.h> const char *initsubnet(const ip_address *addr, |
int maskbits, int clash, ip_subnet *dst); |
const char *addrtosubnet(const ip_address *addr, |
ip_subnet *dst); int subnettypeof(const ip_subnet *src); |
int masktocount(const ip_address *src); |
The <freeswan.h> library uses an internal type ip_subnet to contain a description of an IP subnet (base address plus mask). These functions provide basic tools for creating and examining this type. Initsubnet initializes a variable *dst of type ip_subnet from a base address and a count of mask bits. The clash parameter specifies what to do if the base address includes 1 bits outside the prefix specified by the mask (that is, in the ‘‘host number’’ part of the address): |
’0’ |
zero out host-number bits |
|||
’x’ |
non-zero host-number bits are an error |
Initsubnet returns NULL for success and a pointer to a string-literal error message for failure; see DIAGNOSTICS. Addrtosubnet initializes an ip_subnet variable *dst to a ‘‘singleton subnet’’ containing the single address *addr. It returns NULL for success and a pointer to a string-literal error message for failure. Subnettypeof returns the address type of a subnet, normally AF_INET or AF_INET6. (The <freeswan.h> header file arranges to include the necessary headers for these names to be known.) Masktocount converts a subnet mask, expressed as an address, to a bit count suitable for use with initsubnet. It returns −1 for error; see DIAGNOSTICS. Networkof fills in *dst with the base address of subnet src. Maskof fills in *dst with the subnet mask of subnet src, expressed as an address. |
inet(3), ipsec_ttosubnet(3), ipsec_rangetosubnet(3) |
Fatal errors in initsubnet are: unknown address family; unknown clash value; impossible mask bit count; non-zero host-number bits and clash is ’x’. Fatal errors in addrtosubnet are: unknown address family. Fatal errors in masktocount are: unknown address family; mask bits not contiguous. |
Written for the FreeS/WAN project by Henry Spencer. |