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_READ_EOF, 0x000402, NONE ), |
51 _ERROR_CODE( ERR_READ_EOF, 0x000402, NONE ), |
52 _ERROR_CODE( ERR_WRITE, 0x000403, ERRNO ), |
52 _ERROR_CODE( ERR_WRITE, 0x000403, ERRNO ), |
|
53 _ERROR_CODE( ERR_FCNTL, 0x000404, ERRNO ), |
53 |
54 |
54 /* GnuTLS errors */ |
55 /* GnuTLS errors */ |
55 _ERROR_CODE( ERR_GNUTLS_CERT_ALLOC_CRED, 0x010101, GNUTLS ), |
56 _ERROR_CODE( ERR_GNUTLS_CERT_ALLOC_CRED, 0x010101, GNUTLS ), |
56 _ERROR_CODE( ERR_GNUTLS_GLOBAL_INIT, 0x010102, GNUTLS ), |
57 _ERROR_CODE( ERR_GNUTLS_GLOBAL_INIT, 0x010102, GNUTLS ), |
57 _ERROR_CODE( ERR_GNUTLS_INIT, 0x010103, GNUTLS ), |
58 _ERROR_CODE( ERR_GNUTLS_INIT, 0x010103, GNUTLS ), |
58 _ERROR_CODE( ERR_GNUTLS_SET_DEFAULT_PRIORITY, 0x010104, GNUTLS ), |
59 _ERROR_CODE( ERR_GNUTLS_SET_DEFAULT_PRIORITY, 0x010104, GNUTLS ), |
59 _ERROR_CODE( ERR_GNUTLS_CRED_SET, 0x010105, GNUTLS ), |
60 _ERROR_CODE( ERR_GNUTLS_CRED_SET, 0x010105, GNUTLS ), |
60 _ERROR_CODE( ERR_GNUTLS_HANDSHAKE, 0x010106, GNUTLS ), |
61 _ERROR_CODE( ERR_GNUTLS_HANDSHAKE, 0x010106, GNUTLS ), |
|
62 _ERROR_CODE( ERR_GNUTLS_RECORD_SEND, 0x010107, GNUTLS ), |
|
63 _ERROR_CODE( ERR_GNUTLS_RECORD_RECV, 0x010108, GNUTLS ), |
|
64 |
|
65 /* Libevent errors */ |
|
66 _ERROR_CODE( ERR_EVENT_NEW, 0x010201, NONE ), |
61 |
67 |
62 // mask of bits used for the error_code value |
68 // mask of bits used for the error_code value |
63 _ERROR_CODE_MASK = 0xffffff, |
69 _ERROR_CODE_MASK = 0xffffff, |
64 }; |
70 }; |
65 |
71 |
104 #define RESET_ERROR(err_info_ptr) ((err_info_ptr)->code = SUCCESS) |
110 #define RESET_ERROR(err_info_ptr) ((err_info_ptr)->code = SUCCESS) |
105 |
111 |
106 /* Compare error_info.code != 0 */ |
112 /* Compare error_info.code != 0 */ |
107 #define IS_ERROR(err_info_ptr) (!!(err_info_ptr)->code) |
113 #define IS_ERROR(err_info_ptr) (!!(err_info_ptr)->code) |
108 |
114 |
|
115 /* Compare the err_code/err_extra for an err_info */ |
|
116 #define MATCH_ERROR(err_info_ptr, err_code, err_extra) ((err_info_ptr)->code == (err_code) && (err_info_ptr)->extra == (err_extra)) |
|
117 |
109 /* Set error_info.code, but leave err_extra as-is. Evaluates to err_code */ |
118 /* Set error_info.code, but leave err_extra as-is. Evaluates to err_code */ |
110 #define SET_ERROR(err_info_ptr, err_code) ((err_info_ptr)->code = (err_code)) |
119 #define SET_ERROR(err_info_ptr, err_code) ((err_info_ptr)->code = (err_code)) |
111 |
120 |
112 /* Set error_info.code/extra. XXX: should evaluate to err_code */ |
121 /* Set error_info.code/extra. XXX: should evaluate to err_code */ |
113 #define _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) (err_info_ptr)->code = (err_code); (err_info_ptr)->extra = (err_extra) |
122 #define _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) (err_info_ptr)->code = (err_code); (err_info_ptr)->extra = (err_extra) |