asyncengine 0.0.1.testing

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. data/README.markdown +0 -0
  2. data/asyncengine.gemspec +26 -0
  3. data/ext/asyncengine_ext/asyncengine_ruby.c +82 -0
  4. data/ext/asyncengine_ext/extconf.rb +47 -0
  5. data/ext/asyncengine_ext/libuv/AUTHORS +45 -0
  6. data/ext/asyncengine_ext/libuv/LICENSE +42 -0
  7. data/ext/asyncengine_ext/libuv/Makefile +119 -0
  8. data/ext/asyncengine_ext/libuv/README.md +88 -0
  9. data/ext/asyncengine_ext/libuv/build/gcc_version.py +20 -0
  10. data/ext/asyncengine_ext/libuv/common.gypi +176 -0
  11. data/ext/asyncengine_ext/libuv/config-mingw.mk +61 -0
  12. data/ext/asyncengine_ext/libuv/config-unix.mk +173 -0
  13. data/ext/asyncengine_ext/libuv/gyp_uv +60 -0
  14. data/ext/asyncengine_ext/libuv/include/ares.h +591 -0
  15. data/ext/asyncengine_ext/libuv/include/ares_version.h +24 -0
  16. data/ext/asyncengine_ext/libuv/include/uv-private/eio.h +403 -0
  17. data/ext/asyncengine_ext/libuv/include/uv-private/ev.h +838 -0
  18. data/ext/asyncengine_ext/libuv/include/uv-private/ngx-queue.h +106 -0
  19. data/ext/asyncengine_ext/libuv/include/uv-private/tree.h +768 -0
  20. data/ext/asyncengine_ext/libuv/include/uv-private/uv-unix.h +256 -0
  21. data/ext/asyncengine_ext/libuv/include/uv-private/uv-win.h +458 -0
  22. data/ext/asyncengine_ext/libuv/include/uv.h +1556 -0
  23. data/ext/asyncengine_ext/libuv/src/ares/AUTHORS +37 -0
  24. data/ext/asyncengine_ext/libuv/src/ares/CHANGES +1218 -0
  25. data/ext/asyncengine_ext/libuv/src/ares/CMakeLists.txt +22 -0
  26. data/ext/asyncengine_ext/libuv/src/ares/NEWS +21 -0
  27. data/ext/asyncengine_ext/libuv/src/ares/README +60 -0
  28. data/ext/asyncengine_ext/libuv/src/ares/README.cares +13 -0
  29. data/ext/asyncengine_ext/libuv/src/ares/README.msvc +142 -0
  30. data/ext/asyncengine_ext/libuv/src/ares/README.node +21 -0
  31. data/ext/asyncengine_ext/libuv/src/ares/RELEASE-NOTES +26 -0
  32. data/ext/asyncengine_ext/libuv/src/ares/TODO +23 -0
  33. data/ext/asyncengine_ext/libuv/src/ares/ares__close_sockets.c +66 -0
  34. data/ext/asyncengine_ext/libuv/src/ares/ares__get_hostent.c +263 -0
  35. data/ext/asyncengine_ext/libuv/src/ares/ares__read_line.c +71 -0
  36. data/ext/asyncengine_ext/libuv/src/ares/ares__timeval.c +111 -0
  37. data/ext/asyncengine_ext/libuv/src/ares/ares_cancel.c +63 -0
  38. data/ext/asyncengine_ext/libuv/src/ares/ares_data.c +190 -0
  39. data/ext/asyncengine_ext/libuv/src/ares/ares_data.h +65 -0
  40. data/ext/asyncengine_ext/libuv/src/ares/ares_destroy.c +105 -0
  41. data/ext/asyncengine_ext/libuv/src/ares/ares_dns.h +90 -0
  42. data/ext/asyncengine_ext/libuv/src/ares/ares_expand_name.c +200 -0
  43. data/ext/asyncengine_ext/libuv/src/ares/ares_expand_string.c +75 -0
  44. data/ext/asyncengine_ext/libuv/src/ares/ares_fds.c +63 -0
  45. data/ext/asyncengine_ext/libuv/src/ares/ares_free_hostent.c +42 -0
  46. data/ext/asyncengine_ext/libuv/src/ares/ares_free_string.c +25 -0
  47. data/ext/asyncengine_ext/libuv/src/ares/ares_getenv.c +30 -0
  48. data/ext/asyncengine_ext/libuv/src/ares/ares_getenv.h +26 -0
  49. data/ext/asyncengine_ext/libuv/src/ares/ares_gethostbyaddr.c +301 -0
  50. data/ext/asyncengine_ext/libuv/src/ares/ares_gethostbyname.c +523 -0
  51. data/ext/asyncengine_ext/libuv/src/ares/ares_getnameinfo.c +427 -0
  52. data/ext/asyncengine_ext/libuv/src/ares/ares_getopt.c +122 -0
  53. data/ext/asyncengine_ext/libuv/src/ares/ares_getopt.h +53 -0
  54. data/ext/asyncengine_ext/libuv/src/ares/ares_getsock.c +72 -0
  55. data/ext/asyncengine_ext/libuv/src/ares/ares_init.c +1809 -0
  56. data/ext/asyncengine_ext/libuv/src/ares/ares_iphlpapi.h +221 -0
  57. data/ext/asyncengine_ext/libuv/src/ares/ares_ipv6.h +78 -0
  58. data/ext/asyncengine_ext/libuv/src/ares/ares_library_init.c +142 -0
  59. data/ext/asyncengine_ext/libuv/src/ares/ares_library_init.h +42 -0
  60. data/ext/asyncengine_ext/libuv/src/ares/ares_llist.c +86 -0
  61. data/ext/asyncengine_ext/libuv/src/ares/ares_llist.h +42 -0
  62. data/ext/asyncengine_ext/libuv/src/ares/ares_mkquery.c +195 -0
  63. data/ext/asyncengine_ext/libuv/src/ares/ares_nowarn.c +181 -0
  64. data/ext/asyncengine_ext/libuv/src/ares/ares_nowarn.h +55 -0
  65. data/ext/asyncengine_ext/libuv/src/ares/ares_options.c +248 -0
  66. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_a_reply.c +263 -0
  67. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_aaaa_reply.c +259 -0
  68. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_mx_reply.c +170 -0
  69. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_ns_reply.c +182 -0
  70. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_ptr_reply.c +217 -0
  71. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_srv_reply.c +179 -0
  72. data/ext/asyncengine_ext/libuv/src/ares/ares_parse_txt_reply.c +201 -0
  73. data/ext/asyncengine_ext/libuv/src/ares/ares_platform.c +11035 -0
  74. data/ext/asyncengine_ext/libuv/src/ares/ares_platform.h +43 -0
  75. data/ext/asyncengine_ext/libuv/src/ares/ares_private.h +355 -0
  76. data/ext/asyncengine_ext/libuv/src/ares/ares_process.c +1295 -0
  77. data/ext/asyncengine_ext/libuv/src/ares/ares_query.c +183 -0
  78. data/ext/asyncengine_ext/libuv/src/ares/ares_rules.h +144 -0
  79. data/ext/asyncengine_ext/libuv/src/ares/ares_search.c +321 -0
  80. data/ext/asyncengine_ext/libuv/src/ares/ares_send.c +134 -0
  81. data/ext/asyncengine_ext/libuv/src/ares/ares_setup.h +199 -0
  82. data/ext/asyncengine_ext/libuv/src/ares/ares_strcasecmp.c +66 -0
  83. data/ext/asyncengine_ext/libuv/src/ares/ares_strcasecmp.h +30 -0
  84. data/ext/asyncengine_ext/libuv/src/ares/ares_strdup.c +42 -0
  85. data/ext/asyncengine_ext/libuv/src/ares/ares_strdup.h +26 -0
  86. data/ext/asyncengine_ext/libuv/src/ares/ares_strerror.c +56 -0
  87. data/ext/asyncengine_ext/libuv/src/ares/ares_timeout.c +80 -0
  88. data/ext/asyncengine_ext/libuv/src/ares/ares_version.c +11 -0
  89. data/ext/asyncengine_ext/libuv/src/ares/ares_writev.c +79 -0
  90. data/ext/asyncengine_ext/libuv/src/ares/ares_writev.h +36 -0
  91. data/ext/asyncengine_ext/libuv/src/ares/bitncmp.c +59 -0
  92. data/ext/asyncengine_ext/libuv/src/ares/bitncmp.h +26 -0
  93. data/ext/asyncengine_ext/libuv/src/ares/config_cygwin/ares_config.h +512 -0
  94. data/ext/asyncengine_ext/libuv/src/ares/config_darwin/ares_config.h +512 -0
  95. data/ext/asyncengine_ext/libuv/src/ares/config_freebsd/ares_config.h +512 -0
  96. data/ext/asyncengine_ext/libuv/src/ares/config_linux/ares_config.h +512 -0
  97. data/ext/asyncengine_ext/libuv/src/ares/config_netbsd/ares_config.h +512 -0
  98. data/ext/asyncengine_ext/libuv/src/ares/config_openbsd/ares_config.h +512 -0
  99. data/ext/asyncengine_ext/libuv/src/ares/config_sunos/ares_config.h +512 -0
  100. data/ext/asyncengine_ext/libuv/src/ares/config_win32/ares_config.h +369 -0
  101. data/ext/asyncengine_ext/libuv/src/ares/get_ver.awk +35 -0
  102. data/ext/asyncengine_ext/libuv/src/ares/inet_net_pton.c +451 -0
  103. data/ext/asyncengine_ext/libuv/src/ares/inet_net_pton.h +31 -0
  104. data/ext/asyncengine_ext/libuv/src/ares/inet_ntop.c +208 -0
  105. data/ext/asyncengine_ext/libuv/src/ares/inet_ntop.h +26 -0
  106. data/ext/asyncengine_ext/libuv/src/ares/nameser.h +203 -0
  107. data/ext/asyncengine_ext/libuv/src/ares/setup_once.h +504 -0
  108. data/ext/asyncengine_ext/libuv/src/ares/windows_port.c +22 -0
  109. data/ext/asyncengine_ext/libuv/src/unix/async.c +58 -0
  110. data/ext/asyncengine_ext/libuv/src/unix/cares.c +194 -0
  111. data/ext/asyncengine_ext/libuv/src/unix/check.c +80 -0
  112. data/ext/asyncengine_ext/libuv/src/unix/core.c +588 -0
  113. data/ext/asyncengine_ext/libuv/src/unix/cygwin.c +84 -0
  114. data/ext/asyncengine_ext/libuv/src/unix/darwin.c +341 -0
  115. data/ext/asyncengine_ext/libuv/src/unix/dl.c +91 -0
  116. data/ext/asyncengine_ext/libuv/src/unix/eio/Changes +63 -0
  117. data/ext/asyncengine_ext/libuv/src/unix/eio/LICENSE +36 -0
  118. data/ext/asyncengine_ext/libuv/src/unix/eio/Makefile.am +15 -0
  119. data/ext/asyncengine_ext/libuv/src/unix/eio/aclocal.m4 +8957 -0
  120. data/ext/asyncengine_ext/libuv/src/unix/eio/autogen.sh +3 -0
  121. data/ext/asyncengine_ext/libuv/src/unix/eio/config.h.in +86 -0
  122. data/ext/asyncengine_ext/libuv/src/unix/eio/config_cygwin.h +80 -0
  123. data/ext/asyncengine_ext/libuv/src/unix/eio/config_darwin.h +141 -0
  124. data/ext/asyncengine_ext/libuv/src/unix/eio/config_freebsd.h +81 -0
  125. data/ext/asyncengine_ext/libuv/src/unix/eio/config_linux.h +94 -0
  126. data/ext/asyncengine_ext/libuv/src/unix/eio/config_netbsd.h +81 -0
  127. data/ext/asyncengine_ext/libuv/src/unix/eio/config_openbsd.h +137 -0
  128. data/ext/asyncengine_ext/libuv/src/unix/eio/config_sunos.h +84 -0
  129. data/ext/asyncengine_ext/libuv/src/unix/eio/configure.ac +22 -0
  130. data/ext/asyncengine_ext/libuv/src/unix/eio/demo.c +194 -0
  131. data/ext/asyncengine_ext/libuv/src/unix/eio/ecb.h +370 -0
  132. data/ext/asyncengine_ext/libuv/src/unix/eio/eio.3 +3428 -0
  133. data/ext/asyncengine_ext/libuv/src/unix/eio/eio.c +2593 -0
  134. data/ext/asyncengine_ext/libuv/src/unix/eio/eio.pod +969 -0
  135. data/ext/asyncengine_ext/libuv/src/unix/eio/libeio.m4 +195 -0
  136. data/ext/asyncengine_ext/libuv/src/unix/eio/xthread.h +164 -0
  137. data/ext/asyncengine_ext/libuv/src/unix/error.c +98 -0
  138. data/ext/asyncengine_ext/libuv/src/unix/ev/Changes +388 -0
  139. data/ext/asyncengine_ext/libuv/src/unix/ev/LICENSE +36 -0
  140. data/ext/asyncengine_ext/libuv/src/unix/ev/Makefile.am +18 -0
  141. data/ext/asyncengine_ext/libuv/src/unix/ev/Makefile.in +771 -0
  142. data/ext/asyncengine_ext/libuv/src/unix/ev/README +58 -0
  143. data/ext/asyncengine_ext/libuv/src/unix/ev/aclocal.m4 +8957 -0
  144. data/ext/asyncengine_ext/libuv/src/unix/ev/autogen.sh +6 -0
  145. data/ext/asyncengine_ext/libuv/src/unix/ev/config.guess +1526 -0
  146. data/ext/asyncengine_ext/libuv/src/unix/ev/config.h.in +125 -0
  147. data/ext/asyncengine_ext/libuv/src/unix/ev/config.sub +1658 -0
  148. data/ext/asyncengine_ext/libuv/src/unix/ev/config_cygwin.h +123 -0
  149. data/ext/asyncengine_ext/libuv/src/unix/ev/config_darwin.h +122 -0
  150. data/ext/asyncengine_ext/libuv/src/unix/ev/config_freebsd.h +120 -0
  151. data/ext/asyncengine_ext/libuv/src/unix/ev/config_linux.h +141 -0
  152. data/ext/asyncengine_ext/libuv/src/unix/ev/config_netbsd.h +120 -0
  153. data/ext/asyncengine_ext/libuv/src/unix/ev/config_openbsd.h +126 -0
  154. data/ext/asyncengine_ext/libuv/src/unix/ev/config_sunos.h +122 -0
  155. data/ext/asyncengine_ext/libuv/src/unix/ev/configure +13037 -0
  156. data/ext/asyncengine_ext/libuv/src/unix/ev/configure.ac +18 -0
  157. data/ext/asyncengine_ext/libuv/src/unix/ev/depcomp +630 -0
  158. data/ext/asyncengine_ext/libuv/src/unix/ev/ev++.h +816 -0
  159. data/ext/asyncengine_ext/libuv/src/unix/ev/ev.3 +5311 -0
  160. data/ext/asyncengine_ext/libuv/src/unix/ev/ev.c +3921 -0
  161. data/ext/asyncengine_ext/libuv/src/unix/ev/ev.pod +5243 -0
  162. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_epoll.c +266 -0
  163. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_kqueue.c +235 -0
  164. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_poll.c +148 -0
  165. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_port.c +179 -0
  166. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_select.c +310 -0
  167. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_vars.h +203 -0
  168. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_win32.c +153 -0
  169. data/ext/asyncengine_ext/libuv/src/unix/ev/ev_wrap.h +196 -0
  170. data/ext/asyncengine_ext/libuv/src/unix/ev/event.c +402 -0
  171. data/ext/asyncengine_ext/libuv/src/unix/ev/event.h +170 -0
  172. data/ext/asyncengine_ext/libuv/src/unix/ev/install-sh +294 -0
  173. data/ext/asyncengine_ext/libuv/src/unix/ev/libev.m4 +39 -0
  174. data/ext/asyncengine_ext/libuv/src/unix/ev/ltmain.sh +8413 -0
  175. data/ext/asyncengine_ext/libuv/src/unix/ev/missing +336 -0
  176. data/ext/asyncengine_ext/libuv/src/unix/ev/mkinstalldirs +111 -0
  177. data/ext/asyncengine_ext/libuv/src/unix/freebsd.c +312 -0
  178. data/ext/asyncengine_ext/libuv/src/unix/fs.c +707 -0
  179. data/ext/asyncengine_ext/libuv/src/unix/idle.c +79 -0
  180. data/ext/asyncengine_ext/libuv/src/unix/internal.h +161 -0
  181. data/ext/asyncengine_ext/libuv/src/unix/kqueue.c +127 -0
  182. data/ext/asyncengine_ext/libuv/src/unix/linux/core.c +474 -0
  183. data/ext/asyncengine_ext/libuv/src/unix/linux/inotify.c +211 -0
  184. data/ext/asyncengine_ext/libuv/src/unix/linux/syscalls.c +230 -0
  185. data/ext/asyncengine_ext/libuv/src/unix/linux/syscalls.h +87 -0
  186. data/ext/asyncengine_ext/libuv/src/unix/loop.c +58 -0
  187. data/ext/asyncengine_ext/libuv/src/unix/netbsd.c +108 -0
  188. data/ext/asyncengine_ext/libuv/src/unix/openbsd.c +295 -0
  189. data/ext/asyncengine_ext/libuv/src/unix/pipe.c +266 -0
  190. data/ext/asyncengine_ext/libuv/src/unix/prepare.c +79 -0
  191. data/ext/asyncengine_ext/libuv/src/unix/process.c +369 -0
  192. data/ext/asyncengine_ext/libuv/src/unix/stream.c +1033 -0
  193. data/ext/asyncengine_ext/libuv/src/unix/sunos.c +466 -0
  194. data/ext/asyncengine_ext/libuv/src/unix/tcp.c +327 -0
  195. data/ext/asyncengine_ext/libuv/src/unix/thread.c +154 -0
  196. data/ext/asyncengine_ext/libuv/src/unix/timer.c +127 -0
  197. data/ext/asyncengine_ext/libuv/src/unix/tty.c +146 -0
  198. data/ext/asyncengine_ext/libuv/src/unix/udp.c +670 -0
  199. data/ext/asyncengine_ext/libuv/src/unix/uv-eio.c +124 -0
  200. data/ext/asyncengine_ext/libuv/src/unix/uv-eio.h +13 -0
  201. data/ext/asyncengine_ext/libuv/src/uv-common.c +354 -0
  202. data/ext/asyncengine_ext/libuv/src/uv-common.h +87 -0
  203. data/ext/asyncengine_ext/libuv/src/win/async.c +127 -0
  204. data/ext/asyncengine_ext/libuv/src/win/cares.c +290 -0
  205. data/ext/asyncengine_ext/libuv/src/win/core.c +270 -0
  206. data/ext/asyncengine_ext/libuv/src/win/dl.c +82 -0
  207. data/ext/asyncengine_ext/libuv/src/win/error.c +132 -0
  208. data/ext/asyncengine_ext/libuv/src/win/fs-event.c +514 -0
  209. data/ext/asyncengine_ext/libuv/src/win/fs.c +1576 -0
  210. data/ext/asyncengine_ext/libuv/src/win/getaddrinfo.c +372 -0
  211. data/ext/asyncengine_ext/libuv/src/win/handle.c +225 -0
  212. data/ext/asyncengine_ext/libuv/src/win/internal.h +352 -0
  213. data/ext/asyncengine_ext/libuv/src/win/loop-watcher.c +131 -0
  214. data/ext/asyncengine_ext/libuv/src/win/pipe.c +1661 -0
  215. data/ext/asyncengine_ext/libuv/src/win/process.c +1140 -0
  216. data/ext/asyncengine_ext/libuv/src/win/req.c +174 -0
  217. data/ext/asyncengine_ext/libuv/src/win/stream.c +201 -0
  218. data/ext/asyncengine_ext/libuv/src/win/tcp.c +1282 -0
  219. data/ext/asyncengine_ext/libuv/src/win/thread.c +332 -0
  220. data/ext/asyncengine_ext/libuv/src/win/threadpool.c +73 -0
  221. data/ext/asyncengine_ext/libuv/src/win/timer.c +276 -0
  222. data/ext/asyncengine_ext/libuv/src/win/tty.c +1795 -0
  223. data/ext/asyncengine_ext/libuv/src/win/udp.c +709 -0
  224. data/ext/asyncengine_ext/libuv/src/win/util.c +719 -0
  225. data/ext/asyncengine_ext/libuv/src/win/winapi.c +117 -0
  226. data/ext/asyncengine_ext/libuv/src/win/winapi.h +4419 -0
  227. data/ext/asyncengine_ext/libuv/src/win/winsock.c +470 -0
  228. data/ext/asyncengine_ext/libuv/src/win/winsock.h +138 -0
  229. data/ext/asyncengine_ext/libuv/test/benchmark-ares.c +118 -0
  230. data/ext/asyncengine_ext/libuv/test/benchmark-getaddrinfo.c +94 -0
  231. data/ext/asyncengine_ext/libuv/test/benchmark-list.h +105 -0
  232. data/ext/asyncengine_ext/libuv/test/benchmark-ping-pongs.c +213 -0
  233. data/ext/asyncengine_ext/libuv/test/benchmark-pound.c +324 -0
  234. data/ext/asyncengine_ext/libuv/test/benchmark-pump.c +462 -0
  235. data/ext/asyncengine_ext/libuv/test/benchmark-sizes.c +40 -0
  236. data/ext/asyncengine_ext/libuv/test/benchmark-spawn.c +156 -0
  237. data/ext/asyncengine_ext/libuv/test/benchmark-tcp-write-batch.c +140 -0
  238. data/ext/asyncengine_ext/libuv/test/benchmark-thread.c +64 -0
  239. data/ext/asyncengine_ext/libuv/test/benchmark-udp-packet-storm.c +247 -0
  240. data/ext/asyncengine_ext/libuv/test/blackhole-server.c +118 -0
  241. data/ext/asyncengine_ext/libuv/test/dns-server.c +321 -0
  242. data/ext/asyncengine_ext/libuv/test/echo-server.c +370 -0
  243. data/ext/asyncengine_ext/libuv/test/fixtures/empty_file +0 -0
  244. data/ext/asyncengine_ext/libuv/test/fixtures/load_error.node +1 -0
  245. data/ext/asyncengine_ext/libuv/test/run-benchmarks.c +64 -0
  246. data/ext/asyncengine_ext/libuv/test/run-tests.c +108 -0
  247. data/ext/asyncengine_ext/libuv/test/runner-unix.c +315 -0
  248. data/ext/asyncengine_ext/libuv/test/runner-unix.h +36 -0
  249. data/ext/asyncengine_ext/libuv/test/runner-win.c +343 -0
  250. data/ext/asyncengine_ext/libuv/test/runner-win.h +42 -0
  251. data/ext/asyncengine_ext/libuv/test/runner.c +317 -0
  252. data/ext/asyncengine_ext/libuv/test/runner.h +159 -0
  253. data/ext/asyncengine_ext/libuv/test/task.h +117 -0
  254. data/ext/asyncengine_ext/libuv/test/test-async.c +216 -0
  255. data/ext/asyncengine_ext/libuv/test/test-callback-stack.c +203 -0
  256. data/ext/asyncengine_ext/libuv/test/test-connection-fail.c +148 -0
  257. data/ext/asyncengine_ext/libuv/test/test-counters-init.c +216 -0
  258. data/ext/asyncengine_ext/libuv/test/test-cwd-and-chdir.c +64 -0
  259. data/ext/asyncengine_ext/libuv/test/test-delayed-accept.c +197 -0
  260. data/ext/asyncengine_ext/libuv/test/test-dlerror.c +49 -0
  261. data/ext/asyncengine_ext/libuv/test/test-eio-overflow.c +90 -0
  262. data/ext/asyncengine_ext/libuv/test/test-error.c +59 -0
  263. data/ext/asyncengine_ext/libuv/test/test-fail-always.c +29 -0
  264. data/ext/asyncengine_ext/libuv/test/test-fs-event.c +442 -0
  265. data/ext/asyncengine_ext/libuv/test/test-fs.c +1731 -0
  266. data/ext/asyncengine_ext/libuv/test/test-get-currentexe.c +63 -0
  267. data/ext/asyncengine_ext/libuv/test/test-get-loadavg.c +36 -0
  268. data/ext/asyncengine_ext/libuv/test/test-get-memory.c +38 -0
  269. data/ext/asyncengine_ext/libuv/test/test-getaddrinfo.c +122 -0
  270. data/ext/asyncengine_ext/libuv/test/test-gethostbyname.c +189 -0
  271. data/ext/asyncengine_ext/libuv/test/test-getsockname.c +342 -0
  272. data/ext/asyncengine_ext/libuv/test/test-hrtime.c +51 -0
  273. data/ext/asyncengine_ext/libuv/test/test-idle.c +81 -0
  274. data/ext/asyncengine_ext/libuv/test/test-ipc-send-recv.c +209 -0
  275. data/ext/asyncengine_ext/libuv/test/test-ipc.c +614 -0
  276. data/ext/asyncengine_ext/libuv/test/test-list.h +371 -0
  277. data/ext/asyncengine_ext/libuv/test/test-loop-handles.c +359 -0
  278. data/ext/asyncengine_ext/libuv/test/test-multiple-listen.c +102 -0
  279. data/ext/asyncengine_ext/libuv/test/test-mutexes.c +63 -0
  280. data/ext/asyncengine_ext/libuv/test/test-pass-always.c +28 -0
  281. data/ext/asyncengine_ext/libuv/test/test-ping-pong.c +253 -0
  282. data/ext/asyncengine_ext/libuv/test/test-pipe-bind-error.c +140 -0
  283. data/ext/asyncengine_ext/libuv/test/test-pipe-connect-error.c +96 -0
  284. data/ext/asyncengine_ext/libuv/test/test-platform-output.c +87 -0
  285. data/ext/asyncengine_ext/libuv/test/test-process-title.c +42 -0
  286. data/ext/asyncengine_ext/libuv/test/test-ref.c +322 -0
  287. data/ext/asyncengine_ext/libuv/test/test-run-once.c +44 -0
  288. data/ext/asyncengine_ext/libuv/test/test-shutdown-close.c +103 -0
  289. data/ext/asyncengine_ext/libuv/test/test-shutdown-eof.c +183 -0
  290. data/ext/asyncengine_ext/libuv/test/test-spawn.c +499 -0
  291. data/ext/asyncengine_ext/libuv/test/test-stdio-over-pipes.c +256 -0
  292. data/ext/asyncengine_ext/libuv/test/test-tcp-bind-error.c +191 -0
  293. data/ext/asyncengine_ext/libuv/test/test-tcp-bind6-error.c +154 -0
  294. data/ext/asyncengine_ext/libuv/test/test-tcp-close.c +129 -0
  295. data/ext/asyncengine_ext/libuv/test/test-tcp-connect-error.c +70 -0
  296. data/ext/asyncengine_ext/libuv/test/test-tcp-connect6-error.c +68 -0
  297. data/ext/asyncengine_ext/libuv/test/test-tcp-flags.c +51 -0
  298. data/ext/asyncengine_ext/libuv/test/test-tcp-write-error.c +168 -0
  299. data/ext/asyncengine_ext/libuv/test/test-tcp-write-to-half-open-connection.c +135 -0
  300. data/ext/asyncengine_ext/libuv/test/test-tcp-writealot.c +195 -0
  301. data/ext/asyncengine_ext/libuv/test/test-thread.c +183 -0
  302. data/ext/asyncengine_ext/libuv/test/test-threadpool.c +57 -0
  303. data/ext/asyncengine_ext/libuv/test/test-timer-again.c +141 -0
  304. data/ext/asyncengine_ext/libuv/test/test-timer.c +130 -0
  305. data/ext/asyncengine_ext/libuv/test/test-tty.c +110 -0
  306. data/ext/asyncengine_ext/libuv/test/test-udp-dgram-too-big.c +86 -0
  307. data/ext/asyncengine_ext/libuv/test/test-udp-ipv6.c +156 -0
  308. data/ext/asyncengine_ext/libuv/test/test-udp-multicast-join.c +139 -0
  309. data/ext/asyncengine_ext/libuv/test/test-udp-multicast-ttl.c +86 -0
  310. data/ext/asyncengine_ext/libuv/test/test-udp-options.c +86 -0
  311. data/ext/asyncengine_ext/libuv/test/test-udp-send-and-recv.c +208 -0
  312. data/ext/asyncengine_ext/libuv/test/test-util.c +97 -0
  313. data/ext/asyncengine_ext/libuv/uv.gyp +435 -0
  314. data/ext/asyncengine_ext/libuv/vcbuild.bat +105 -0
  315. data/lib/asyncengine/version.rb +3 -0
  316. data/lib/asyncengine.rb +41 -0
  317. metadata +384 -0
