IdStackConsts.pas 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. { $HDR$}
  2. {**********************************************************************}
  3. { Unit archived using Team Coherence }
  4. { Team Coherence is Copyright 2002 by Quality Software Components }
  5. { }
  6. { For further information / comments, visit our WEB site at }
  7. { http://www.TeamCoherence.com }
  8. {**********************************************************************}
  9. {}
  10. { $Log: 10345: IdStackConsts.pas
  11. {
  12. { Rev 1.0 2002.11.12 10:53:22 PM czhower
  13. }
  14. unit IdStackConsts;
  15. interface
  16. {This should be the only unit except OS Stack units that reference
  17. Winsock or lnxsock}
  18. uses
  19. {$IFDEF LINUX}
  20. Libc;
  21. {$ELSE}
  22. IdWinsock2;
  23. {$ENDIF}
  24. type
  25. TIdStackSocketHandle = TSocket;
  26. var
  27. Id_SO_True: Integer = 1;
  28. Id_SO_False: Integer = 0;
  29. const
  30. {$IFDEF LINUX}
  31. Id_IP_MULTICAST_TTL = IP_MULTICAST_TTL; // TODO integrate into IdStackConsts
  32. Id_IP_MULTICAST_LOOP = IP_MULTICAST_LOOP; // TODO integrate into IdStackConsts
  33. Id_IP_ADD_MEMBERSHIP = IP_ADD_MEMBERSHIP; // TODO integrate into IdStackConsts
  34. Id_IP_DROP_MEMBERSHIP = IP_DROP_MEMBERSHIP; // TODO integrate into IdStackConsts
  35. {$ELSE}
  36. Id_IP_MULTICAST_TTL = 10; // TODO integrate into IdStackConsts FIX ERROR in IdWinsock
  37. Id_IP_MULTICAST_LOOP = 11; // TODO integrate into IdStackConsts FIX ERROR in IdWinsock
  38. Id_IP_ADD_MEMBERSHIP = 12; // TODO integrate into IdStackConsts FIX ERROR in IdWinsock
  39. Id_IP_DROP_MEMBERSHIP = 13; // TODO integrate into IdStackConsts FIX ERROR in IdWinsock
  40. {$ENDIF}
  41. (*
  42. There seems to be an error in the correct values of multicast values in IdWinsock
  43. The values should be:
  44. ip_options = 1; //* set/get IP options */
  45. ip_hdrincl = 2; //* header is included with data */
  46. ip_tos = 3; //* IP type of service and preced*/
  47. ip_ttl = 4; //* IP time to live */
  48. ip_multicast_if = 9; //* set/get IP multicast i/f */
  49. ip_multicast_ttl = 10; //* set/get IP multicast ttl */
  50. ip_multicast_loop = 11; //*set/get IP multicast loopback */
  51. ip_add_membership = 12; //* add an IP group membership */
  52. ip_drop_membership = 13; //* drop an IP group membership */
  53. ip_dontfragment = 14; //* don't fragment IP datagrams */ {Do not Localize}
  54. *)
  55. {$IFDEF LINUX}
  56. TCP_NODELAY = 1;
  57. {$ENDIF}
  58. // Protocol Family
  59. Id_PF_INET = PF_INET;
  60. // Socket Type
  61. Id_SOCK_STREAM = Integer(SOCK_STREAM);
  62. Id_SOCK_DGRAM = Integer(SOCK_DGRAM);
  63. Id_SOCK_RAW = Integer(SOCK_RAW);
  64. // IP Protocol type
  65. Id_IPPROTO_IP = IPPROTO_IP;
  66. Id_IPPROTO_ICMP = IPPROTO_ICMP;
  67. Id_IPPROTO_IGMP = IPPROTO_IGMP;
  68. Id_IPPROTO_TCP = IPPROTO_TCP;
  69. Id_IPPROTO_UDP = IPPROTO_UDP;
  70. Id_IPPROTO_RAW = IPPROTO_RAW;
  71. Id_IPPROTO_MAX = IPPROTO_MAX;
  72. // Socket Option level
  73. Id_SOL_SOCKET = SOL_SOCKET;
  74. // Socket options
  75. Id_SO_BROADCAST = SO_BROADCAST;
  76. Id_SO_DEBUG = SO_DEBUG;
  77. Id_SO_DONTROUTE = SO_DONTROUTE;
  78. Id_SO_KEEPALIVE = SO_KEEPALIVE;
  79. Id_SO_LINGER = SO_LINGER;
  80. Id_SO_OOBINLINE = SO_OOBINLINE;
  81. Id_SO_RCVBUF = SO_RCVBUF;
  82. Id_SO_REUSEADDR = SO_REUSEADDR;
  83. Id_SO_SNDBUF = SO_SNDBUF;
  84. // Additional socket options
  85. Id_SO_RCVTIMEO = SO_RCVTIMEO;
  86. Id_SO_SNDTIMEO = SO_SNDTIMEO;
  87. Id_IP_TTL = IP_TTL;
  88. //
  89. Id_INADDR_ANY = INADDR_ANY;
  90. Id_INADDR_NONE = INADDR_NONE;
  91. // TCP Options
  92. Id_TCP_NODELAY = TCP_NODELAY;
  93. Id_INVALID_SOCKET = INVALID_SOCKET;
  94. Id_SOCKET_ERROR = SOCKET_ERROR;
  95. //
  96. {$IFDEF LINUX}
  97. // Shutdown Options
  98. Id_SD_Recv = SHUT_RD;
  99. Id_SD_Send = SHUT_WR;
  100. Id_SD_Both = SHUT_RDWR;
  101. Id_SD_Default = Id_SD_Both;
  102. //
  103. Id_WSAEINTR = EINTR;
  104. Id_WSAEBADF = EBADF;
  105. Id_WSAEACCES = EACCES;
  106. Id_WSAEFAULT = EFAULT;
  107. Id_WSAEINVAL = EINVAL;
  108. Id_WSAEMFILE = EMFILE;
  109. Id_WSAEWOULDBLOCK = EWOULDBLOCK;
  110. Id_WSAEINPROGRESS = EINPROGRESS;
  111. Id_WSAEALREADY = EALREADY;
  112. Id_WSAENOTSOCK = ENOTSOCK;
  113. Id_WSAEDESTADDRREQ = EDESTADDRREQ;
  114. Id_WSAEMSGSIZE = EMSGSIZE;
  115. Id_WSAEPROTOTYPE = EPROTOTYPE;
  116. Id_WSAENOPROTOOPT = ENOPROTOOPT;
  117. Id_WSAEPROTONOSUPPORT = EPROTONOSUPPORT;
  118. Id_WSAESOCKTNOSUPPORT = ESOCKTNOSUPPORT;
  119. Id_WSAEOPNOTSUPP = EOPNOTSUPP;
  120. Id_WSAEPFNOSUPPORT = EPFNOSUPPORT;
  121. Id_WSAEAFNOSUPPORT = EAFNOSUPPORT;
  122. Id_WSAEADDRINUSE = EADDRINUSE;
  123. Id_WSAEADDRNOTAVAIL = EADDRNOTAVAIL;
  124. Id_WSAENETDOWN = ENETDOWN;
  125. Id_WSAENETUNREACH = ENETUNREACH;
  126. Id_WSAENETRESET = ENETRESET;
  127. Id_WSAECONNABORTED = ECONNABORTED;
  128. Id_WSAECONNRESET = ECONNRESET;
  129. Id_WSAENOBUFS = ENOBUFS;
  130. Id_WSAEISCONN = EISCONN;
  131. Id_WSAENOTCONN = ENOTCONN;
  132. Id_WSAESHUTDOWN = ESHUTDOWN;
  133. Id_WSAETOOMANYREFS = ETOOMANYREFS;
  134. Id_WSAETIMEDOUT = ETIMEDOUT;
  135. Id_WSAECONNREFUSED = ECONNREFUSED;
  136. Id_WSAELOOP = ELOOP;
  137. Id_WSAENAMETOOLONG = ENAMETOOLONG;
  138. Id_WSAEHOSTDOWN = EHOSTDOWN;
  139. Id_WSAEHOSTUNREACH = EHOSTUNREACH;
  140. Id_WSAENOTEMPTY = ENOTEMPTY;
  141. {$ELSE}
  142. // Shutdown Options
  143. Id_SD_Recv = 0;
  144. Id_SD_Send = 1;
  145. Id_SD_Both = 2;
  146. Id_SD_Default = Id_SD_Send;
  147. //
  148. Id_WSAEINTR = WSAEINTR;
  149. Id_WSAEBADF = WSAEBADF;
  150. Id_WSAEACCES = WSAEACCES;
  151. Id_WSAEFAULT = WSAEFAULT;
  152. Id_WSAEINVAL = WSAEINVAL;
  153. Id_WSAEMFILE = WSAEMFILE;
  154. Id_WSAEWOULDBLOCK = WSAEWOULDBLOCK;
  155. Id_WSAEINPROGRESS = WSAEINPROGRESS;
  156. Id_WSAEALREADY = WSAEALREADY;
  157. Id_WSAENOTSOCK = WSAENOTSOCK;
  158. Id_WSAEDESTADDRREQ = WSAEDESTADDRREQ;
  159. Id_WSAEMSGSIZE = WSAEMSGSIZE;
  160. Id_WSAEPROTOTYPE = WSAEPROTOTYPE;
  161. Id_WSAENOPROTOOPT = WSAENOPROTOOPT;
  162. Id_WSAEPROTONOSUPPORT = WSAEPROTONOSUPPORT;
  163. Id_WSAESOCKTNOSUPPORT = WSAESOCKTNOSUPPORT;
  164. Id_WSAEOPNOTSUPP = WSAEOPNOTSUPP;
  165. Id_WSAEPFNOSUPPORT = WSAEPFNOSUPPORT;
  166. Id_WSAEAFNOSUPPORT = WSAEAFNOSUPPORT;
  167. Id_WSAEADDRINUSE = WSAEADDRINUSE;
  168. Id_WSAEADDRNOTAVAIL = WSAEADDRNOTAVAIL;
  169. Id_WSAENETDOWN = WSAENETDOWN;
  170. Id_WSAENETUNREACH = WSAENETUNREACH;
  171. Id_WSAENETRESET = WSAENETRESET;
  172. Id_WSAECONNABORTED = WSAECONNABORTED;
  173. Id_WSAECONNRESET = WSAECONNRESET;
  174. Id_WSAENOBUFS = WSAENOBUFS;
  175. Id_WSAEISCONN = WSAEISCONN;
  176. Id_WSAENOTCONN = WSAENOTCONN;
  177. Id_WSAESHUTDOWN = WSAESHUTDOWN;
  178. Id_WSAETOOMANYREFS = WSAETOOMANYREFS;
  179. Id_WSAETIMEDOUT = WSAETIMEDOUT;
  180. Id_WSAECONNREFUSED = WSAECONNREFUSED;
  181. Id_WSAELOOP = WSAELOOP;
  182. Id_WSAENAMETOOLONG = WSAENAMETOOLONG;
  183. Id_WSAEHOSTDOWN = WSAEHOSTDOWN;
  184. Id_WSAEHOSTUNREACH = WSAEHOSTUNREACH;
  185. Id_WSAENOTEMPTY = WSAENOTEMPTY;
  186. {$ENDIF}
  187. implementation
  188. end.