isDomainHttpsOK method

Future<bool> isDomainHttpsOK(
  1. String domain, {
  2. int maxRetries = 3,
  3. Duration? retryInterval,
})

Returns true if domain HTTPS is OK.

Implementation

Future<bool> isDomainHttpsOK(String domain,
    {int maxRetries = 3, Duration? retryInterval}) async {
  if (retryInterval == null) {
    retryInterval = Duration(seconds: 1);
  } else if (retryInterval.inMilliseconds < 10) {
    retryInterval = Duration(milliseconds: 10);
  }

  final minCertificateValidityTime = this.minCertificateValidityTime;

  var domainURL =
      Uri.parse('https://$domain/.well-known/check/${DateTime.now()}');

  for (var i = 0; i < maxRetries; ++i) {
    if (i > 0) {
      await Future.delayed(retryInterval);
    }
    var ok = await isUrlOK(domainURL,
        minCertificateValidityTime: minCertificateValidityTime);
    if (ok) return true;
  }

  return false;
}