From 3ae3d9e4efe8a468dbc42f203b0938caa9cd33c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Fri, 2 Apr 2021 02:54:23 -0400 Subject: [PATCH] Fix TXT record parsing. --- exec/load/dns.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/exec/load/dns.js b/exec/load/dns.js index 24ba0c967e..0d289b4fb0 100644 --- a/exec/load/dns.js +++ b/exec/load/dns.js @@ -48,7 +48,7 @@ function DNS(servers) { function get_string(resp, offset) { var len = ascii(resp[offset]); - return {'len':len + 1, 'string':resp.substr(1, len)}; + return {'len':len + 1, 'string':resp.substr(offset + 1, len)}; } function get_name(resp, offset) { @@ -145,7 +145,14 @@ function DNS(servers) { tmp.exchange = get_name(resp, offset + 2).name; return tmp; case 16: // TXT - return get_string(resp, offset).string; + tmp = []; + tmp2 = 0; + do { + tmp3 = get_string(resp, offset + tmp2); + tmp.push(tmp3.string); + tmp2 += tmp3.len; + } while (tmp2 < len); + return tmp; case 28: return format("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", ascii(resp[offset + 0]), ascii(resp[offset + 1]), -- GitLab