+ *
+ * The only flags supported are adns_qf_addrlit_...; others are
+ * ignored.
+ *
+ * Error return values are:
+ *
+ * ENOSPC Output buffer is too small. Can only happen if
+ * *buflen < ADNS_ADDR2TEXT_BUFLEN or
+ * *salen < sizeof(adns_sockaddr). On return,
+ * *buflen or *salen has been updated by adns.
+ *
+ * EINVAL text has invalid syntax.
+ *
+ * text represents an address family not supported by
+ * this version of adns.
+ *
+ * Scoped address supplied (text contained "%" or
+ * sin6_scope_id nonzero) but caller specified
+ * adns_qf_addrlit_scope_forbid.
+ *
+ * Scope name supplied in text but caller specified
+ * adns_qf_addrlit_scope_numeric.
+ *
+ * EAFNOSUPPORT sa->sa_family is not supported (addr2text only).
+ *
+ * Only if neither adns_qf_addrlit_scope_forbid nor
+ * adns_qf_addrlit_scope_numeric are set:
+ *
+ * ENOSYS Scope name supplied in text but IPv6 address part of
+ * sockaddr is not a link local address.
+ *
+ * ENXIO Scope name supplied in text but if_nametoindex
+ * said it wasn't a valid local interface name.
+ *
+ * EIO Scoped address supplied but if_nametoindex failed
+ * in an unexpected way; adns has printed a message to
+ * stderr.
+ *
+ * any other if_nametoindex failed in a more-or-less expected way.