/* * Traditional DNS header RCODEs (4-bits) defined by IANA in * https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml */ exports.toString = function (rcode) { switch (rcode) { case 0: return 'NOERROR' case 1: return 'FORMERR' case 2: return 'SERVFAIL' case 3: return 'NXDOMAIN' case 4: return 'NOTIMP' case 5: return 'REFUSED' case 6: return 'YXDOMAIN' case 7: return 'YXRRSET' case 8: return 'NXRRSET' case 9: return 'NOTAUTH' case 10: return 'NOTZONE' case 11: return 'RCODE_11' case 12: return 'RCODE_12' case 13: return 'RCODE_13' case 14: return 'RCODE_14' case 15: return 'RCODE_15' } return 'RCODE_' + rcode } exports.toRcode = function (code) { switch (code.toUpperCase()) { case 'NOERROR': return 0 case 'FORMERR': return 1 case 'SERVFAIL': return 2 case 'NXDOMAIN': return 3 case 'NOTIMP': return 4 case 'REFUSED': return 5 case 'YXDOMAIN': return 6 case 'YXRRSET': return 7 case 'NXRRSET': return 8 case 'NOTAUTH': return 9 case 'NOTZONE': return 10 case 'RCODE_11': return 11 case 'RCODE_12': return 12 case 'RCODE_13': return 13 case 'RCODE_14': return 14 case 'RCODE_15': return 15 } return 0 }