@@ -0,0 +1,221 @@
1
+ #ifndef HEADER_CARES_IPHLPAPI_H
2
+ #define HEADER_CARES_IPHLPAPI_H
3
+
4
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
5
+ * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
6
+ *
7
+ * Permission to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose and without
9
+ * fee is hereby granted, provided that the above copyright
10
+ * notice appear in all copies and that both that copyright
11
+ * notice and this permission notice appear in supporting
12
+ * documentation, and that the name of M.I.T. not be used in
13
+ * advertising or publicity pertaining to distribution of the
14
+ * software without specific, written prior permission.
15
+ * M.I.T. makes no representations about the suitability of
16
+ * this software for any purpose. It is provided "as is"
17
+ * without express or implied warranty.
18
+ */
19
+
20
+ #if defined(USE_WINSOCK)
21
+
22
+ #ifndef INET_ADDRSTRLEN
23
+ #define INET_ADDRSTRLEN 22
24
+ #endif
25
+
26
+ #ifndef INET6_ADDRSTRLEN
27
+ #define INET6_ADDRSTRLEN 65
28
+ #endif
29
+
30
+ /* ---------------------------------- */
31
+ #if !defined(_WS2DEF_) && \
32
+ !defined(__CSADDR_DEFINED__) && \
33
+ !defined(__CSADDR_T_DEFINED)
34
+ /* ---------------------------------- */
35
+
36
+ typedef struct _SOCKET_ADDRESS {
37
+ LPSOCKADDR lpSockaddr;
38
+ INT iSockaddrLength;
39
+ } SOCKET_ADDRESS, *PSOCKET_ADDRESS;
40
+
41
+ typedef struct _CSADDR_INFO {
42
+ SOCKET_ADDRESS LocalAddr;
43
+ SOCKET_ADDRESS RemoteAddr;
44
+ INT iSocketType;
45
+ INT iProtocol;
46
+ } CSADDR_INFO, *PCSADDR_INFO;
47
+
48
+ /* --------------------------------- */
49
+ #endif /* ! _WS2DEF_ && \ */
50
+ /* ! __CSADDR_DEFINED__ && \ */
51
+ /* ! __CSADDR_T_DEFINED */
52
+ /* --------------------------------- */
53
+
54
+ /* ------------------------------- */
55
+ #if !defined(IP_ADAPTER_DDNS_ENABLED)
56
+ /* ------------------------------- */
57
+
58
+ #define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x0001
59
+ #define IP_ADAPTER_ADDRESS_TRANSIENT 0x0002
60
+
61
+ #define IP_ADAPTER_DDNS_ENABLED 0x0001
62
+ #define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x0002
63
+ #define IP_ADAPTER_DHCP_ENABLED 0x0004
64
+ #define IP_ADAPTER_RECEIVE_ONLY 0x0008
65
+ #define IP_ADAPTER_NO_MULTICAST 0x0010
66
+ #define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x0020
67
+
68
+ #define GAA_FLAG_SKIP_UNICAST 0x0001
69
+ #define GAA_FLAG_SKIP_ANYCAST 0x0002
70
+ #define GAA_FLAG_SKIP_MULTICAST 0x0004
71
+ #define GAA_FLAG_SKIP_DNS_SERVER 0x0008
72
+ #define GAA_FLAG_INCLUDE_PREFIX 0x0010
73
+ #define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
74
+
75
+ typedef enum {
76
+ IpPrefixOriginOther = 0,
77
+ IpPrefixOriginManual,
78
+ IpPrefixOriginWellKnown,
79
+ IpPrefixOriginDhcp,
80
+ IpPrefixOriginRouterAdvertisement
81
+ } IP_PREFIX_ORIGIN;
82
+
83
+ typedef enum {
84
+ IpSuffixOriginOther = 0,
85
+ IpSuffixOriginManual,
86
+ IpSuffixOriginWellKnown,
87
+ IpSuffixOriginDhcp,
88
+ IpSuffixOriginLinkLayerAddress,
89
+ IpSuffixOriginRandom
90
+ } IP_SUFFIX_ORIGIN;
91
+
92
+ typedef enum {
93
+ IpDadStateInvalid = 0,
94
+ IpDadStateTentative,
95
+ IpDadStateDuplicate,
96
+ IpDadStateDeprecated,
97
+ IpDadStatePreferred
98
+ } IP_DAD_STATE;
99
+
100
+ typedef enum {
101
+ IfOperStatusUp = 1,
102
+ IfOperStatusDown,
103
+ IfOperStatusTesting,
104
+ IfOperStatusUnknown,
105
+ IfOperStatusDormant,
106
+ IfOperStatusNotPresent,
107
+ IfOperStatusLowerLayerDown
108
+ } IF_OPER_STATUS;
109
+
110
+ typedef enum {
111
+ ScopeLevelInterface = 0x0001,
112
+ ScopeLevelLink = 0x0002,
113
+ ScopeLevelSubnet = 0x0003,
114
+ ScopeLevelAdmin = 0x0004,
115
+ ScopeLevelSite = 0x0005,
116
+ ScopeLevelOrganization = 0x0008,
117
+ ScopeLevelGlobal = 0x000E
118
+ } SCOPE_LEVEL;
119
+
120
+ typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
121
+ union {
122
+ ULONGLONG Alignment;
123
+ struct {
124
+ ULONG Length;
125
+ DWORD Flags;
126
+ } s;
127
+ } u;
128
+ struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
129
+ SOCKET_ADDRESS Address;
130
+ IP_PREFIX_ORIGIN PrefixOrigin;
131
+ IP_SUFFIX_ORIGIN SuffixOrigin;
132
+ IP_DAD_STATE DadState;
133
+ ULONG ValidLifetime;
134
+ ULONG PreferredLifetime;
135
+ ULONG LeaseLifetime;
136
+ } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
137
+
138
+ typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
139
+ union {
140
+ ULONGLONG Alignment;
141
+ struct {
142
+ ULONG Length;
143
+ DWORD Flags;
144
+ } s;
145
+ } u;
146
+ struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
147
+ SOCKET_ADDRESS Address;
148
+ } IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
149
+
150
+ typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
151
+ union {
152
+ ULONGLONG Alignment;
153
+ struct {
154
+ ULONG Length;
155
+ DWORD Flags;
156
+ } s;
157
+ } u;
158
+ struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
159
+ SOCKET_ADDRESS Address;
160
+ } IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
161
+
162
+ typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
163
+ union {
164
+ ULONGLONG Alignment;
165
+ struct {
166
+ ULONG Length;
167
+ DWORD Reserved;
168
+ } s;
169
+ } u;
170
+ struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
171
+ SOCKET_ADDRESS Address;
172
+ } IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
173
+
174
+ typedef struct _IP_ADAPTER_PREFIX {
175
+ union {
176
+ ULONGLONG Alignment;
177
+ struct {
178
+ ULONG Length;
179
+ DWORD Flags;
180
+ } s;
181
+ } u;
182
+ struct _IP_ADAPTER_PREFIX *Next;
183
+ SOCKET_ADDRESS Address;
184
+ ULONG PrefixLength;
185
+ } IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
186
+
187
+ typedef struct _IP_ADAPTER_ADDRESSES {
188
+ union {
189
+ ULONGLONG Alignment;
190
+ struct {
191
+ ULONG Length;
192
+ DWORD IfIndex;
193
+ } s;
194
+ } u;
195
+ struct _IP_ADAPTER_ADDRESSES *Next;
196
+ PCHAR AdapterName;
197
+ PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
198
+ PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
199
+ PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
200
+ PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
201
+ PWCHAR DnsSuffix;
202
+ PWCHAR Description;
203
+ PWCHAR FriendlyName;
204
+ BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
205
+ DWORD PhysicalAddressLength;
206
+ DWORD Flags;
207
+ DWORD Mtu;
208
+ DWORD IfType;
209
+ IF_OPER_STATUS OperStatus;
210
+ DWORD Ipv6IfIndex;
211
+ DWORD ZoneIndices[16];
212
+ PIP_ADAPTER_PREFIX FirstPrefix;
213
+ } IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
214
+
215
+ /* -------------------------------- */
216
+ #endif /* ! IP_ADAPTER_DDNS_ENABLED */
217
+ /* -------------------------------- */
218
+
219
+ #endif /* USE_WINSOCK */
220
+
221
+ #endif /* HEADER_CARES_IPHLPAPI_H */
@@ -0,0 +1,78 @@
1
+
2
+ /* Copyright (C) 2005 by Dominick Meglio
3
+ *
4
+ * Permission to use, copy, modify, and distribute this
5
+ * software and its documentation for any purpose and without
6
+ * fee is hereby granted, provided that the above copyright
7
+ * notice appear in all copies and that both that copyright
8
+ * notice and this permission notice appear in supporting
9
+ * documentation, and that the name of M.I.T. not be used in
10
+ * advertising or publicity pertaining to distribution of the
11
+ * software without specific, written prior permission.
12
+ * M.I.T. makes no representations about the suitability of
13
+ * this software for any purpose. It is provided "as is"
14
+ * without express or implied warranty.
15
+ */
16
+
17
+ #ifndef ARES_IPV6_H
18
+ #define ARES_IPV6_H
19
+
20
+ #ifndef HAVE_PF_INET6
21
+ #define PF_INET6 AF_INET6
22
+ #endif
23
+
24
+ #ifndef HAVE_STRUCT_SOCKADDR_IN6
25
+ struct sockaddr_in6
26
+ {
27
+ unsigned short sin6_family;
28
+ unsigned short sin6_port;
29
+ unsigned long sin6_flowinfo;
30
+ struct ares_in6_addr sin6_addr;
31
+ unsigned int sin6_scope_id;
32
+ };
33
+ #endif
34
+
35
+ #ifndef HAVE_STRUCT_ADDRINFO
36
+ struct addrinfo
37
+ {
38
+ int ai_flags;
39
+ int ai_family;
40
+ int ai_socktype;
41
+ int ai_protocol;
42
+ ares_socklen_t ai_addrlen; /* Follow rfc3493 struct addrinfo */
43
+ char *ai_canonname;
44
+ struct sockaddr *ai_addr;
45
+ struct addrinfo *ai_next;
46
+ };
47
+ #endif
48
+
49
+ #ifndef NS_IN6ADDRSZ
50
+ #if SIZEOF_STRUCT_IN6_ADDR == 0
51
+ /* We cannot have it set to zero, so we pick a fixed value here */
52
+ #define NS_IN6ADDRSZ 16
53
+ #else
54
+ #define NS_IN6ADDRSZ SIZEOF_STRUCT_IN6_ADDR
55
+ #endif
56
+ #endif
57
+
58
+ #ifndef NS_INADDRSZ
59
+ #define NS_INADDRSZ SIZEOF_STRUCT_IN_ADDR
60
+ #endif
61
+
62
+ #ifndef NS_INT16SZ
63
+ #define NS_INT16SZ 2
64
+ #endif
65
+
66
+ #ifndef IF_NAMESIZE
67
+ #ifdef IFNAMSIZ
68
+ #define IF_NAMESIZE IFNAMSIZ
69
+ #else
70
+ #define IF_NAMESIZE 256
71
+ #endif
72
+ #endif
73
+
74
+ /* Defined in ares_net_pton.c for no particular reason. */
75
+ extern const struct ares_in6_addr ares_in6addr_any; /* :: */
76
+
77
+
78
+ #endif /* ARES_IPV6_H */
@@ -0,0 +1,142 @@
1
+
2
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
3
+ * Copyright (C) 2004-2009 by Daniel Stenberg
4
+ *
5
+ * Permission to use, copy, modify, and distribute this
6
+ * software and its documentation for any purpose and without
7
+ * fee is hereby granted, provided that the above copyright
8
+ * notice appear in all copies and that both that copyright
9
+ * notice and this permission notice appear in supporting
10
+ * documentation, and that the name of M.I.T. not be used in
11
+ * advertising or publicity pertaining to distribution of the
12
+ * software without specific, written prior permission.
13
+ * M.I.T. makes no representations about the suitability of
14
+ * this software for any purpose. It is provided "as is"
15
+ * without express or implied warranty.
16
+ */
17
+
18
+ #include "ares_setup.h"
19
+
20
+ #include "ares.h"
21
+ #include "ares_library_init.h"
22
+ #include "ares_private.h"
23
+
24
+ /* library-private global and unique instance vars */
25
+
26
+ #ifdef USE_WINSOCK
27
+ fpGetNetworkParams_t ares_fpGetNetworkParams = ZERO_NULL;
28
+ fpSystemFunction036_t ares_fpSystemFunction036 = ZERO_NULL;
29
+ fpGetAdaptersAddresses_t ares_fpGetAdaptersAddresses = ZERO_NULL;
30
+ #endif
31
+
32
+ /* library-private global vars with source visibility restricted to this file */
33
+
34
+ static unsigned int ares_initialized;
35
+ static int ares_init_flags;
36
+
37
+ #ifdef USE_WINSOCK
38
+ static HMODULE hnd_iphlpapi;
39
+ static HMODULE hnd_advapi32;
40
+ #endif
41
+
42
+
43
+ static int ares_win32_init(void)
44
+ {
45
+ #ifdef USE_WINSOCK
46
+
47
+ hnd_iphlpapi = 0;
48
+ hnd_iphlpapi = LoadLibrary("iphlpapi.dll");
49
+ if (!hnd_iphlpapi)
50
+ return ARES_ELOADIPHLPAPI;
51
+
52
+ ares_fpGetNetworkParams = (fpGetNetworkParams_t)
53
+ GetProcAddress(hnd_iphlpapi, "GetNetworkParams");
54
+ if (!ares_fpGetNetworkParams)
55
+ {
56
+ FreeLibrary(hnd_iphlpapi);
57
+ return ARES_EADDRGETNETWORKPARAMS;
58
+ }
59
+
60
+ ares_fpGetAdaptersAddresses = (fpGetAdaptersAddresses_t)
61
+ GetProcAddress(hnd_iphlpapi, "GetAdaptersAddresses");
62
+ if (!ares_fpGetAdaptersAddresses)
63
+ {
64
+ /* This can happen on clients before WinXP, I don't
65
+ think it should be an error, unless we don't want to
66
+ support Windows 2000 anymore */
67
+ }
68
+
69
+ /*
70
+ * When advapi32.dll is unavailable or advapi32.dll has no SystemFunction036,
71
+ * also known as RtlGenRandom, which is the case for Windows versions prior
72
+ * to WinXP then c-ares uses portable rand() function. Then don't error here.
73
+ */
74
+
75
+ hnd_advapi32 = 0;
76
+ hnd_advapi32 = LoadLibrary("advapi32.dll");
77
+ if (hnd_advapi32)
78
+ {
79
+ ares_fpSystemFunction036 = (fpSystemFunction036_t)
80
+ GetProcAddress(hnd_advapi32, "SystemFunction036");
81
+ }
82
+
83
+ #endif
84
+ return ARES_SUCCESS;
85
+ }
86
+
87
+
88
+ static void ares_win32_cleanup(void)
89
+ {
90
+ #ifdef USE_WINSOCK
91
+ if (hnd_advapi32)
92
+ FreeLibrary(hnd_advapi32);
93
+ if (hnd_iphlpapi)
94
+ FreeLibrary(hnd_iphlpapi);
95
+ #endif
96
+ }
97
+
98
+
99
+ int ares_library_init(int flags)
100
+ {
101
+ int res;
102
+
103
+ if (ares_initialized)
104
+ return ARES_SUCCESS;
105
+ ares_initialized++;
106
+
107
+ if (flags & ARES_LIB_INIT_WIN32)
108
+ {
109
+ res = ares_win32_init();
110
+ if (res != ARES_SUCCESS)
111
+ return res;
112
+ }
113
+
114
+ ares_init_flags = flags;
115
+
116
+ return ARES_SUCCESS;
117
+ }
118
+
119
+
120
+ void ares_library_cleanup(void)
121
+ {
122
+ if (!ares_initialized)
123
+ return;
124
+ ares_initialized--;
125
+
126
+ if (ares_init_flags & ARES_LIB_INIT_WIN32)
127
+ ares_win32_cleanup();
128
+
129
+ ares_init_flags = ARES_LIB_INIT_NONE;
130
+ }
131
+
132
+
133
+ int ares_library_initialized(void)
134
+ {
135
+ #ifdef USE_WINSOCK
136
+ if (!ares_initialized)
137
+ return ARES_ENOTINITIALIZED;
138
+ #endif
139
+ return ARES_SUCCESS;
140
+ }
141
+
142
+
@@ -0,0 +1,42 @@
1
+ #ifndef HEADER_CARES_LIBRARY_INIT_H
2
+ #define HEADER_CARES_LIBRARY_INIT_H
3
+
4
+
5
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
6
+ * Copyright (C) 2004-2011 by Daniel Stenberg
7
+ *
8
+ * Permission to use, copy, modify, and distribute this
9
+ * software and its documentation for any purpose and without
10
+ * fee is hereby granted, provided that the above copyright
11
+ * notice appear in all copies and that both that copyright
12
+ * notice and this permission notice appear in supporting
13
+ * documentation, and that the name of M.I.T. not be used in
14
+ * advertising or publicity pertaining to distribution of the
15
+ * software without specific, written prior permission.
16
+ * M.I.T. makes no representations about the suitability of
17
+ * this software for any purpose. It is provided "as is"
18
+ * without express or implied warranty.
19
+ */
20
+
21
+ #include "ares_setup.h"
22
+
23
+ #ifdef USE_WINSOCK
24
+
25
+ #include <iphlpapi.h>
26
+ #include "ares_iphlpapi.h"
27
+
28
+ typedef DWORD (WINAPI *fpGetNetworkParams_t) (FIXED_INFO*, DWORD*);
29
+ typedef BOOLEAN (APIENTRY *fpSystemFunction036_t) (void*, ULONG);
30
+ typedef ULONG (WINAPI *fpGetAdaptersAddresses_t) ( ULONG, ULONG, void*, IP_ADAPTER_ADDRESSES*, ULONG* );
31
+
32
+ /* Forward-declaration of variables defined in ares_library_init.c */
33
+ /* that are global and unique instances for whole c-ares library. */
34
+
35
+ extern fpGetNetworkParams_t ares_fpGetNetworkParams;
36
+ extern fpSystemFunction036_t ares_fpSystemFunction036;
37
+ extern fpGetAdaptersAddresses_t ares_fpGetAdaptersAddresses;
38
+
39
+ #endif /* USE_WINSOCK */
40
+
41
+ #endif /* HEADER_CARES_LIBRARY_INIT_H */
42
+
@@ -0,0 +1,86 @@
1
+
2
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
3
+ *
4
+ * Permission to use, copy, modify, and distribute this
5
+ * software and its documentation for any purpose and without
6
+ * fee is hereby granted, provided that the above copyright
7
+ * notice appear in all copies and that both that copyright
8
+ * notice and this permission notice appear in supporting
9
+ * documentation, and that the name of M.I.T. not be used in
10
+ * advertising or publicity pertaining to distribution of the
11
+ * software without specific, written prior permission.
12
+ * M.I.T. makes no representations about the suitability of
13
+ * this software for any purpose. It is provided "as is"
14
+ * without express or implied warranty.
15
+ */
16
+
17
+ #include "ares_setup.h"
18
+
19
+ #include "ares.h"
20
+ #include "ares_private.h"
21
+
22
+ /* Routines for managing doubly-linked circular linked lists with a
23
+ * dummy head.
24
+ */
25
+
26
+ /* Initialize a new head node */
27
+ void ares__init_list_head(struct list_node* head) {
28
+ head->prev = head;
29
+ head->next = head;
30
+ head->data = NULL;
31
+ }
32
+
33
+ /* Initialize a list node */
34
+ void ares__init_list_node(struct list_node* node, void* d) {
35
+ node->prev = NULL;
36
+ node->next = NULL;
37
+ node->data = d;
38
+ }
39
+
40
+ /* Returns true iff the given list is empty */
41
+ int ares__is_list_empty(struct list_node* head) {
42
+ return ((head->next == head) && (head->prev == head));
43
+ }
44
+
45
+ /* Inserts new_node before old_node */
46
+ void ares__insert_in_list(struct list_node* new_node,
47
+ struct list_node* old_node) {
48
+ new_node->next = old_node;
49
+ new_node->prev = old_node->prev;
50
+ old_node->prev->next = new_node;
51
+ old_node->prev = new_node;
52
+ }
53
+
54
+ /* Removes the node from the list it's in, if any */
55
+ void ares__remove_from_list(struct list_node* node) {
56
+ if (node->next != NULL) {
57
+ node->prev->next = node->next;
58
+ node->next->prev = node->prev;
59
+ node->prev = NULL;
60
+ node->next = NULL;
61
+ }
62
+ }
63
+
64
+ /* Swap the contents of two lists */
65
+ void ares__swap_lists(struct list_node* head_a,
66
+ struct list_node* head_b) {
67
+ int is_a_empty = ares__is_list_empty(head_a);
68
+ int is_b_empty = ares__is_list_empty(head_b);
69
+ struct list_node old_a = *head_a;
70
+ struct list_node old_b = *head_b;
71
+
72
+ if (is_a_empty) {
73
+ ares__init_list_head(head_b);
74
+ } else {
75
+ *head_b = old_a;
76
+ old_a.next->prev = head_b;
77
+ old_a.prev->next = head_b;
78
+ }
79
+ if (is_b_empty) {
80
+ ares__init_list_head(head_a);
81
+ } else {
82
+ *head_a = old_b;
83
+ old_b.next->prev = head_a;
84
+ old_b.prev->next = head_a;
85
+ }
86
+ }
@@ -0,0 +1,42 @@
1
+ #ifndef __ARES_LLIST_H
2
+ #define __ARES_LLIST_H
3
+
4
+
5
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
6
+ *
7
+ * Permission to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose and without
9
+ * fee is hereby granted, provided that the above copyright
10
+ * notice appear in all copies and that both that copyright
11
+ * notice and this permission notice appear in supporting
12
+ * documentation, and that the name of M.I.T. not be used in
13
+ * advertising or publicity pertaining to distribution of the
14
+ * software without specific, written prior permission.
15
+ * M.I.T. makes no representations about the suitability of
16
+ * this software for any purpose. It is provided "as is"
17
+ * without express or implied warranty.
18
+ */
19
+
20
+
21
+ /* Node definition for circular, doubly-linked list */
22
+ struct list_node {
23
+ struct list_node *prev;
24
+ struct list_node *next;
25
+ void* data;
26
+ };
27
+
28
+ void ares__init_list_head(struct list_node* head);
29
+
30
+ void ares__init_list_node(struct list_node* node, void* d);
31
+
32
+ int ares__is_list_empty(struct list_node* head);
33
+
34
+ void ares__insert_in_list(struct list_node* new_node,
35
+ struct list_node* old_node);
36
+
37
+ void ares__remove_from_list(struct list_node* node);
38
+
39
+ void ares__swap_lists(struct list_node* head_a,
40
+ struct list_node* head_b);
41
+
42
+ #endif /* __ARES_LLIST_H */