Mercurial > projects > ddbg_continued
comparison win32/ipexport.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:586e4a649642 | 1:4a9dcbd9e54f |
---|---|
1 /***********************************************************************\ | |
2 * ipexport.d * | |
3 * * | |
4 * Windows API header module * | |
5 * * | |
6 * Translated from MinGW Windows headers * | |
7 * by Stewart Gordon * | |
8 * * | |
9 * Placed into public domain * | |
10 \***********************************************************************/ | |
11 module win32.ipexport; | |
12 | |
13 private import win32.windef; | |
14 | |
15 const size_t MAX_ADAPTER_NAME = 128; | |
16 | |
17 // IP STATUS flags | |
18 enum : IP_STATUS { | |
19 IP_SUCCESS = 0, | |
20 IP_STATUS_BASE = 11000, | |
21 IP_BUF_TOO_SMALL, | |
22 IP_DEST_NET_UNREACHABLE, | |
23 IP_DEST_HOST_UNREACHABLE, | |
24 IP_DEST_PROT_UNREACHABLE, | |
25 IP_DEST_PORT_UNREACHABLE, | |
26 IP_NO_RESOURCES, | |
27 IP_BAD_OPTION, | |
28 IP_HW_ERROR, | |
29 IP_PACKET_TOO_BIG, | |
30 IP_REQ_TIMED_OUT, | |
31 IP_BAD_REQ, | |
32 IP_BAD_ROUTE, | |
33 IP_TTL_EXPIRED_TRANSIT, | |
34 IP_TTL_EXPIRED_REASSEM, | |
35 IP_PARAM_PROBLEM, | |
36 IP_SOURCE_QUENCH, | |
37 IP_OPTION_TOO_BIG, | |
38 IP_BAD_DESTINATION, | |
39 IP_ADDR_DELETED, | |
40 IP_SPEC_MTU_CHANGE, | |
41 IP_MTU_CHANGE, | |
42 IP_UNLOAD, // = IP_STATUS_BASE + 22 | |
43 IP_GENERAL_FAILURE = IP_STATUS_BASE + 50, | |
44 MAX_IP_STATUS = IP_GENERAL_FAILURE, | |
45 IP_PENDING = IP_STATUS_BASE + 255 | |
46 } | |
47 | |
48 // IP header Flags values | |
49 const byte IP_FLAG_DF = 2; | |
50 | |
51 // IP Option types | |
52 enum : ubyte { | |
53 IP_OPT_EOL = 0, | |
54 IP_OPT_NOP = 0x01, | |
55 IP_OPT_RR = 0x07, | |
56 IP_OPT_SECURITY = 0x82, | |
57 IP_OPT_LSRR = 0x83, | |
58 IP_OPT_SSRR = 0x89, | |
59 IP_OPT_TS = 0x44, | |
60 IP_OPT_SID = 0x88, | |
61 IP_OPT_ROUTER_ALERT = 0x94 | |
62 } | |
63 | |
64 const ubyte MAX_OPT_SIZE = 40; | |
65 | |
66 alias uint IPAddr, IPMask, IP_STATUS; | |
67 | |
68 struct IP_OPTION_INFORMATION { | |
69 ubyte Ttl; | |
70 ubyte Tos; | |
71 ubyte Flags; | |
72 ubyte OptionsSize; | |
73 ubyte* OptionsData; | |
74 } | |
75 alias IP_OPTION_INFORMATION* PIP_OPTION_INFORMATION; | |
76 | |
77 struct ICMP_ECHO_REPLY { | |
78 IPAddr Address; | |
79 uint Status; | |
80 uint RoundTripTime; | |
81 ushort DataSize; | |
82 ushort Reserved; | |
83 void* Data; | |
84 IP_OPTION_INFORMATION Options; | |
85 } | |
86 alias ICMP_ECHO_REPLY* PICMP_ECHO_REPLY; | |
87 | |
88 struct IP_ADAPTER_INDEX_MAP { | |
89 ULONG Index; | |
90 WCHAR[MAX_ADAPTER_NAME] Name; | |
91 } | |
92 alias IP_ADAPTER_INDEX_MAP* PIP_ADAPTER_INDEX_MAP; | |
93 | |
94 struct IP_INTERFACE_INFO { | |
95 LONG NumAdapters; | |
96 IP_ADAPTER_INDEX_MAP[1] _Adapter; | |
97 | |
98 IP_ADAPTER_INDEX_MAP* Adapter() { return _Adapter.ptr; } | |
99 } | |
100 alias IP_INTERFACE_INFO* PIP_INTERFACE_INFO; | |
101 | |
102 struct IP_UNIDIRECTIONAL_ADAPTER_ADDRESS { | |
103 ULONG NumAdapters; | |
104 IPAddr[1] _Address; | |
105 | |
106 IPAddr* Address() { return _Address.ptr; } | |
107 } | |
108 alias IP_UNIDIRECTIONAL_ADAPTER_ADDRESS* PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS; |