51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| /*
 | |
|  * 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
 | |
| }
 |