diff --git a/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV4MessageConstants.cs b/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV4MessageConstants.cs index 6fcf1794a11c2a..4794b9b720f39f 100644 --- a/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV4MessageConstants.cs +++ b/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV4MessageConstants.cs @@ -53,38 +53,22 @@ internal static class IcmpV4MessageConstants { public static IPStatus MapV4TypeToIPStatus(int type, int code) { - switch ((IcmpV4MessageType)type) + return (IcmpV4MessageType)type switch { - case IcmpV4MessageType.EchoReply: - return IPStatus.Success; - - case IcmpV4MessageType.DestinationUnreachable: - switch ((IcmpV4DestinationUnreachableCode)code) - { - case IcmpV4DestinationUnreachableCode.DestinationNetworkUnreachable: - return IPStatus.DestinationNetworkUnreachable; - case IcmpV4DestinationUnreachableCode.DestinationHostUnreachable: - return IPStatus.DestinationHostUnreachable; - case IcmpV4DestinationUnreachableCode.DestinationProtocolUnreachable: - return IPStatus.DestinationProtocolUnreachable; - case IcmpV4DestinationUnreachableCode.DestinationPortUnreachable: - return IPStatus.DestinationPortUnreachable; - default: - return IPStatus.DestinationUnreachable; - } - - case IcmpV4MessageType.SourceQuench: - return IPStatus.SourceQuench; - - case IcmpV4MessageType.TimeExceeded: - return IPStatus.TimeExceeded; - - case IcmpV4MessageType.ParameterProblemBadIPHeader: - return IPStatus.BadHeader; - - default: - return IPStatus.Unknown; - } + IcmpV4MessageType.EchoReply => IPStatus.Success, + IcmpV4MessageType.DestinationUnreachable => (IcmpV4DestinationUnreachableCode)code switch + { + IcmpV4DestinationUnreachableCode.DestinationNetworkUnreachable => IPStatus.DestinationNetworkUnreachable, + IcmpV4DestinationUnreachableCode.DestinationHostUnreachable => IPStatus.DestinationHostUnreachable, + IcmpV4DestinationUnreachableCode.DestinationProtocolUnreachable => IPStatus.DestinationProtocolUnreachable, + IcmpV4DestinationUnreachableCode.DestinationPortUnreachable => IPStatus.DestinationPortUnreachable, + _ => IPStatus.DestinationUnreachable, + }, + IcmpV4MessageType.SourceQuench => IPStatus.SourceQuench, + IcmpV4MessageType.TimeExceeded => IPStatus.TtlExpired, + IcmpV4MessageType.ParameterProblemBadIPHeader => IPStatus.BadHeader, + _ => IPStatus.Unknown, + }; } } } diff --git a/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV6MessageConstants.cs b/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV6MessageConstants.cs index d0a098cf342d6f..e00a236a282bc9 100644 --- a/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV6MessageConstants.cs +++ b/src/libraries/System.Net.Ping/src/System/Net/NetworkInformation/IcmpV6MessageConstants.cs @@ -54,52 +54,30 @@ internal static class IcmpV6MessageConstants { public static IPStatus MapV6TypeToIPStatus(byte type, byte code) { - switch ((IcmpV6MessageType)type) + return (IcmpV6MessageType)type switch { - case IcmpV6MessageType.EchoReply: - return IPStatus.Success; - - case IcmpV6MessageType.DestinationUnreachable: - switch ((IcmpV6DestinationUnreachableCode)code) - { - case IcmpV6DestinationUnreachableCode.NoRouteToDestination: - return IPStatus.BadRoute; - case IcmpV6DestinationUnreachableCode.SourceRoutingHeaderError: - return IPStatus.BadHeader; - default: - return IPStatus.DestinationUnreachable; - } - - case IcmpV6MessageType.PacketTooBig: - return IPStatus.PacketTooBig; - - case IcmpV6MessageType.TimeExceeded: - switch ((IcmpV6TimeExceededCode)code) - { - case IcmpV6TimeExceededCode.HopLimitExceeded: - return IPStatus.TimeExceeded; - case IcmpV6TimeExceededCode.FragmentReassemblyTimeExceeded: - return IPStatus.TtlReassemblyTimeExceeded; - default: - return IPStatus.TimeExceeded; - } - - case IcmpV6MessageType.ParameterProblem: - switch ((IcmpV6ParameterProblemCode)code) - { - case IcmpV6ParameterProblemCode.ErroneousHeaderField: - return IPStatus.BadHeader; - case IcmpV6ParameterProblemCode.UnrecognizedNextHeader: - return IPStatus.UnrecognizedNextHeader; - case IcmpV6ParameterProblemCode.UnrecognizedIpv6Option: - return IPStatus.BadOption; - default: - return IPStatus.ParameterProblem; - } - - default: - return IPStatus.Unknown; - } + IcmpV6MessageType.EchoReply => IPStatus.Success, + IcmpV6MessageType.DestinationUnreachable => (IcmpV6DestinationUnreachableCode)code switch + { + IcmpV6DestinationUnreachableCode.NoRouteToDestination => IPStatus.BadRoute, + IcmpV6DestinationUnreachableCode.SourceRoutingHeaderError => IPStatus.BadHeader, + _ => IPStatus.DestinationUnreachable, + }, + IcmpV6MessageType.PacketTooBig => IPStatus.PacketTooBig, + IcmpV6MessageType.TimeExceeded => (IcmpV6TimeExceededCode)code switch + { + IcmpV6TimeExceededCode.FragmentReassemblyTimeExceeded => IPStatus.TtlReassemblyTimeExceeded, + _ => IPStatus.TtlExpired, + }, + IcmpV6MessageType.ParameterProblem => (IcmpV6ParameterProblemCode)code switch + { + IcmpV6ParameterProblemCode.ErroneousHeaderField => IPStatus.BadHeader, + IcmpV6ParameterProblemCode.UnrecognizedNextHeader => IPStatus.UnrecognizedNextHeader, + IcmpV6ParameterProblemCode.UnrecognizedIpv6Option => IPStatus.BadOption, + _ => IPStatus.ParameterProblem, + }, + _ => IPStatus.Unknown, + }; } } }