Provided by: openswan_2.6.38-1_amd64 bug

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_address

SYNOPSIS

       #include <freeswan.h>

       const char *initaddr(const char *src, size_t srclen,
           int af, ip_address *dst);
       int addrtypeof(const ip_address *src);
       size_t addrlenof(const ip_address *src);
       size_t addrbytesof(const ip_address *src,
           unsigned char *dst, size_t dstlen);
       size_t addrbytesptr(const ip_address *src,
           const unsigned char **dst);

DESCRIPTION

       The <freeswan.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.

       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
       <freeswan.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.

SEE ALSO

       inet(3), ipsec_ttoaddr(3)

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.

                                           11 Sept 2000                         IPSEC_INITADDR(3)