/// ************************************************************************
/// Copyright (C) 2001, Patrick Charles and Jonas Lehmann *
/// Distributed under the Mozilla Public License *
/// http://www.mozilla.org/NPL/MPL-1.1.txt *
/// *************************************************************************
///
namespace SharpPcap.Packets
{
/// ICMP message utility class.
///
///
public class ICMPMessage : ICMPMessages
{
/// Fetch an ICMP message.
/// the code associated with the message.
///
/// a message describing the significance of the ICMP code.
///
public static System.String getDescription(int code)
{
System.Int32 c = (System.Int32) code;
if (messages.ContainsKey(c))
{
//UPGRADE_TODO: Method 'java.util.HashMap.get' was converted to 'System.Collections.Hashtable.Item' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilHashMapget_javalangObject'"
return (System.String) messages[c];
}
else
return "unknown";
}
/// 'Human-readable' ICMP messages.
//UPGRADE_TODO: Class 'java.util.HashMap' was converted to 'System.Collections.Hashtable' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilHashMap'"
private static System.Collections.Hashtable messages = new System.Collections.Hashtable();
static ICMPMessage()
{
{
messages[(System.Int32) ICMPMessages_Fields.ECHO_REPLY] = "echo reply";
messages[(System.Int32) ICMPMessages_Fields.ECHO] = "echo request";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_NET] = "net unreachable";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_HOST] = "host unreachable";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_PROTOCOL] = "bad protocol";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_PORT] = "port unreachable";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_NEEDFRAG] = "ip_df drop";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_SRCFAIL] = "source route failed";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_NET_UNKNOWN] = "unknown network";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_HOST_UNKNOWN] = "unknown host";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_ISOLATED] = "source host isolated";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_NET_PROHIB] = "net access prohibited";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_HOST_PROHIB] = "host access prohibited";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_TOSNET] = "tos for net invalid";
messages[(System.Int32) ICMPMessages_Fields.UNREACH_TOSHOST] = "tos for host invalid";
messages[(System.Int32) ICMPMessages_Fields.SOURCE_QUENCH] = "packet lost";
messages[(System.Int32) ICMPMessages_Fields.REDIRECT_NET] = "redirect to network";
messages[(System.Int32) ICMPMessages_Fields.REDIRECT_HOST] = "redirect to host";
messages[(System.Int32) ICMPMessages_Fields.REDIRECT_TOSNET] = "tos redirect to network";
messages[(System.Int32) ICMPMessages_Fields.REDIRECT_TOSHOST] = "tos redirect to host";
messages[(System.Int32) ICMPMessages_Fields.ROUTER_ADVERT] = "router advert";
messages[(System.Int32) ICMPMessages_Fields.ROUTER_SOLICIT] = "router solicit";
messages[(System.Int32) ICMPMessages_Fields.TIME_EXCEED_INTRANS] = "transit time exceeded";
messages[(System.Int32) ICMPMessages_Fields.TIME_EXCEED_REASS] = "reass time exceeded";
messages[(System.Int32) ICMPMessages_Fields.PARAM_PROB] = "bad ip header";
messages[(System.Int32) ICMPMessages_Fields.TSTAMP] = "timestamp request";
messages[(System.Int32) ICMPMessages_Fields.TSTAMP_REPLY] = "timestamp reply";
messages[(System.Int32) ICMPMessages_Fields.IREQ] = "information request";
messages[(System.Int32) ICMPMessages_Fields.IREQ_REPLY] = "information reply";
messages[(System.Int32) ICMPMessages_Fields.MASK_REQ] = "address mask request";
messages[(System.Int32) ICMPMessages_Fields.MASK_REPLY] = "address mask reply";
}
}
}
}