| 382 | return undefined; | 382 | return undefined; |
| 383 | } | 383 | } |
| 384 | | 384 | |
| | 385 | |
| | 386 | function canResolve(name, useIPv6 = true, useIPv4 = true) { |
| | 387 | return new Promise((resolve, reject) => { |
| | 388 | let v6Resolve |
| | 389 | let v4Resolve |
| | 390 | |
| | 391 | if (useIPv6) { |
| | 392 | dns.resolve6(name, (err) => { |
| | 393 | if (err) { |
| | 394 | v6Resolve = false |
| | 395 | } else { |
| | 396 | v6Resolve = true |
| | 397 | } |
| | 398 | }); |
| | 399 | |
| | 400 | } else { |
| | 401 | v6Resolve = false |
| | 402 | } |
| | 403 | |
| | 404 | if (useIPv4) { |
| | 405 | dns.resolve(name, (err) => { |
| | 406 | if (err) { |
| | 407 | v4Resolve = false |
| | 408 | } else { |
| | 409 | v4Resolve = true |
| | 410 | } |
| | 411 | }); |
| | 412 | |
| | 413 | } else { |
| | 414 | v4Resolve = false |
| | 415 | } |
| | 416 | |
| | 417 | if (v6Resolve || v4Resolve) { |
| | 418 | resolve |
| | 419 | } else { |
| | 420 | reject |
| | 421 | } |
| | 422 | }); |
| | 423 | } |
| | 424 | |
| 385 | async function getHasIP() { | 425 | async function getHasIP() { |
| 386 | let hasIPv6 = false; | 426 | let hasIPv6 = false; |
| 387 | let hasIPv6Local = false; | 427 | let hasIPv6Local = false; |