Minor fix to ICMP receive.
Modified: trunk/reactos/drivers/lib/ip/network/ip.c

Modified: trunk/reactos/drivers/lib/ip/network/ip.c
--- trunk/reactos/drivers/lib/ip/network/ip.c	2005-01-24 14:17:30 UTC (rev 13248)
+++ trunk/reactos/drivers/lib/ip/network/ip.c	2005-01-24 16:58:53 UTC (rev 13249)
@@ -152,6 +152,10 @@
 
     /* Call the appropriate protocol handler */
     (*ProtocolTable[Protocol])(Interface, IPPacket);
+    /* Special case for ICMP -- ICMP can be caught by a SOCK_RAW but also
+     * must be handled here. */
+    if( Protocol == IPPROTO_ICMP ) 
+        ICMPReceive( Interface, IPPacket );
 }
 
 
@@ -401,9 +405,6 @@
     for (i = 0; i < IP_PROTOCOL_TABLE_SIZE; i++)
         IPRegisterProtocol(i, DefaultProtocolHandler);
 
-    /* Register network level protocol receive handlers */
-    IPRegisterProtocol(IPPROTO_ICMP, ICMPReceive);
-
     /* Initialize NTE list and protecting lock */
     InitializeListHead(&NetTableListHead);
     TcpipInitializeSpinLock(&NetTableListLock);