GeezerVison is showing github.com — dns: fix getServers return undefined · nodejs/node@67b4edd
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: lib/internal/dns/utils.js +2-2Lines changed: 2 additions & 2 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -61,7 +61,7 @@ class Resolver { |
61 | 61 | } |
62 | 62 |
|
63 | 63 | getServers() { |
64 | | - return ArrayPrototypeMap(this._handle.getServers(), (val) => { |
| 64 | + return ArrayPrototypeMap(this._handle.getServers() || [], (val) => { |
65 | 65 | if (!val[1] || val[1] === IANA_DNS_PORT) |
66 | 66 | return val[0]; |
67 | 67 |
|
@@ -76,7 +76,7 @@ class Resolver { |
76 | 76 | // Cache the original servers because in the event of an error while |
77 | 77 | // setting the servers, c-ares won't have any servers available for |
78 | 78 | // resolution. |
79 | | - const orig = this._handle.getServers(); |
| 79 | + const orig = this._handle.getServers() || []; |
80 | 80 | const newSet = []; |
81 | 81 |
|
82 | 82 | ArrayPrototypeForEach(servers, (serv, index) => { |
|
Collapse file
Copy file name to clipboard +11Lines changed: 11 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
| 1 | +'use strict'; |
| 2 | +const common = require('../common'); |
| 3 | +const assert = require('assert'); |
| 4 | + |
| 5 | +const { Resolver } = require('dns'); |
| 6 | + |
| 7 | +const resolver = new Resolver(); |
| 8 | +assert(resolver.getServers().length > 0); |
| 9 | +// return undefined |
| 10 | +resolver._handle.getServers = common.mustCall(() => {}); |
| 11 | +assert.strictEqual(resolver.getServers().length, 0); |