add macro SF_FORCE_CLOSE_CONNECTION_ERROR

connection_manager
YuQing 2020-09-15 10:19:27 +08:00
parent 02b345deb9
commit cf9999b0b1
1 changed files with 13 additions and 4 deletions

View File

@ -33,15 +33,24 @@
#define SF_RETRIABLE_ERROR_MIN 9901
#define SF_RETRIABLE_ERROR_MAX 9988
#define SF_RETRIABLE_ERROR_NO_SERVER 9901 //no server available
#define SF_RETRIABLE_ERROR_NOT_MASTER 9902 //i am not master
#define SF_RETRIABLE_ERROR_NOT_ACTIVE 9903 //i am not active
#define SF_RETRIABLE_ERROR_NO_CHANNEL 9904
#define SF_RETRIABLE_ERROR_CHANNEL_INVALID 9905 //client should re-setup channel
#define SF_RETRIABLE_ERROR_NOT_MASTER 9912 //i am not master
#define SF_RETRIABLE_ERROR_NOT_ACTIVE 9913 //i am not active
#define SF_RETRIABLE_ERROR_NO_CHANNEL 9914
#define SF_RETRIABLE_ERROR_CHANNEL_INVALID 9915 //client should re-setup channel
#define SF_FORCE_CLOSE_CONNECTION_ERROR_MIN SF_RETRIABLE_ERROR_NOT_MASTER
#define SF_FORCE_CLOSE_CONNECTION_ERROR_MAX SF_RETRIABLE_ERROR_MAX
#define SF_IS_RETRIABLE_ERROR(code) \
((code >= SF_RETRIABLE_ERROR_MIN && code <= SF_RETRIABLE_ERROR_MAX) || \
(code == EAGAIN) || is_network_error(code))
#define SF_FORCE_CLOSE_CONNECTION_ERROR(code) \
((code >= SF_FORCE_CLOSE_CONNECTION_ERROR_MIN && \
code <= SF_FORCE_CLOSE_CONNECTION_ERROR_MAX) || \
(result == EINVAL) || (result != 0 && is_network_error(code)))
#define SF_UNIX_ERRNO(code, errno_for_overflow) \
(code < 256 ? code : errno_for_overflow)