asyncengine 0.0.1.testing

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,134 @@
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
+ #ifdef HAVE_SYS_SOCKET_H
20
+ # include <sys/socket.h>
21
+ #endif
22
+ #ifdef HAVE_NETINET_IN_H
23
+ # include <netinet/in.h>
24
+ #endif
25
+ #ifdef HAVE_ARPA_NAMESER_H
26
+ # include <arpa/nameser.h>
27
+ #else
28
+ # include "nameser.h"
29
+ #endif
30
+ #ifdef HAVE_ARPA_NAMESER_COMPAT_H
31
+ # include <arpa/nameser_compat.h>
32
+ #endif
33
+
34
+ #include <stdlib.h>
35
+ #include <string.h>
36
+ #include <time.h>
37
+ #include "ares.h"
38
+ #include "ares_dns.h"
39
+ #include "ares_private.h"
40
+
41
+ void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
42
+ ares_callback callback, void *arg)
43
+ {
44
+ struct query *query;
45
+ int i;
46
+ struct timeval now;
47
+
48
+ /* Verify that the query is at least long enough to hold the header. */
49
+ if (qlen < HFIXEDSZ || qlen >= (1 << 16))
50
+ {
51
+ callback(arg, ARES_EBADQUERY, 0, NULL, 0);
52
+ return;
53
+ }
54
+
55
+ /* Allocate space for query and allocated fields. */
56
+ query = malloc(sizeof(struct query));
57
+ if (!query)
58
+ {
59
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
60
+ return;
61
+ }
62
+ query->tcpbuf = malloc(qlen + 2);
63
+ if (!query->tcpbuf)
64
+ {
65
+ free(query);
66
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
67
+ return;
68
+ }
69
+ query->server_info = malloc(channel->nservers *
70
+ sizeof(query->server_info[0]));
71
+ if (!query->server_info)
72
+ {
73
+ free(query->tcpbuf);
74
+ free(query);
75
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
76
+ return;
77
+ }
78
+
79
+ /* Compute the query ID. Start with no timeout. */
80
+ query->qid = (unsigned short)DNS_HEADER_QID(qbuf);
81
+ query->timeout.tv_sec = 0;
82
+ query->timeout.tv_usec = 0;
83
+
84
+ /* Form the TCP query buffer by prepending qlen (as two
85
+ * network-order bytes) to qbuf.
86
+ */
87
+ query->tcpbuf[0] = (unsigned char)((qlen >> 8) & 0xff);
88
+ query->tcpbuf[1] = (unsigned char)(qlen & 0xff);
89
+ memcpy(query->tcpbuf + 2, qbuf, qlen);
90
+ query->tcplen = qlen + 2;
91
+
92
+ /* Fill in query arguments. */
93
+ query->qbuf = query->tcpbuf + 2;
94
+ query->qlen = qlen;
95
+ query->callback = callback;
96
+ query->arg = arg;
97
+
98
+ /* Initialize query status. */
99
+ query->try_count = 0;
100
+
101
+ /* Choose the server to send the query to. If rotation is enabled, keep track
102
+ * of the next server we want to use. */
103
+ query->server = channel->last_server;
104
+ if (channel->rotate == 1)
105
+ channel->last_server = (channel->last_server + 1) % channel->nservers;
106
+
107
+ for (i = 0; i < channel->nservers; i++)
108
+ {
109
+ query->server_info[i].skip_server = 0;
110
+ query->server_info[i].tcp_connection_generation = 0;
111
+ }
112
+ query->using_tcp = (channel->flags & ARES_FLAG_USEVC) || qlen > PACKETSZ;
113
+ query->error_status = ARES_ECONNREFUSED;
114
+ query->timeouts = 0;
115
+
116
+ /* Initialize our list nodes. */
117
+ ares__init_list_node(&(query->queries_by_qid), query);
118
+ ares__init_list_node(&(query->queries_by_timeout), query);
119
+ ares__init_list_node(&(query->queries_to_server), query);
120
+ ares__init_list_node(&(query->all_queries), query);
121
+
122
+ /* Chain the query into the list of all queries. */
123
+ ares__insert_in_list(&(query->all_queries), &(channel->all_queries));
124
+ /* Keep track of queries bucketed by qid, so we can process DNS
125
+ * responses quickly.
126
+ */
127
+ ares__insert_in_list(
128
+ &(query->queries_by_qid),
129
+ &(channel->queries_by_qid[query->qid % ARES_QID_TABLE_SIZE]));
130
+
131
+ /* Perform the first query action. */
132
+ now = ares__tvnow();
133
+ ares__send_query(channel, query, &now);
134
+ }
@@ -0,0 +1,199 @@
1
+ #ifndef HEADER_CARES_SETUP_H
2
+ #define HEADER_CARES_SETUP_H
3
+
4
+
5
+ /* Copyright (C) 2004 - 2009 by Daniel Stenberg et al
6
+ *
7
+ * Permission to use, copy, modify, and distribute this software and its
8
+ * documentation for any purpose and without fee is hereby granted, provided
9
+ * that the above copyright notice appear in all copies and that both that
10
+ * copyright notice and this permission notice appear in supporting
11
+ * documentation, and that the name of M.I.T. not be used in advertising or
12
+ * publicity pertaining to distribution of the software without specific,
13
+ * written prior permission. M.I.T. makes no representations about the
14
+ * suitability of this software for any purpose. It is provided "as is"
15
+ * without express or implied warranty.
16
+ */
17
+
18
+ /*
19
+ * Define WIN32 when build target is Win32 API
20
+ */
21
+
22
+ #if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
23
+ #define WIN32
24
+ #endif
25
+
26
+ /*
27
+ * Include configuration script results or hand-crafted
28
+ * configuration file for platforms which lack config tool.
29
+ */
30
+
31
+ #ifdef HAVE_CONFIG_H
32
+ #include "ares_config.h"
33
+ #else
34
+
35
+ #ifdef WIN32
36
+ #include "config-win32.h"
37
+ #endif
38
+
39
+ #endif /* HAVE_CONFIG_H */
40
+
41
+ /* ================================================================ */
42
+ /* Definition of preprocessor macros/symbols which modify compiler */
43
+ /* behaviour or generated code characteristics must be done here, */
44
+ /* as appropriate, before any system header file is included. It is */
45
+ /* also possible to have them defined in the config file included */
46
+ /* before this point. As a result of all this we frown inclusion of */
47
+ /* system header files in our config files, avoid this at any cost. */
48
+ /* ================================================================ */
49
+
50
+ /*
51
+ * AIX 4.3 and newer needs _THREAD_SAFE defined to build
52
+ * proper reentrant code. Others may also need it.
53
+ */
54
+
55
+ #ifdef NEED_THREAD_SAFE
56
+ # ifndef _THREAD_SAFE
57
+ # define _THREAD_SAFE
58
+ # endif
59
+ #endif
60
+
61
+ /*
62
+ * Tru64 needs _REENTRANT set for a few function prototypes and
63
+ * things to appear in the system header files. Unixware needs it
64
+ * to build proper reentrant code. Others may also need it.
65
+ */
66
+
67
+ #ifdef NEED_REENTRANT
68
+ # ifndef _REENTRANT
69
+ # define _REENTRANT
70
+ # endif
71
+ #endif
72
+
73
+ /* ================================================================ */
74
+ /* If you need to include a system header file for your platform, */
75
+ /* please, do it beyond the point further indicated in this file. */
76
+ /* ================================================================ */
77
+
78
+ #if 0 /* libuv hack */
79
+ /*
80
+ * c-ares external interface definitions are also used internally,
81
+ * and might also include required system header files to define them.
82
+ */
83
+
84
+ #include <ares_build.h>
85
+
86
+ /*
87
+ * Compile time sanity checks must also be done when building the library.
88
+ */
89
+
90
+ #include <ares_rules.h>
91
+ #endif /* libuv hack */
92
+
93
+ /* ================================================================= */
94
+ /* No system header file shall be included in this file before this */
95
+ /* point. The only allowed ones are those included from ares_build.h */
96
+ /* ================================================================= */
97
+
98
+ /*
99
+ * Include header files for windows builds before redefining anything.
100
+ * Use this preproessor block only to include or exclude windows.h,
101
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
102
+ * to any other further and independent block. Under Cygwin things work
103
+ * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
104
+ * never be included when __CYGWIN__ is defined. configure script takes
105
+ * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
106
+ * neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
107
+ */
108
+
109
+ #ifdef HAVE_WINDOWS_H
110
+ # ifndef WIN32_LEAN_AND_MEAN
111
+ # define WIN32_LEAN_AND_MEAN
112
+ # endif
113
+ # include <windows.h>
114
+ # ifdef HAVE_WINSOCK2_H
115
+ # include <winsock2.h>
116
+ # ifdef HAVE_WS2TCPIP_H
117
+ # include <ws2tcpip.h>
118
+ # endif
119
+ # else
120
+ # ifdef HAVE_WINSOCK_H
121
+ # include <winsock.h>
122
+ # endif
123
+ # endif
124
+ #endif
125
+
126
+ /*
127
+ * Define USE_WINSOCK to 2 if we have and use WINSOCK2 API, else
128
+ * define USE_WINSOCK to 1 if we have and use WINSOCK API, else
129
+ * undefine USE_WINSOCK.
130
+ */
131
+
132
+ #undef USE_WINSOCK
133
+
134
+ #ifdef HAVE_WINSOCK2_H
135
+ # define USE_WINSOCK 2
136
+ #else
137
+ # ifdef HAVE_WINSOCK_H
138
+ # define USE_WINSOCK 1
139
+ # endif
140
+ #endif
141
+
142
+ /*
143
+ * Work-arounds for systems without configure support
144
+ */
145
+
146
+ #ifndef HAVE_CONFIG_H
147
+
148
+ #if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER) && !defined(__WATCOMC__)
149
+ #define HAVE_SYS_TIME_H
150
+ #endif
151
+
152
+ #if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
153
+ #define HAVE_UNISTD_H 1
154
+ #endif
155
+
156
+ #if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
157
+ #define HAVE_SYS_UIO_H
158
+ #endif
159
+
160
+ #endif /* HAVE_CONFIG_H */
161
+
162
+ #ifdef __POCC__
163
+ # include <sys/types.h>
164
+ # include <unistd.h>
165
+ # define ESRCH 3
166
+ #endif
167
+
168
+ /*
169
+ * Recent autoconf versions define these symbols in ares_config.h. We don't
170
+ * want them (since they collide with the libcurl ones when we build
171
+ * --enable-debug) so we undef them again here.
172
+ */
173
+
174
+ #undef PACKAGE_STRING
175
+ #undef PACKAGE_TARNAME
176
+ #undef PACKAGE_VERSION
177
+ #undef PACKAGE_BUGREPORT
178
+ #undef PACKAGE_NAME
179
+ #undef VERSION
180
+ #undef PACKAGE
181
+
182
+ /* IPv6 compatibility */
183
+ #if !defined(HAVE_AF_INET6)
184
+ #if defined(HAVE_PF_INET6)
185
+ #define AF_INET6 PF_INET6
186
+ #else
187
+ #define AF_INET6 AF_MAX+1
188
+ #endif
189
+ #endif
190
+
191
+ /*
192
+ * Include macros and defines that should only be processed once.
193
+ */
194
+
195
+ #ifndef __SETUP_ONCE_H
196
+ #include "setup_once.h"
197
+ #endif
198
+
199
+ #endif /* HEADER_CARES_SETUP_H */
@@ -0,0 +1,66 @@
1
+
2
+
3
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
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
+ #include "ares_strcasecmp.h"
20
+
21
+ #ifndef HAVE_STRCASECMP
22
+ int ares_strcasecmp(const char *a, const char *b)
23
+ {
24
+ #if defined(HAVE_STRCMPI)
25
+ return strcmpi(a, b);
26
+ #elif defined(HAVE_STRICMP)
27
+ return stricmp(a, b);
28
+ #else
29
+ size_t i;
30
+
31
+ for (i = 0; i < (size_t)-1; i++) {
32
+ int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
33
+ int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
34
+ if (c1 != c2)
35
+ return c1-c2;
36
+ if (!c1)
37
+ break;
38
+ }
39
+ return 0;
40
+ #endif
41
+ }
42
+ #endif
43
+
44
+ #ifndef HAVE_STRNCASECMP
45
+ int ares_strncasecmp(const char *a, const char *b, size_t n)
46
+ {
47
+ #if defined(HAVE_STRNCMPI)
48
+ return strncmpi(a, b, n);
49
+ #elif defined(HAVE_STRNICMP)
50
+ return strnicmp(a, b, n);
51
+ #else
52
+ size_t i;
53
+
54
+ for (i = 0; i < n; i++) {
55
+ int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
56
+ int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
57
+ if (c1 != c2)
58
+ return c1-c2;
59
+ if (!c1)
60
+ break;
61
+ }
62
+ return 0;
63
+ #endif
64
+ }
65
+ #endif
66
+
@@ -0,0 +1,30 @@
1
+ #ifndef HEADER_CARES_STRCASECMP_H
2
+ #define HEADER_CARES_STRCASECMP_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
+ #include "ares_setup.h"
21
+
22
+ #ifndef HAVE_STRCASECMP
23
+ extern int ares_strcasecmp(const char *a, const char *b);
24
+ #endif
25
+
26
+ #ifndef HAVE_STRNCASECMP
27
+ extern int ares_strncasecmp(const char *a, const char *b, size_t n);
28
+ #endif
29
+
30
+ #endif /* HEADER_CARES_STRCASECMP_H */
@@ -0,0 +1,42 @@
1
+
2
+
3
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
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
+ #include "ares_strdup.h"
20
+
21
+ #ifndef HAVE_STRDUP
22
+ char *ares_strdup(const char *s1)
23
+ {
24
+ size_t sz;
25
+ char * s2;
26
+
27
+ if(s1) {
28
+ sz = strlen(s1);
29
+ if(sz < (size_t)-1) {
30
+ sz++;
31
+ if(sz < ((size_t)-1) / sizeof(char)) {
32
+ s2 = malloc(sz * sizeof(char));
33
+ if(s2) {
34
+ memcpy(s2, s1, sz * sizeof(char));
35
+ return s2;
36
+ }
37
+ }
38
+ }
39
+ }
40
+ return (char *)NULL;
41
+ }
42
+ #endif
@@ -0,0 +1,26 @@
1
+ #ifndef HEADER_CARES_STRDUP_H
2
+ #define HEADER_CARES_STRDUP_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
+ #include "ares_setup.h"
21
+
22
+ #ifndef HAVE_STRDUP
23
+ extern char *ares_strdup(const char *s1);
24
+ #endif
25
+
26
+ #endif /* HEADER_CARES_STRDUP_H */
@@ -0,0 +1,56 @@
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
+ #include <assert.h>
19
+ #include "ares.h"
20
+
21
+ const char *ares_strerror(int code)
22
+ {
23
+ /* Return a string literal from a table. */
24
+ const char *errtext[] = {
25
+ "Successful completion",
26
+ "DNS server returned answer with no data",
27
+ "DNS server claims query was misformatted",
28
+ "DNS server returned general failure",
29
+ "Domain name not found",
30
+ "DNS server does not implement requested operation",
31
+ "DNS server refused query",
32
+ "Misformatted DNS query",
33
+ "Misformatted domain name",
34
+ "Unsupported address family",
35
+ "Misformatted DNS reply",
36
+ "Could not contact DNS servers",
37
+ "Timeout while contacting DNS servers",
38
+ "End of file",
39
+ "Error reading file",
40
+ "Out of memory",
41
+ "Channel is being destroyed",
42
+ "Misformatted string",
43
+ "Illegal flags specified",
44
+ "Given hostname is not numeric",
45
+ "Illegal hints flags specified",
46
+ "c-ares library initialization not yet performed",
47
+ "Error loading iphlpapi.dll",
48
+ "Could not find GetNetworkParams function",
49
+ "DNS query cancelled"
50
+ };
51
+
52
+ if(code >= 0 && code < (int)(sizeof(errtext) / sizeof(*errtext)))
53
+ return errtext[code];
54
+ else
55
+ return "unknown";
56
+ }
@@ -0,0 +1,80 @@
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
+ #ifdef HAVE_SYS_TIME_H
20
+ #include <sys/time.h>
21
+ #endif
22
+
23
+ #include <time.h>
24
+
25
+ #include "ares.h"
26
+ #include "ares_private.h"
27
+
28
+ /* WARNING: Beware that this is linear in the number of outstanding
29
+ * requests! You are probably far better off just calling ares_process()
30
+ * once per second, rather than calling ares_timeout() to figure out
31
+ * when to next call ares_process().
32
+ */
33
+ struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
34
+ struct timeval *tvbuf)
35
+ {
36
+ struct query *query;
37
+ struct list_node* list_head;
38
+ struct list_node* list_node;
39
+ struct timeval now;
40
+ struct timeval nextstop;
41
+ long offset, min_offset;
42
+
43
+ /* No queries, no timeout (and no fetch of the current time). */
44
+ if (ares__is_list_empty(&(channel->all_queries)))
45
+ return maxtv;
46
+
47
+ /* Find the minimum timeout for the current set of queries. */
48
+ now = ares__tvnow();
49
+ min_offset = -1;
50
+
51
+ list_head = &(channel->all_queries);
52
+ for (list_node = list_head->next; list_node != list_head;
53
+ list_node = list_node->next)
54
+ {
55
+ query = list_node->data;
56
+ if (query->timeout.tv_sec == 0)
57
+ continue;
58
+ offset = ares__timeoffset(&now, &query->timeout);
59
+ if (offset < 0)
60
+ offset = 0;
61
+ if (min_offset == -1 || offset < min_offset)
62
+ min_offset = offset;
63
+ }
64
+
65
+ if(min_offset != -1) {
66
+ nextstop.tv_sec = min_offset/1000;
67
+ nextstop.tv_usec = (min_offset%1000)*1000;
68
+ }
69
+
70
+ /* If we found a minimum timeout and it's sooner than the one specified in
71
+ * maxtv (if any), return it. Otherwise go with maxtv.
72
+ */
73
+ if (min_offset != -1 && (!maxtv || ares__timedout(maxtv, &nextstop)))
74
+ {
75
+ *tvbuf = nextstop;
76
+ return tvbuf;
77
+ }
78
+ else
79
+ return maxtv;
80
+ }
@@ -0,0 +1,11 @@
1
+
2
+ #include "ares_setup.h"
3
+ #include "ares.h"
4
+
5
+ const char *ares_version(int *version)
6
+ {
7
+ if(version)
8
+ *version = ARES_VERSION;
9
+
10
+ return ARES_VERSION_STR;
11
+ }