terom@6: terom@6: #include "error.h" terom@6: terom@6: /* terom@6: * Helper macros terom@6: */ terom@6: #define ERROR_NAME(code, name) case code: return name terom@6: terom@6: const char *error_name (err_t code) terom@6: { terom@6: switch (code) { terom@6: ERROR_NAME( ERR_CALLOC, "calloc" ); terom@6: ERROR_NAME( ERR_GETADDRINFO, "getaddrinfo" ); terom@6: ERROR_NAME( ERR_GETADDRINFO_EMPTY, "getaddrinfo" ); terom@6: ERROR_NAME( ERR_SOCKET, "socket" ); terom@6: ERROR_NAME( ERR_CONNECT, "connect" ); terom@6: ERROR_NAME( ERR_READ, "read" ); terom@6: ERROR_NAME( ERR_WRITE, "write" ); terom@6: ERROR_NAME( ERR_GNUTLS_CERT_ALLOC_CRED, "gnutls_certificate_allocate_credentials" ); terom@6: ERROR_NAME( ERR_GNUTLS_GLOBAL_INIT, "gnutls_global_init" ); terom@6: ERROR_NAME( ERR_GNUTLS_INIT, "gnutls_init" ); terom@6: ERROR_NAME( ERR_GNUTLS_SET_DEFAULT_PRIORITY, "gnutls_set_default_priority" ); terom@6: ERROR_NAME( ERR_GNUTLS_CRED_SET, "gnutls_credentials_set" ); terom@6: ERROR_NAME( ERR_GNUTLS_HANDSHAKE, "gnutls_handshake" ); terom@6: default: return "[unknown]"; terom@6: } terom@6: } terom@6: