Skip to content

Commit 2e042db

Browse files
committed
fix(cli-framework/network): check 'localhost' resolved.
1 parent 65d79ca commit 2e042db

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

packages/@ionic/cli-framework/src/utils/network.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import * as net from 'net';
22
import * as os from 'os';
33

44
import * as Debug from 'debug';
5+
import * as dns from 'dns';
56

67
import { NetworkInterface } from '../definitions';
78

@@ -77,15 +78,21 @@ export async function isPortAvailable(port: number, host?: string): Promise<bool
7778
export async function isHostConnectable(host: string, port: number, { timeout }: { timeout?: number; } = {}): Promise<boolean> {
7879
const tryConnect = async () => {
7980
return new Promise<boolean>((resolve, reject) => {
80-
const sock = net.connect({ port, host });
8181

82-
sock.on('connect', () => {
83-
sock.destroy();
84-
resolve(true);
85-
});
82+
dns.lookup(host, (error, address) => {
83+
if (host === 'localhost' && typeof address === 'undefined') {
84+
host = '0.0.0.0';
85+
}
86+
const sock = net.connect({ port, host });
8687

87-
sock.on('error', err => {
88-
reject(err);
88+
sock.on('connect', () => {
89+
sock.destroy();
90+
resolve(true);
91+
});
92+
93+
sock.on('error', err => {
94+
reject(err);
95+
});
8996
});
9097
});
9198
};

0 commit comments

Comments
 (0)