Fix a few msvc warnings
[reactos.git] / reactos / apps / utils / net / tracert / tracert.h
index 1fc27e9..67801f0 100644 (file)
@@ -1,80 +1,83 @@
-/*\r
- * COPYRIGHT:   See COPYING in the top level directory\r
- * PROJECT:     ReactOS traceroute utility\r
- * FILE:        apps/utils/net/tracert/tracert.h\r
- * PURPOSE:     trace a packets route through a network\r
- * PROGRAMMERS: Ged Murphy (gedmurphy@gmail.com)\r
- * REVISIONS:\r
- *   GM 03/05/05 Created\r
- */\r
-\r
-#define ECHO_REPLY 0\r
-#define DEST_UNREACHABLE 3\r
-#define ECHO_REQUEST 8\r
-#define TTL_EXCEEDED 11\r
-\r
-#define ICMP_MIN_SIZE 8\r
-#define ICMP_MAX_SIZE 65535\r
-#define PACKET_SIZE 32\r
-/* we need this for packets which have the 'dont fragment' \r
- * bit set, as they can get quite large otherwise \r
- * (I've seen some reach 182 bytes */\r
-#define MAX_REC_SIZE 200 \r
-\r
-/* pack the structures */\r
-#pragma pack(1) \r
-\r
-/* IPv4 Header, 20 bytes */\r
-typedef struct IPv4Header {\r
-    BYTE h_len:4;\r
-    BYTE version:4;\r
-    BYTE tos;\r
-    USHORT length;\r
-    USHORT id;\r
-    USHORT flag_frag;\r
-    BYTE ttl;\r
-    BYTE proto;\r
-    USHORT checksum;\r
-    ULONG source;\r
-    ULONG dest;\r
-} IPv4_HEADER, *PIPv4_HEADER;\r
-\r
-/* ICMP Header, 8 bytes */\r
-typedef struct ICMPHeader {\r
-    BYTE type;\r
-    BYTE code;\r
-    USHORT checksum;\r
-    USHORT id; // not used in time exceeded\r
-    USHORT seq; // not used in time exceeded\r
-} ICMP_HEADER, *PICMP_HEADER;\r
-\r
-/* ICMP Echo Reply Header, 12 bytes */\r
-typedef struct EchoReplyHeader {\r
-    struct ICMPHeader icmpheader;\r
-    struct timeval timestamp; \r
-} ECHO_REPLY_HEADER, *PECHO_REPLY_HEADER;\r
-\r
-/* ICMP Echo Reply Header, 12 bytes */\r
-typedef struct TTLExceedHeader {\r
-    struct ICMPHeader icmpheader;\r
-    struct IPv4Header ipheader;\r
-    struct ICMPHeader OrigIcmpHeader;\r
-} TTL_EXCEED_HEADER, *PTTL_EXCEED_HEADER;\r
-\r
-/* return to normal */\r
-#pragma pack()\r
-\r
-\r
-/* function definitions */\r
-//BOOL ParseCmdline(int argc, char* argv[]);\r
-INT Driver(void);\r
-INT Setup(INT ttl);\r
-VOID SetupTimingMethod(void);\r
-VOID ResolveHostname(void);\r
-VOID PreparePacket(INT packetSize, INT seqNum);\r
-INT SendPacket(INT datasize);\r
-INT ReceivePacket(INT datasize);\r
-INT DecodeResponse(INT packetSize, INT seqNum);\r
-LONG GetTime(void);\r
-WORD CheckSum(PUSHORT data, UINT size);\r
-VOID Usage(void);\r
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS traceroute utility
+ * FILE:        apps/utils/net/tracert/tracert.h
+ * PURPOSE:     trace a packets route through a network
+ * PROGRAMMERS: Ged Murphy (gedmurphy@gmail.com)
+ * REVISIONS:
+ *   GM 03/05/05 Created
+ */
+
+#define ECHO_REPLY 0
+#define DEST_UNREACHABLE 3
+#define ECHO_REQUEST 8
+#define TTL_EXCEEDED 11
+
+#define ICMP_MIN_SIZE 8
+#define ICMP_MAX_SIZE 65535
+#define PACKET_SIZE 32
+/* we need this for packets which have the 'dont fragment'
+ * bit set, as they can get quite large otherwise
+ * (I've seen some reach 182 bytes */
+#define MAX_REC_SIZE 200
+
+/* pack the structures */
+#include <pshpack1.h>
+
+/* IPv4 Header, 20 bytes */
+typedef struct IPv4Header
+{
+    BYTE h_len:4;
+    BYTE version:4;
+    BYTE tos;
+    USHORT length;
+    USHORT id;
+    USHORT flag_frag;
+    BYTE ttl;
+    BYTE proto;
+    USHORT checksum;
+    ULONG source;
+    ULONG dest;
+} IPv4_HEADER, *PIPv4_HEADER;
+
+/* ICMP Header, 8 bytes */
+typedef struct ICMPHeader
+{
+    BYTE type;
+    BYTE code;
+    USHORT checksum;
+    USHORT id; // not used in time exceeded
+    USHORT seq; // not used in time exceeded
+} ICMP_HEADER, *PICMP_HEADER;
+
+/* ICMP Echo Reply Header, 12 bytes */
+typedef struct EchoReplyHeader
+{
+    struct ICMPHeader icmpheader;
+    struct timeval timestamp;
+} ECHO_REPLY_HEADER, *PECHO_REPLY_HEADER;
+
+/* ICMP Echo Reply Header, 12 bytes */
+typedef struct TTLExceedHeader
+{
+    struct ICMPHeader icmpheader;
+    struct IPv4Header ipheader;
+    struct ICMPHeader OrigIcmpHeader;
+} TTL_EXCEED_HEADER, *PTTL_EXCEED_HEADER;
+
+/* return to normal */
+#include <poppack.h>
+
+/* function definitions */
+static BOOL ParseCmdline(int argc, char* argv[]);
+static INT Driver(void);
+static INT Setup(INT ttl);
+static VOID SetupTimingMethod(void);
+static VOID ResolveHostname(void);
+static VOID PreparePacket(INT packetSize, USHORT seqNum);
+static INT SendPacket(INT datasize);
+static INT ReceivePacket(INT datasize);
+static INT DecodeResponse(INT packetSize, USHORT seqNum);
+static LONGLONG GetTime(void);
+static WORD CheckSum(PUSHORT data, UINT size);
+static VOID Usage(void);