diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 03f0f96..78255d2 100755 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -171,6 +171,10 @@ export default isHttpAdapterSupported && function httpAdapter(config) { // hotfix to support opt.all option which is required for node 20.x lookup = (hostname, opt, cb) => { _lookup(hostname, opt, (err, arg0, arg1) => { + if (err) { + return cb(err); + } + const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)]; opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); diff --git a/test/unit/adapters/http.js b/test/unit/adapters/http.js index a1c6da4..67e01b1 100644 --- a/test/unit/adapters/http.js +++ b/test/unit/adapters/http.js @@ -9,6 +9,7 @@ import util from 'util'; import assert from 'assert'; import fs from 'fs'; import path from 'path'; +import {lookup} from 'dns'; let server, proxy; import AxiosError from '../../../lib/core/AxiosError.js'; import FormDataLegacy from 'form-data'; @@ -2216,5 +2217,13 @@ describe('supports http with nodejs', function () { assert.strictEqual(data, payload); }); + + it('should handle errors', () => { + return assert.rejects(async () => { + await axios.get('https://no-such-domain-987654.com', { + lookup + }); + }, /ENOTFOUND/); + }); }); });