38 lines
		
	
	
		
			864 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			864 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| (function (exports) {
 | |
| 'use strict';
 | |
| 
 | |
| // The host name that represents the supplied UP address
 | |
| // May be a label, pointer or any combination 
 | |
| 
 | |
| exports.DNS_PACKER_TYPE_PTR = function (ab, dv, total, record) {
 | |
|   if (!record.data) {
 | |
|     throw new Error("no data for PTR record");
 | |
|   }
 | |
| 
 | |
|   var ptrLen = 0;
 | |
|   var rdLenIndex = total;
 | |
|   total += 2;
 | |
| 
 | |
|   // RDATA 
 | |
|   // a sequence of labels
 | |
|   record.data.split('.').forEach(function (label){
 | |
|       console.log("the labels are: " + label);
 | |
|       ptrLen += 1 + label.length;
 | |
| 
 | |
|       dv.setUint8(total, label.length, false);
 | |
|       total += 1;
 | |
| 
 | |
|       label.split('').forEach(function (ch){
 | |
|           dv.setUint8(total, ch.charCodeAt(0), false);
 | |
|           total += 1;
 | |
|       });
 | |
|   });
 | |
| 
 | |
|   // RDLENGTH
 | |
|   dv.setUint16(rdLenIndex, record.data.length + 1, false);
 | |
| 
 | |
|   return total;
 | |
| };
 | |
| 
 | |
| }('undefined' !== typeof window ? window : exports));
 |