You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.2 KiB
60 lines
1.2 KiB
'use strict'; |
|
|
|
var WHITELIST = [ |
|
'ETIMEDOUT', |
|
'ECONNRESET', |
|
'EADDRINUSE', |
|
'ESOCKETTIMEDOUT', |
|
'ECONNREFUSED', |
|
'EPIPE' |
|
]; |
|
|
|
var BLACKLIST = [ |
|
'ENOTFOUND', |
|
'ENETUNREACH', |
|
|
|
// SSL errors from https://github.com/nodejs/node/blob/ed3d8b13ee9a705d89f9e0397d9e96519e7e47ac/src/node_crypto.cc#L1950 |
|
'UNABLE_TO_GET_ISSUER_CERT', |
|
'UNABLE_TO_GET_CRL', |
|
'UNABLE_TO_DECRYPT_CERT_SIGNATURE', |
|
'UNABLE_TO_DECRYPT_CRL_SIGNATURE', |
|
'UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY', |
|
'CERT_SIGNATURE_FAILURE', |
|
'CRL_SIGNATURE_FAILURE', |
|
'CERT_NOT_YET_VALID', |
|
'CERT_HAS_EXPIRED', |
|
'CRL_NOT_YET_VALID', |
|
'CRL_HAS_EXPIRED', |
|
'ERROR_IN_CERT_NOT_BEFORE_FIELD', |
|
'ERROR_IN_CERT_NOT_AFTER_FIELD', |
|
'ERROR_IN_CRL_LAST_UPDATE_FIELD', |
|
'ERROR_IN_CRL_NEXT_UPDATE_FIELD', |
|
'OUT_OF_MEM', |
|
'DEPTH_ZERO_SELF_SIGNED_CERT', |
|
'SELF_SIGNED_CERT_IN_CHAIN', |
|
'UNABLE_TO_GET_ISSUER_CERT_LOCALLY', |
|
'UNABLE_TO_VERIFY_LEAF_SIGNATURE', |
|
'CERT_CHAIN_TOO_LONG', |
|
'CERT_REVOKED', |
|
'INVALID_CA', |
|
'PATH_LENGTH_EXCEEDED', |
|
'INVALID_PURPOSE', |
|
'CERT_UNTRUSTED', |
|
'CERT_REJECTED' |
|
]; |
|
|
|
module.exports = function (err) { |
|
if (!err || !err.code) { |
|
return true; |
|
} |
|
|
|
if (WHITELIST.indexOf(err.code) !== -1) { |
|
return true; |
|
} |
|
|
|
if (BLACKLIST.indexOf(err.code) !== -1) { |
|
return false; |
|
} |
|
|
|
return true; |
|
};
|
|
|