summaryrefslogtreecommitdiffstats
path: root/private/inc/icmp.h
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/inc/icmp.h
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/inc/icmp.h')
-rw-r--r--private/inc/icmp.h135
1 files changed, 135 insertions, 0 deletions
diff --git a/private/inc/icmp.h b/private/inc/icmp.h
new file mode 100644
index 000000000..92fbb8450
--- /dev/null
+++ b/private/inc/icmp.h
@@ -0,0 +1,135 @@
+
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ icmp.h
+
+Abstract:
+
+ This module declares the ICMP APIs that are provided for use
+ primarily by the NT tcp/ip utilities.
+
+Author:
+
+ John Ballard (jballard) April 1, 1993
+
+Revision History:
+
+
+
+--*/
+
+#ifndef _ICMP_
+#define _ICMP_
+
+
+#if (_MSC_VER >= 800)
+#define STRMAPI __stdcall
+#else
+#define _cdecl
+#define STRMAPI
+#endif
+
+/*
+ *
+ * register_icmp returns a handle to an open stream to icmp or
+ * ICMP_ERROR if an error occurs.
+ *
+ */
+
+extern HANDLE STRMAPI register_icmp(void);
+
+#define ICMP_ERROR ((HANDLE) -3)
+
+/*
+ *
+ * If an error occurs a GetLastError() will return the reason for the error.
+ *
+ */
+
+#define ICMP_OPEN_ERROR 1
+#define ICMP_PUTMSG_ERROR 2
+#define ICMP_GETMSG_ERROR 3
+#define ICMP_IN_USE 4
+#define ICMP_INVALID_PROT 5
+
+/*
+ *
+ * do_echo_req generates an icmp echo request packet
+ *
+ * parameters are:
+ *
+ * fd - handle of stream to icmp (returned by register_icmp call)
+ * addr - ip address of host to ping in form returned by inet_addr()
+ * data - buffer containing data for ping packet
+ * datalen - length of data buffer
+ * optptr - buffer containing ip options to use for this packet
+ * optlen - option buffer length
+ * df - don't fragment flag
+ * ttl - time to live value
+ * tos - type of service value
+ * preced - precedence value
+ *
+ * returns:
+ *
+ * 0 if no error occured or
+ * standard unix error values ENOMEM, ERANGE, etc.
+ *
+ */
+
+extern int STRMAPI
+do_echo_req( HANDLE fd, long addr, char * data, int datalen,
+ char *optptr, int optlen, int df, int ttl, int tos, int preced);
+
+
+/*
+ *
+ * do_echo_rep receives the reply to an icmp echo request packet
+ *
+ * parameters are:
+ *
+ * fd - handle of stream to icmp (returned by register_icmp call)
+ * rdata - buffer containing data for ping packet
+ * rdatalen - length of data buffer
+ * rtype - type of packet returned (see
+ * rttl - time to live value
+ * rtos - type of service value
+ * rpreced - precedence value
+ * rdf - don't fragment flag
+ * roptptr - buffer containing ip options to use for this packet
+ * roptlen - option buffer length
+ *
+ * returns:
+ *
+ * 0 if no error occured. rtype will indicate type of packet received.
+ * -1 if error occured. GetLastError() will indicate actual error.
+ * -3 if invalid msg returned. GetLastError() will indicate type.
+ *
+ */
+
+extern int STRMAPI
+do_echo_rep( HANDLE fd, char *rdata, int rdatalen, int *rtype,
+ int *rttl, int *rtos, int *rpreced, int *rdf,
+ char *roptptr, int *roptlen);
+
+
+/*
+ * If -1 return then GetLastError returns the following.
+ */
+
+#define POLL_TIMEOUT 0
+#define POLL_FAILED 1
+
+/*
+ * Values returned by do_echo_rep in rtype
+ */
+
+#define ECHO_REPLY 0 /* echo reply */
+#define DEST_UNR 3 /* destination unreachable: */
+#define TIME_EXCEEDED 11 /* time exceeded: */
+#define PARAMETER_ERROR 12 /* parameter problem */
+
+#endif