Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenroutines.c
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS TCP/IP protocol driver 00004 * FILE: tcpip/routines.c 00005 * PURPOSE: Common routines 00006 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net) 00007 * REVISIONS: 00008 * CSH 01/08-2000 Created 00009 */ 00010 00011 #include "precomp.h" 00012 00013 static UINT RandomNumber = 0x12345678; 00014 00015 00016 UINT Random( 00017 VOID) 00018 /* 00019 * FUNCTION: Returns a pseudo random number 00020 * RETURNS: 00021 * Pseudo random number 00022 */ 00023 { 00024 RandomNumber ^= 0x78563412; 00025 00026 return RandomNumber; 00027 } 00028 00029 #if DBG 00030 static VOID DisplayIPHeader( 00031 PCHAR Header, 00032 UINT Length) 00033 { 00034 /* FIXME: IPv4 only */ 00035 PIPv4_HEADER IPHeader = (PIPv4_HEADER)Header; 00036 00037 DbgPrint("IPv4 header:\n"); 00038 DbgPrint("VerIHL: 0x%x (version 0x%x, length %d 32-bit words)\n", 00039 IPHeader->VerIHL, (IPHeader->VerIHL & 0xF0) >> 4, IPHeader->VerIHL & 0x0F); 00040 DbgPrint(" Tos: %d\n", IPHeader->Tos); 00041 DbgPrint(" TotalLength: %d\n", WN2H(IPHeader->TotalLength)); 00042 DbgPrint(" Id: %d\n", WN2H(IPHeader->Id)); 00043 DbgPrint(" FlagsFragOfs: 0x%x (offset 0x%x)\n", WN2H(IPHeader->FlagsFragOfs), WN2H(IPHeader->FlagsFragOfs) & IPv4_FRAGOFS_MASK); 00044 if ((WN2H(IPHeader->FlagsFragOfs) & IPv4_DF_MASK) > 0) DbgPrint(" IPv4_DF - Don't fragment\n"); 00045 if ((WN2H(IPHeader->FlagsFragOfs) & IPv4_MF_MASK) > 0) DbgPrint(" IPv4_MF - More fragments\n"); 00046 DbgPrint(" Ttl: %d\n", IPHeader->Ttl); 00047 DbgPrint(" Protocol: %d\n", IPHeader->Protocol); 00048 DbgPrint(" Checksum: 0x%x\n", WN2H(IPHeader->Checksum)); 00049 DbgPrint(" SrcAddr: %d.%d.%d.%d\n", 00050 ((IPHeader->SrcAddr >> 0) & 0xFF), ((IPHeader->SrcAddr >> 8) & 0xFF), 00051 ((IPHeader->SrcAddr >> 16) & 0xFF), ((IPHeader->SrcAddr >> 24) & 0xFF)); 00052 DbgPrint(" DstAddr: %d.%d.%d.%d\n", 00053 ((IPHeader->DstAddr >> 0) & 0xFF), ((IPHeader->DstAddr >> 8) & 0xFF), 00054 ((IPHeader->DstAddr >> 16) & 0xFF), ((IPHeader->DstAddr >> 24) & 0xFF)); 00055 } 00056 00057 #endif 00058 00059 VOID DisplayIPPacket( 00060 PIP_PACKET IPPacket) 00061 { 00062 #if DBG 00063 UINT Length; 00064 PCHAR CharBuffer; 00065 00066 if ((DbgQueryDebugFilterState(DPFLTR_TCPIP_ID, DEBUG_PBUFFER | DPFLTR_MASK) != TRUE) || 00067 (DbgQueryDebugFilterState(DPFLTR_TCPIP_ID, DEBUG_IP | DPFLTR_MASK) != TRUE)) { 00068 return; 00069 } 00070 00071 if (!IPPacket) { 00072 TI_DbgPrint(MIN_TRACE, ("Cannot display null packet.\n")); 00073 return; 00074 } 00075 00076 TI_DbgPrint(MIN_TRACE, ("IPPacket is at (0x%X).\n", IPPacket)); 00077 TI_DbgPrint(MIN_TRACE, ("Header buffer is at (0x%X).\n", IPPacket->Header)); 00078 TI_DbgPrint(MIN_TRACE, ("Header size is (%d).\n", IPPacket->HeaderSize)); 00079 TI_DbgPrint(MIN_TRACE, ("TotalSize (%d).\n", IPPacket->TotalSize)); 00080 TI_DbgPrint(MIN_TRACE, ("NdisPacket (0x%X).\n", IPPacket->NdisPacket)); 00081 00082 CharBuffer = IPPacket->Header; 00083 Length = IPPacket->HeaderSize; 00084 DisplayIPHeader(CharBuffer, Length); 00085 #endif 00086 } 00087 Generated on Sun May 27 2012 04:28:04 for ReactOS by
1.7.6.1
|