src/error.h
changeset 8 be88e543c8ff
parent 7 844f014409ff
child 10 9fe218576d13
equal deleted inserted replaced
7:844f014409ff 8:be88e543c8ff
    46     _ERROR_CODE( ERR_SOCKET,                        0x000301,   ERRNO   ),
    46     _ERROR_CODE( ERR_SOCKET,                        0x000301,   ERRNO   ),
    47     _ERROR_CODE( ERR_CONNECT,                       0x000302,   ERRNO   ),
    47     _ERROR_CODE( ERR_CONNECT,                       0x000302,   ERRNO   ),
    48 
    48 
    49     /* Low-level IO errors */
    49     /* Low-level IO errors */
    50     _ERROR_CODE( ERR_READ,                          0x000401,   ERRNO   ),
    50     _ERROR_CODE( ERR_READ,                          0x000401,   ERRNO   ),
    51     _ERROR_CODE( ERR_WRITE,                         0x000402,   ERRNO   ),
    51     _ERROR_CODE( ERR_READ_EOF,                      0x000402,   NONE    ),
       
    52     _ERROR_CODE( ERR_WRITE,                         0x000403,   ERRNO   ),
    52 
    53 
    53     /* GnuTLS errors */
    54     /* GnuTLS errors */
    54     _ERROR_CODE( ERR_GNUTLS_CERT_ALLOC_CRED,        0x010101,   GNUTLS  ),
    55     _ERROR_CODE( ERR_GNUTLS_CERT_ALLOC_CRED,        0x010101,   GNUTLS  ),
    55     _ERROR_CODE( ERR_GNUTLS_GLOBAL_INIT,            0x010102,   GNUTLS  ),
    56     _ERROR_CODE( ERR_GNUTLS_GLOBAL_INIT,            0x010102,   GNUTLS  ),
    56     _ERROR_CODE( ERR_GNUTLS_INIT,                   0x010103,   GNUTLS  ),
    57     _ERROR_CODE( ERR_GNUTLS_INIT,                   0x010103,   GNUTLS  ),
    86 /*
    87 /*
    87  * Translate an error_info into a message.
    88  * Translate an error_info into a message.
    88  *
    89  *
    89  * This is returned as a pointer into a statically allocated buffer. It is not re-entrant.
    90  * This is returned as a pointer into a statically allocated buffer. It is not re-entrant.
    90  */
    91  */
    91 const char *error_msg (struct error_info *err);
    92 const char *error_msg (const struct error_info *err);
    92 
    93 
    93 /** No error, evaulates as logical false */
    94 /** No error, evaulates as logical false */
    94 #define SUCCESS (0)
    95 #define SUCCESS (0)
    95 
    96 
    96 /* Evaulates to error_info.code as lvalue */
    97 /* Evaulates to error_info.code as lvalue */
   121 
   122 
   122 /* Same as above, but also return err_code from func. XXX: use 'return SET_ERROR...' instead */
   123 /* Same as above, but also return err_code from func. XXX: use 'return SET_ERROR...' instead */
   123 #define RETURN_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); return (err_code); } while (0)
   124 #define RETURN_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); return (err_code); } while (0)
   124 #define RETURN_SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); return (err_code); } while (0)
   125 #define RETURN_SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); return (err_code); } while (0)
   125 #define RETURN_SET_ERROR_ERRNO(err_info_ptr, err_code) do { _SET_ERROR_ERRNO(err_info_ptr, err_code); return (err_code); } while (0)
   126 #define RETURN_SET_ERROR_ERRNO(err_info_ptr, err_code) do { _SET_ERROR_ERRNO(err_info_ptr, err_code); return (err_code); } while (0)
       
   127 #define RETURN_SET_ERROR_INFO(err_info_ptr, from_ptr) do { SET_ERROR_INFO(err_info_ptr, from_ptr); return (from_ptr->code); } while (0)
   126 
   128 
   127 /* Same as above, but also do a 'goto error' */
   129 /* Same as above, but also do a 'goto error' */
   128 #define JUMP_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); goto error; } while (0)
   130 #define JUMP_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); goto error; } while (0)
   129 #define JUMP_SET_ERROR_INFO(err_info_ptr, from_ptr) do { SET_ERROR_INFO(err_info_ptr, from_ptr); goto error; } while (0)
   131 #define JUMP_SET_ERROR_INFO(err_info_ptr, from_ptr) do { SET_ERROR_INFO(err_info_ptr, from_ptr); goto error; } while (0)
   130 
   132