in src/Azure.IIoT.OpcUa.Publisher/src/Stack/Services/OpcUaClient.cs [1999:2057]
public EndpointConnectivityState ToConnectivityState(Exception ex, bool reconnecting = true)
{
EndpointConnectivityState state;
switch (ex)
{
case ServiceResultException sre:
switch (sre.StatusCode)
{
case StatusCodes.BadNoContinuationPoints:
case StatusCodes.BadLicenseLimitsExceeded:
case StatusCodes.BadTcpServerTooBusy:
case StatusCodes.BadTooManySessions:
case StatusCodes.BadTooManyOperations:
state = EndpointConnectivityState.Busy;
break;
case StatusCodes.BadCertificateRevocationUnknown:
case StatusCodes.BadCertificateIssuerRevocationUnknown:
case StatusCodes.BadCertificateRevoked:
case StatusCodes.BadCertificateIssuerRevoked:
case StatusCodes.BadCertificateChainIncomplete:
case StatusCodes.BadCertificateIssuerUseNotAllowed:
case StatusCodes.BadCertificateUseNotAllowed:
case StatusCodes.BadCertificateUriInvalid:
case StatusCodes.BadCertificateTimeInvalid:
case StatusCodes.BadCertificateIssuerTimeInvalid:
case StatusCodes.BadCertificateInvalid:
case StatusCodes.BadCertificateHostNameInvalid:
case StatusCodes.BadNoValidCertificates:
state = EndpointConnectivityState.CertificateInvalid;
break;
case StatusCodes.BadCertificateUntrusted:
case StatusCodes.BadSecurityChecksFailed:
state = EndpointConnectivityState.NoTrust;
break;
case StatusCodes.BadSecureChannelClosed:
state = reconnecting ? EndpointConnectivityState.NoTrust :
EndpointConnectivityState.Error;
break;
case StatusCodes.BadRequestTimeout:
case StatusCodes.BadNotConnected:
state = EndpointConnectivityState.NotReachable;
break;
case StatusCodes.BadUserAccessDenied:
case StatusCodes.BadUserSignatureInvalid:
state = EndpointConnectivityState.Unauthorized;
break;
default:
state = EndpointConnectivityState.Error;
break;
}
_logger.LogDebug("{Client}: {Result} => {State}", this, sre.Result, state);
break;
default:
state = EndpointConnectivityState.Error;
_logger.LogDebug("{Client}: {Message} => {State}", this, ex.Message, state);
break;
}
return state;
}