//translates the relevant icmpsendecho codes to a ipstatus code private IPStatus GetIPStatus (IcmpV4Type type, IcmpV4Code code) { switch (type) { case IcmpV4Type.ICMP4_ECHO_REPLY: return IPStatus.Success; case IcmpV4Type.ICMP4_SOURCE_QUENCH: return IPStatus.SourceQuench; case IcmpV4Type.ICMP4_PARAM_PROB: return IPStatus.ParameterProblem; case IcmpV4Type.ICMP4_TIME_EXCEEDED: return IPStatus.TtlExpired; case IcmpV4Type.ICMP4_DST_UNREACH: { switch (code) { case IcmpV4Code.ICMP4_UNREACH_NET: return IPStatus.DestinationNetworkUnreachable; case IcmpV4Code.ICMP4_UNREACH_HOST: return IPStatus.DestinationHostUnreachable; case IcmpV4Code.ICMP4_UNREACH_PROTOCOL: return IPStatus.DestinationProtocolUnreachable; case IcmpV4Code.ICMP4_UNREACH_PORT: return IPStatus.DestinationPortUnreachable; case IcmpV4Code.ICMP4_UNREACH_FRAG_NEEDED: return IPStatus.PacketTooBig; default: return IPStatus.DestinationUnreachable; } } } return IPStatus.Unknown; }
//translates the relevant icmpsendecho codes to a ipstatus code private IPStatus GetIPStatus(IcmpV4Type type, IcmpV4Code code) { switch (type) { case IcmpV4Type.ICMP4_ECHO_REPLY: return(IPStatus.Success); case IcmpV4Type.ICMP4_SOURCE_QUENCH: return(IPStatus.SourceQuench); case IcmpV4Type.ICMP4_PARAM_PROB: return(IPStatus.ParameterProblem); case IcmpV4Type.ICMP4_TIME_EXCEEDED: return(IPStatus.TtlExpired); case IcmpV4Type.ICMP4_DST_UNREACH: { switch (code) { case IcmpV4Code.ICMP4_UNREACH_NET: return(IPStatus.DestinationNetworkUnreachable); case IcmpV4Code.ICMP4_UNREACH_HOST: return(IPStatus.DestinationHostUnreachable); case IcmpV4Code.ICMP4_UNREACH_PROTOCOL: return(IPStatus.DestinationProtocolUnreachable); case IcmpV4Code.ICMP4_UNREACH_PORT: return(IPStatus.DestinationPortUnreachable); case IcmpV4Code.ICMP4_UNREACH_FRAG_NEEDED: return(IPStatus.PacketTooBig); default: return(IPStatus.DestinationUnreachable); } } } return(IPStatus.Unknown); }