src/error.h
changeset 5 a09a0797f6f0
parent 4 a3ca0f97a075
child 6 240ae8482d64
equal deleted inserted replaced
4:a3ca0f97a075 5:a09a0797f6f0
    32     ERR_WRITE                   = 0x000402,
    32     ERR_WRITE                   = 0x000402,
    33 
    33 
    34     /* GnuTLS errors */
    34     /* GnuTLS errors */
    35     ERR_GNUTLS_CERT_ALLOC_CRED  = 0x010101,
    35     ERR_GNUTLS_CERT_ALLOC_CRED  = 0x010101,
    36     ERR_GNUTLS_GLOBAL_INIT      = 0x010102,
    36     ERR_GNUTLS_GLOBAL_INIT      = 0x010102,
       
    37     ERR_GNUTLS_INIT             = 0x010103,
       
    38     ERR_GNUTLS_SET_DEFAULT_PRIORITY         = 0x010104,
       
    39     ERR_GNUTLS_CRED_SET         = 0x010105,
       
    40     ERR_GNUTLS_HANDSHAKE        = 0x010106,
    37 };
    41 };
    38 
    42 
    39 /*
    43 /*
    40  * An error code and associated extra infos
    44  * An error code and associated extra infos
    41  */
    45  */
    67 
    71 
    68 /* Set error_info.code/extra. XXX: should evaluate to err_code */
    72 /* Set error_info.code/extra. XXX: should evaluate to err_code */
    69 #define _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) (err_info_ptr)->code = (err_code); (err_info_ptr)->extra = (err_extra)
    73 #define _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) (err_info_ptr)->code = (err_code); (err_info_ptr)->extra = (err_extra)
    70 #define SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); } while (0)
    74 #define SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); } while (0)
    71 
    75 
    72 /* Set error.info.code to err_code, and .extra to errno. XXX: should evaulate to err_code */
    76 /* Set error_info.code to err_code, and .extra to errno. XXX: should evaulate to err_code */
    73 #define _SET_ERROR_ERRNO(err_info_ptr, err_code) _SET_ERROR_EXTRA(err_info_ptr, err_code, errno);
    77 #define _SET_ERROR_ERRNO(err_info_ptr, err_code) _SET_ERROR_EXTRA(err_info_ptr, err_code, errno);
    74 #define SET_ERROR_ERRNO(err_info_ptr, err_code) SET_ERROR_EXTRA(err_info_ptr, err_code, errno);
    78 #define SET_ERROR_ERRNO(err_info_ptr, err_code) SET_ERROR_EXTRA(err_info_ptr, err_code, errno);
    75 
    79 
    76 /* Ss above, but also return err_code from func. XXX: use 'return SET_ERROR...' instead */
    80 /* Set error_info from another error_info. Evaluates to the new error_info */
    77 #define RETURN_SET_ERROR(err_info_ptr, err_code) do { _SET_ERROR(err_info_ptr, err_code); return (err_code); } while (0)
    81 #define SET_ERROR_INFO(err_info_ptr, from_ptr) (*err_info_ptr = *from_ptr)
       
    82 
       
    83 /* Same as above, but also return err_code from func. XXX: use 'return SET_ERROR...' instead */
       
    84 #define RETURN_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); return (err_code); } while (0)
    78 #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)
    85 #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)
    79 #define RETURN_SET_ERROR_ERRNO(err_info_ptr, err_code) do { _SET_ERROR_ERRNO(err_info_ptr, err_code); return (err_code); } while (0)
    86 #define RETURN_SET_ERROR_ERRNO(err_info_ptr, err_code) do { _SET_ERROR_ERRNO(err_info_ptr, err_code); return (err_code); } while (0)
    80 
    87 
       
    88 /* Same as above, but also do a 'goto error' */
       
    89 #define JUMP_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); goto error; } while (0)
       
    90 #define JUMP_SET_ERROR_INFO(err_info_ptr, from_ptr) do { SET_ERROR_INFO(err_info_ptr, from_ptr); goto error; } while (0)
       
    91 
    81 #endif
    92 #endif