ipsec_strerror —
    error messages for the IPsec policy manipulation
    library
IPsec Policy Control Library (libipsec,
    -lipsec)
netinet6/ipsec.h declares
extern int ipsec_errcode
;
which is used to pass an error code from the
    IPsec policy manipulation library to a program.
    ipsec_strerror()
    can be used to obtain the error message string for the error code.
The array pointed to is not to be modified
    by the calling program. Since
    ipsec_strerror()
    uses
    strerror(3)
    as underlying function, calling
    strerror(3)
    after ipsec_strerror() will make the return value
    from ipsec_strerror() invalid or overwritten.
ipsec_strerror() always returns a pointer
    to a C string. The C string must not be overwritten by the calling
  program.
ipsec_strerror() first appeared in the
    WIDE/KAME IPv6 protocol stack kit.
ipsec_strerror() will return its result
    which may be overwritten by subsequent calls.
ipsec_errcode is not thread safe.