Avoid NPE for flutter attach mDNS (#31926)

This commit is contained in:
Dan Field 2019-05-01 13:41:00 -07:00 committed by GitHub
parent 6a69f8c98c
commit df669ab1ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -216,7 +216,9 @@ class AttachCommand extends FlutterCommand {
}
} else if ((device is IOSDevice) || (device is IOSSimulator)) {
final MDnsObservatoryDiscoveryResult result = await MDnsObservatoryDiscovery().query(applicationId: appId);
observatoryUri = await _buildObservatoryUri(device, hostname, result.port, result.authCode);
if (result != null) {
observatoryUri = await _buildObservatoryUri(device, hostname, result.port, result.authCode);
}
}
// If MDNS discovery fails or we're not on iOS, fallback to ProtocolDiscovery.
if (observatoryUri == null) {

View File

@ -537,6 +537,17 @@ void main() {
final int port = (await portDiscovery.query(applicationId: 'bar'))?.port;
expect(port, 1234);
});
testUsingContext('Query returns null', () async {
final MDnsClient client = getMockClient(
<PtrResourceRecord>[],
<String, List<SrvResourceRecord>>{},
);
final MDnsObservatoryDiscovery portDiscovery = MDnsObservatoryDiscovery(mdnsClient: client);
final int port = (await portDiscovery.query(applicationId: 'bar'))?.port;
expect(port, isNull);
});
});
}