ipsec_initaddr (3) - Linux Manuals
ipsec_initaddr: initialize an ip_address, get address type of an ip_address, get length of address within an ip_address, get copy of address within an ip_address, get pointer to address within an ip_address
NAME
ipsec_initaddr, ipsec_addrtypeof, ipsec_addrlenof, ipsec_addrbytesof, ipsec_addrbytesptr - initialize an ip_address, get address type of an ip_address, get length of address within an ip_address, get copy of address within an ip_address, get pointer to address within an ip_addressSYNOPSIS
#include <libreswan.h>
const char *initaddr(const char *src, size_t srclen,
Initaddr
initializes a variable
*dst
of type
ip_address
from an address
(in network byte order,
indicated by a pointer
src
and a length
srclen)
and an address family
af
(typically
AF_INET
or
AF_INET6).
The length must be consistent with the address family.
Addrtypeof
returns the address type of an address,
normally
AF_INET
or
AF_INET6.
(The
<libreswan.h>
header file arranges to include the necessary headers for these
names to be known.)
Addrlenof
returns the size (in bytes) of the address within an
ip_address,
to permit storage allocation etc.
Addrbytesof
copies the address within the
ip_address
src
to the buffer indicated by the pointer
dst
and the length
dstlen,
and returns the address length (in bytes).
If the address will not fit,
as many bytes as will fit are copied;
the returned length is still the full length.
It is the caller's responsibility to check the
returned value to ensure that there was enough room.
Addrbytesptr
sets
*dst
to a pointer to the internal address within the
ip_address,
and returns the address length (in bytes).
If
dst
is
NULL,
it just returns the address length.
The pointer points to
const
to discourage misuse.
Initaddr
returns
NULL
for success and
a pointer to a string-literal error message for failure;
see DIAGNOSTICS.
The functions which return
size_t
return
0
for a failure.
int addrtypeof(const ip_address *src);
size_t addrlenof(const ip_address *src);
size_t addrbytesof(const ip_address *src,
size_t addrbytesptr(const ip_address *src,
DESCRIPTION
The
<libreswan.h>
library uses an internal type
ip_address
to contain one of the (currently two) types of IP address.
These functions provide basic tools for creating and examining this type.
DIAGNOSTICS
An unknown address family is a fatal error for any of these functions
except
addrtypeof.
An address-size mismatch is a fatal error for
initaddr.
HISTORY
Written for the FreeS/WAN project by Henry Spencer.
BUGS
Addrtypeof
should probably have been named
addrfamilyof.