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,1218 @@
1
+ Changelog for the c-ares project
2
+
3
+ Version 1.7.5 (August 16, 2011)
4
+
5
+ Fixed:
6
+
7
+ o detection of semicolon comments in resolv.conf
8
+ o avoid using system's inet_net_pton affected by the WLB-2008080064 advisory
9
+ o replacement ares_inet_net_pton affected by the WLB-2008080064 advisory
10
+ o replacement ares_inet_ntop affected by potential out of bounds write
11
+ o added install target to Makefile.msvc
12
+ o only fall back to AF_INET searches when looking for AF_UNSPEC addresses
13
+ o fixed ares_parse_*_reply memory leaks
14
+ o Use correct sizeof in ares_getnameinfo()
15
+ o IPv6-on-windows: find DNS servers correctly
16
+ o man pages: docs for the c-ares utility programs
17
+ o getservbyport replacement for Win CE
18
+ o config_sortlist: (win32) missing else
19
+ o advance_tcp_send_queue: avoid NULL ptr dereference
20
+ o configure: fix a bashism
21
+ o ares_expand_name: Fix encoded length for indirect root
22
+
23
+ Version 1.7.4 (December 9, 2010)
24
+
25
+ Changed:
26
+
27
+ o local-bind: Support binding to local interface/IPs, see
28
+ ares_set_local_ip4, ares_set_local_ip6, ares_set_local_dev
29
+
30
+ Fixed:
31
+
32
+ o memory leak in ares_getnameinfo
33
+ o add missing break that caused get_ares_servers to fail
34
+ o ares_parse_a_reply: fix CNAME response parsing
35
+ o init_by_options: don't copy an empty sortlist
36
+ o Replaced uint32_t with unsigned int to fix broken builds
37
+ on a couple of platforms
38
+ o Fix lookup with HOSTALIASES set
39
+ o adig: fix NAPTR parsing
40
+ o compiler warning cleanups
41
+
42
+ Version 1.7.3 (June 11, 2010)
43
+
44
+ Fixed:
45
+
46
+ o builds on Android
47
+ o now includes all files necessary to build it (1.7.2 lacked a file)
48
+
49
+ Version 1.7.2 (June 10, 2010)
50
+
51
+ Changed:
52
+
53
+ o Added ares_parse_mx_reply()
54
+
55
+ Fixed:
56
+
57
+ o ares_init: Last, not first instance of domain or search should win
58
+ o improve alternative definition of bool
59
+ o fix VS2010 compiler warnings
60
+
61
+
62
+ Version 1.7.1 (Mar 23, 2010)
63
+
64
+ * May 31, 2010 (Jakub Hrozek)
65
+ - Use the last instance of domain/search, not the first one
66
+
67
+ * March 23, 2010 (Daniel Stenberg)
68
+ - We switched from CVS to git. See http://github.com/bagder/c-ares
69
+
70
+ * March 5, 2010 (Daniel Stenberg)
71
+ - Daniel Johnson provided fixes for building with the clang compiler.
72
+
73
+ * March 5, 2010 (Yang Tse)
74
+ - Added IPv6 name servers support. Implementation has been based on code,
75
+ comments and feedback provided November and December of 2008 by Daniel
76
+ Stenberg, Gregor Jasny, Phil Blundell and myself, December 2009 by Cedric
77
+ Bail, and February 2010 by Jakub Hrozek on the c-ares mailing list. On
78
+ March I reviewed all that, selected the best of each, and adjusted or
79
+ extended parts of it to make the best fit.
80
+
81
+ The external and visible result of all this is that two new functions are
82
+ added to the external API, ares_get_servers() and ares_set_servers(), which
83
+ becomes now the preferred way of getting and setting name servers for any
84
+ ares channel as these support both IPv4 and IPv6 name servers.
85
+
86
+ In order to not break ABI compatibility, ares_init_options() with option
87
+ mask ARES_OPT_SERVERS and ares_save_options() may still be used in code
88
+ which is intended to run on IPv4-only stacks. But remember that these
89
+ functions do not support IPv6 name servers. This implies that if the user
90
+ is capable of defining or providing an IPv6 name server, and the app is
91
+ using ares_init_options() or ares_save_options() at some point to handle
92
+ the name servers, the app will likely lose IPv6 name servers.
93
+
94
+ * January 28, 2010 (Daniel Stenberg)
95
+ - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't
96
+ check for broken connections like ares_process() did. Based on that, I
97
+ merged the two functions into a single generic one with two front-ends.
98
+
99
+ * December 29, 2009 (Yang Tse)
100
+ - Laszlo Tamas Szabo adjusted Makefile.msvc compiler options so that where
101
+ run-time error checks enabling compiler option /GZ was used it is replaced
102
+ with equivalent /RTCsu for Visual Studio 2003 and newer versions. Option
103
+ /GX is replaced with equivalent /EHsc for all versions. Also fixed socket
104
+ data type for internal configure_socket function.
105
+
106
+ * December 21, 2009 (Yang Tse)
107
+ - Ingmar Runge noticed that Windows config-win32.h configuration file
108
+ did not include a definition for HAVE_CLOSESOCKET which resulted in
109
+ function close() being inappropriately used to close sockets.
110
+
111
+ Version 1.7.0 (Nov 30, 2009)
112
+
113
+ * November 26, 2009 (Yang Tse)
114
+ - Larry Lansing fixed ares_parse_srv_reply to properly parse replies
115
+ which might contain non-SRV answers, skipping over potential non-SRV
116
+ ones such as CNAMEs.
117
+
118
+ * November 23, 2009 (Yang Tse)
119
+ - Changed naming convention for c-ares libraries built with MSVC, details
120
+ and build instructions provided in README.msvc file.
121
+
122
+ * November 22, 2009 (Yang Tse)
123
+ - Jakub Hrozek fixed more function prototypes in man pages to sync them
124
+ with the ones declared in ares.h
125
+
126
+ - Jakub Hrozek renamed addrttl and addr6ttl structs to ares_addrttl and
127
+ ares_addr6ttl in order to prevent name space pollution, along with
128
+ necessary changes to code base and man pages.This change does not break
129
+ ABI, there is no need to recompile existing applications. But existing
130
+ applications using these structs with the old name will need source code
131
+ adjustments when recompiled using c-ares 1.7.0.
132
+
133
+ * November 21, 2009 (Yang Tse)
134
+ - Added manifest stuff to Makefile.msvc.
135
+
136
+ * November 20, 2009 (Yang Tse)
137
+ - Fixed several function prototypes in man pages that were out of sync
138
+ with the ones declared in ares.h. Added ares_free_data() along with
139
+ man page. Updated ares_parse_srv_reply() and ares_parse_txt_reply()
140
+ with changes from Jakub Hrozek making these now return linked lists
141
+ instead of arrays, and merging the ares_free_data() adjustments.
142
+
143
+ * November 10, 2009 (Yang Tse)
144
+ - Updated MSVC 6.0 project files to match settings from Makefile.msvc.
145
+
146
+ * November 9, 2009 (Yang Tse)
147
+ - Makefile.msvc is now the reference method to build c-ares and sample
148
+ programs with any MSVC compiler or MS Visual Studio version. If no
149
+ option or target are specified it builds dynamic and static c-ares
150
+ libraries in debug and release flavours and also builds all sample
151
+ programs using each of the different c-ares libraries.
152
+
153
+ * November 2, 2009 (Yang Tse)
154
+ - Renamed c-ares setup.h to ares_setup.h
155
+
156
+ * October 31, 2009 (Yang Tse)
157
+ - Symbol hiding configure options are named now --enable-symbol-hiding
158
+ and --disable-symbol-hiding in an attempt to make them less ambiguous.
159
+
160
+ * October 30, 2009 (Yang Tse)
161
+ - Many fixes for ares_parse_txt_reply()
162
+
163
+ * October 29, 2009 (Daniel Stenberg)
164
+ - Jakub Hrozek added ares_parse_txt_reply() for TXT parsing
165
+
166
+ * October 29, 2009 (Yang Tse)
167
+ - Updated MSVC 6.0 workspace and project files that allows building
168
+ dynamic and static c-ares libraries in debug and release flavours.
169
+ Additionally each of the three sample programs is built against
170
+ each of the four possible c-ares libraries, generating all this
171
+ a total number of 12 executables and 4 libraries.
172
+
173
+ * October 28, 2009 (Yang Tse)
174
+ - Initial step towards the ability to reduce c-ares exported symbols
175
+ when built as a shared library based on the 'visibility' attribute
176
+ for GNUC and Intel compilers and based on __global for Sun compilers,
177
+ taking also in account __declspec function decoration for Win32 and
178
+ Symbian DLL's.
179
+
180
+ * October 27, 2009 (Yang Tse)
181
+ - Fixed Pelles C Win32 target compilation issues.
182
+
183
+ * October 23, 2009 (Yang Tse)
184
+ - John Engelhart noticed an unreleased problem relative to a duplicate
185
+ ARES_ECANCELLED error code value and missing error code description.
186
+
187
+ * October 7, 2009 (Yang Tse)
188
+ - Overhauled ares__get_hostent() Fixing out of bounds memory overwrite
189
+ triggered with malformed /etc/hosts file. Improving parsing of /etc/hosts
190
+ file. Validating requested address family. Ensuring that failures always
191
+ return a NULL pointer. Adjusting header inclusions.
192
+
193
+ * October 6, 2009 (Yang Tse)
194
+ - Fix ssize_t redefinition errors on WIN64 reported by Alexey Simak.
195
+
196
+ * September 29, 2009 (Yang Tse)
197
+ - Make configure script also check if _REENTRANT definition is required to
198
+ make errno available as a preprocessor macro.
199
+
200
+ * September 7, 2009 (Yang Tse)
201
+ - Add T_SRV portability check to ares_parse_srv_reply.c
202
+
203
+ * 4 Sep 2009 (Daniel Stenberg)
204
+ - Jakub Hrozek added ares_parse_srv_reply() for SRV parsing
205
+
206
+ * 3 Aug 2009 (Daniel Stenberg)
207
+ - Joshua Kwan fixed the init routine to fill in the defaults for stuff that
208
+ fails to get inited by other means. This fixes a case of when the c-ares
209
+ init fails when internet access is fone.
210
+
211
+ - Timo Teras changed the reason code used in the resolve callback done when
212
+ ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to
213
+ better allow the callback to know what's happening.
214
+
215
+ * 14 Jul 2009 (Guenter Knauf)
216
+ - renamed generated config.h to ares_config.h to avoid any future clashes
217
+ with config.h from other projects.
218
+
219
+ * June 20 2009 (Yang Tse)
220
+ - Refactor how libraries are checked for connect() function in configure
221
+ script and check for connect() as it is done for other functions.
222
+
223
+ * June 19 2009 (Yang Tse)
224
+ - Make sclose() function-like macro definition used to close a socket,
225
+ now solely based on HAVE_CLOSESOCKET and HAVE_CLOSESOCKET_CAMEL
226
+ config file preprocessor definitions
227
+
228
+ * June 18 2009 (Yang Tse)
229
+ - Add CloseSocket camel case function check for configure script.
230
+
231
+ * June 17 2009 (Yang Tse)
232
+ - Check for socket() and closesocket() as it is done for other functions
233
+ in configure script.
234
+
235
+ * June 11 2009 (Yang Tse)
236
+ - Modified buildconf so that when automake runs it copies missing files
237
+ instead of symlinking them.
238
+
239
+ * June 8 2009 (Yang Tse)
240
+ - Removed buildconf.bat from release and daily snapshot archives. This
241
+ file is only for CVS tree checkout builds.
242
+
243
+ * May 26 2009 (Yang Tse)
244
+ - Added --enable-curldebug configure option to enable and disable building
245
+ with the low-level curl debug memory tracking 'feature' to allow decoupled
246
+ setting from --enable-debug, allowing again to build c-ares independently
247
+ out of the CVS tree.
248
+
249
+ For the c-ares library option --enable-debug enables debug build features
250
+ which are _not_ related with memory tracking. For the c-ares library when
251
+ --enable-debug is given it does not enable the memory tracking feature. If
252
+ you wish to enable the curl debug memory tracking you must use configure
253
+ option --enable-curldebug explicitily to do so.
254
+
255
+ Internally, definition of preprocessor symbol DEBUGBUILD restricts code
256
+ which is only compiled for debug enabled builds. And symbol CURLDEBUG is
257
+ used to differentiate code which is _only_ used for memory tracking.
258
+
259
+ Make ares_init(), ares_dup() and ares_init_options() fail returning
260
+ ARES_ENOTINITIALIZED if library initialization has not been performed
261
+ calling ares_library_init().
262
+
263
+ * May 20 2009 (Yang Tse)
264
+ - Added ares_library_init() and ares_library_cleanup() man pages.
265
+
266
+ * May 19 2009 (Yang Tse)
267
+ - Introduced ares_library_init() and ares_library_cleanup() functions.
268
+
269
+ This is an API and ABI break for Win32/64 systems. Non-Win32/64 build targets
270
+ using c-ares 1.7.0 can still survive without calling these functions. Read all
271
+ the details on ares_library_init(3) and ares_library_cleanup(3) man pages that
272
+ are included.
273
+
274
+ curl/libcurl 7.19.5 is fully compatible with c-ares 1.7.0 on all systems.
275
+
276
+ In order to use c-ares 1.7.0 with curl/libcurl on Win32/64 systems it is
277
+ required that curl/libcurl is 7.19.5 or newer. In other words, it is not
278
+ possible on Win32/64 to use c-ares 1.7.0 with a curl/libcurl version less
279
+ than 7.19.5
280
+
281
+ * May 11 2009 (Daniel Stenberg)
282
+ - Gregor Jasny made c-ares link with libtool 's -export-symbols-regex option to
283
+ only expose functions starting with ares_.
284
+
285
+ * May 7 2009 (Yang Tse)
286
+ - Fix an m4 overquoting triggering a spurious 'AS_TR_CPP' symbol definition
287
+ attempt in generated config.h
288
+
289
+ * May 2 2009 (Yang Tse)
290
+ - Use a build-time configured ares_socklen_t data type instead of socklen_t.
291
+
292
+ * April 21 2009 (Yang Tse)
293
+ - Moved potential inclusion of system's malloc.h and memory.h header files to
294
+ setup_once.h. Inclusion of each header file is based on the definition of
295
+ NEED_MALLOC_H and NEED_MEMORY_H respectively.
296
+
297
+ * March 11 2009 (Yang Tse)
298
+ - Japheth Cleaver fixed acountry.c replacing u_long with unsigned long.
299
+
300
+ * February 20 2009 (Yang Tse)
301
+ - Do not halt compilation when using VS2008 to build a Windows 2000 target.
302
+
303
+ * February 3 2009 (Phil Blundell)
304
+ - If the server returns garbage or nothing at all in response to an AAAA query,
305
+ go on and ask for A records anyway.
306
+
307
+ * January 31 2009 (Daniel Stenberg)
308
+ - ares_gethostbyname() now accepts 'AF_UNSPEC' as a family for resolving
309
+ either AF_INET6 or AF_INET. It works by accepting any of the looksups in the
310
+ hosts file, and it resolves the AAAA field with a fallback to A.
311
+
312
+ * January 14 2009 (Daniel Stenberg)
313
+ - ares.h no longer uses the HAVE_STRUCT_IN6_ADDR define check, but instead it
314
+ now declares the private struct ares_in6_addr for all systems instead of
315
+ relying on one possibly not present in the system.
316
+
317
+ * January 13 2009 (Phil Blundell)
318
+ - ares__send_query() now varies the retry timeout pseudo-randomly to avoid
319
+ packet storms when several queries were started at the same time.
320
+
321
+ * January 11 2009 (Daniel Stenberg)
322
+ - Phil Blundell added the internal function ares__expand_name_for_response()
323
+ that is now used by the ares_parse_*_reply() functions instead of the
324
+ ares_expand_name() simply to easier return ARES_EBADRESP for the cases where
325
+ the name expansion fails as in responses that really isn't expected.
326
+
327
+ Version 1.6.0 (Dec 9, 2008)
328
+
329
+ * December 9 2008 (Gisle Vanem)
330
+
331
+ Fixes for Win32 targets using the Watt-32 tcp/ip stack.
332
+
333
+ * Dec 4 2008 (Daniel Stenberg)
334
+
335
+ Gregor Jasny provided the patch that introduces ares_set_socket_callback(),
336
+ and I edited it to also get duped by ares_dup().
337
+
338
+ * Dec 3 2008 (Daniel Stenberg)
339
+
340
+ API changes:
341
+
342
+ I made sure the public ares_config struct looks like before and yet it
343
+ supports the ROTATE option thanks to c-ares now storing the "optmask"
344
+ internally. Thus we should be ABI compatible with the past release(s)
345
+ now. My efforts mentioned below should not break backwards ABI compliance.
346
+
347
+ Here's how I suggest we proceed with the API:
348
+
349
+ ares_init() will be primary "channel creator" function.
350
+
351
+ ares_init_options() will continue to work exactly like now and before. For
352
+ starters, it will be the (only) way to set the existing options.
353
+
354
+ ares_save_options() will continue to work like today, but will ONLY save
355
+ options that you can set today (including ARES_OPT_ROTATE actually) but new
356
+ options that we add may not be saved with this.
357
+
358
+ Instead we introduce:
359
+
360
+ ares_dup() that instead can make a new channel and clone the config used
361
+ from an existing channel. It will then clone all config options, including
362
+ future new things we add.
363
+
364
+ ares_set_*() style functions that set (new) config options. As a start we
365
+ simply add these for new functionality, but over time we can also introduce
366
+ them for existing "struct ares_options" so that we can eventually deprecate
367
+ the two ares_*_options() functions.
368
+
369
+ ares_get_*() style functions for extracting info from a channel handle that
370
+ should be used instead of ares_save_options().
371
+
372
+ * Nov 26 2008 (Yang Tse)
373
+ - Brad Spencer provided changes to allow buildconf to work on OS X.
374
+
375
+ - Gerald Combs fixed a bug in ares_parse_ptr_reply() which would cause a
376
+ buffer to shrink instead of expand if a reply contained 8 or more records.
377
+
378
+ * Nov 25 2008 (Yang Tse)
379
+ - In preparation for the upcomming IPv6 nameservers patch, the internal
380
+ ares_addr union is now changed into an internal struct which also holds
381
+ the address family.
382
+
383
+ * Nov 19 2008 (Daniel Stenberg)
384
+ - Brad Spencer brought the new function ares_gethostbyname_file() which simply
385
+ resolves a host name from the given file, using the regular hosts syntax.
386
+
387
+ * Nov 1 2008 (Daniel Stenberg)
388
+ - Carlo Contavalli added support for the glibc "rotate" option, as documented
389
+ in man resolv.conf:
390
+
391
+ causes round robin selection of nameservers from among those listed. This
392
+ has the effect of spreading the query load among all listed servers, rather
393
+ than having all clients try the first listed server first every time.
394
+
395
+ You can enable it with ARES_OPT_ROTATE
396
+
397
+ * Oct 21 2008 (Yang Tse)
398
+ Charles Hardin added handling of EINPROGRESS for UDP connects.
399
+
400
+ * Oct 18 2008 (Daniel Stenberg)
401
+ Charles Hardin made adig support a regular numerical dotted IP address for the
402
+ -s option as well.
403
+
404
+ * Oct 7 2008 (Yang Tse)
405
+ - Added --enable-optimize configure option to enable and disable compiler
406
+ optimizations to allow decoupled setting from --enable-debug.
407
+
408
+ * Oct 2 2008 (Yang Tse)
409
+ - Added --enable-warnings configure option to enable and disable strict
410
+ compiler warnings to allow decoupled setting from --enable-debug.
411
+
412
+ * Sep 17 2008 (Yang Tse)
413
+ - Code reorganization to allow internal/private use of "nameser.h" to any
414
+ system that lacks arpa/nameser.h or arpa/nameser_compat.h header files.
415
+
416
+ * Sep 16 2008 (Yang Tse)
417
+ - Code reorganization to allow internal/private use of ares_writev to any
418
+ system that lacks the writev function.
419
+
420
+ * Sep 15 2008 (Yang Tse)
421
+ - Code reorganization to allow internal/private use of ares_strcasecmp to any
422
+ system that lacks the strcasecmp function.
423
+
424
+ - Improve configure detection of some string functions.
425
+
426
+ * Sep 11 2008 (Yang Tse)
427
+ - Code reorganization to allow internal/private use of ares_strdup to any
428
+ system that lacks the strdup function.
429
+
430
+ Version 1.5.3 (Aug 29, 2008)
431
+
432
+ * Aug 25 2008 (Yang Tse)
433
+ - Improvement by Brad House:
434
+
435
+ This patch addresses an issue in which a response could be sent back to the
436
+ source port of a client from a different address than the request was made to.
437
+ This is one form of a DNS cache poisoning attack.
438
+
439
+ The patch simply uses recvfrom() rather than recv() and validates that the
440
+ address returned from recvfrom() matches the address of the server we have
441
+ connected to. Only necessary on UDP sockets as they are connection-less, TCP
442
+ is unaffected.
443
+
444
+ - Fix by George Neill:
445
+ Fixed compilation of acountry sample application failure on some systems.
446
+
447
+ * Aug 4 2008 (Daniel Stenberg)
448
+ - Fix by Tofu Linden:
449
+
450
+ The symptom:
451
+ * Users (usually, but not always) on 2-Wire routers and the Comcast service
452
+ and a wired connection to their router would find that the second and
453
+ subsequent DNS lookups from fresh processes using c-ares to resolve the same
454
+ address would cause the process to never see a reply (it keeps polling for
455
+ around 1m15s before giving up).
456
+
457
+ The repro:
458
+ * On such a machine (and yeah, it took us a lot of QA to find the systems
459
+ that reproduce such a specific problem!), do 'ahost www.secondlife.com',
460
+ then do it again. The first process's lookup will work, subsequent lookups
461
+ will time-out and fail.
462
+
463
+ The cause:
464
+ * init_id_key() was calling randomize_key() *before* it initialized
465
+ key->state, meaning that the randomness generated by randomize_key() is
466
+ immediately overwritten with deterministic values. (/dev/urandom was also
467
+ being read incorrectly in the c-ares version we were using, but this was
468
+ fixed in a later version.)
469
+ * This makes the stream of generated query-IDs from any new c-ares process
470
+ be an identical and predictable sequence of IDs.
471
+ * This makes the 2-Wire's default built-in DNS server detect these queries
472
+ as probable-duplicates and (erroneously) not respond at all.
473
+
474
+
475
+ * Aug 4 2008 (Yang Tse)
476
+ - Autoconf 2.62 has changed the behaviour of the AC_AIX macro which we use.
477
+ Prior versions of autoconf defined _ALL_SOURCE if _AIX was defined. 2.62
478
+ version of AC_AIX defines _ALL_SOURCE and other four preprocessor symbols
479
+ no matter if the system is AIX or not. To keep the traditional behaviour,
480
+ and an uniform one across autoconf versions AC_AIX is replaced with our
481
+ own internal macro CARES_CHECK_AIX_ALL_SOURCE.
482
+
483
+ * Aug 1 2008 (Yang Tse)
484
+ - Configure process now checks if the preprocessor _REENTRANT symbol is already
485
+ defined. If it isn't currently defined a set of checks are performed to test
486
+ if its definition is required to make visible to the compiler a set of *_r
487
+ functions. Finally, if _REENTRANT is already defined or needed it takes care
488
+ of making adjustments necessary to ensure that it is defined equally for the
489
+ configure process tests and generated config file.
490
+
491
+ * Jul 20 2008 (Yang Tse)
492
+ - When recvfrom prototype uses a void pointer for arguments 2, 5 or 6 this will
493
+ now cause the definition, as appropriate, of RECVFROM_TYPE_ARG2_IS_VOID,
494
+ RECVFROM_TYPE_ARG5_IS_VOID or RECVFROM_TYPE_ARG6_IS_VOID.
495
+
496
+ * Jul 17 2008 (Yang Tse)
497
+ - RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
498
+ to the data type pointed by its respective argument and not the pointer type.
499
+
500
+ * Jul 16 2008 (Yang Tse)
501
+ - Improved configure detection of number of arguments for getservbyport_r.
502
+ Detection is now based on compilation checks instead of linker ones.
503
+
504
+ - Configure process now checks availability of recvfrom() socket function and
505
+ finds out its return type and the types of its arguments. Added definitions
506
+ for non-configure systems config files, and introduced macro sreadfrom which
507
+ will be used on udp sockets as a recvfrom() wrapper in the future.
508
+
509
+ * Jul 15 2008 (Yang Tse)
510
+ - Introduce definition of _REENTRANT symbol in setup.h to improve library
511
+ usability. Previously the configure process only used the AC_SYS_LARGEFILE
512
+ macro for debug builds, now it is also used for non-debug ones enabling the
513
+ use of configure options --enable-largefile and --disable-largefile which
514
+ might be needed for library compatibility. Remove checking the size of
515
+ curl_off_t, it is no longer needed.
516
+
517
+ * Jul 3 2008 (Daniel Stenberg)
518
+ - Phil Blundell: If you ask ares_gethostbyname() to do an AF_INET6 lookup and
519
+ the target host has only A records, it automatically falls back to an
520
+ AF_INET lookup and gives you the A results. However, if the target host has
521
+ a CNAME record, this behaviour is defeated since the original query does
522
+ return some data even though ares_parse_aaa_reply() doesn't consider it
523
+ relevant. Here's a small patch to make it behave the same with and without
524
+ the CNAME.
525
+
526
+ * Jul 2 2008 (Yang Tse)
527
+ - Fallback to gettimeofday when monotonic clock is unavailable at run-time.
528
+
529
+ * Jun 30 2008 (Daniel Stenberg)
530
+
531
+ - As was pointed out to me by Andreas Schuldei, the MAXHOSTNAMELEN define is
532
+ not posix or anything and thus c-ares failed to build on hurd (and possibly
533
+ elsewhere). The define was also somewhat artificially used in the windows
534
+ port. Now, I instead rewrote the use of gethostbyname to enlarge the host
535
+ name buffer in case of need and totally avoid the use of the MAXHOSTNAMELEN
536
+ define. I thus also removed the defien from the namser.h file where it was
537
+ once added for the windows build.
538
+
539
+ I also fixed init_by_defaults() function to not leak memory in case if
540
+ error.
541
+
542
+ * Jun 9 2008 (Yang Tse)
543
+
544
+ - Make libcares.pc generated file for pkg-config include information relative
545
+ to the libraries needed for the static linking of c-ares.
546
+
547
+ * May 30 2008 (Yang Tse)
548
+
549
+ - Brad House fixed a missing header file inclusion in adig sample program.
550
+
551
+ Version 1.5.2 (May 29, 2008)
552
+
553
+ * May 13 2008 (Daniel Stenberg)
554
+
555
+ - Introducing millisecond resolution support for the timeout option. See
556
+ ares_init_options()'s ARES_OPT_TIMEOUTMS.
557
+
558
+ * May 9 2008 (Yang Tse)
559
+
560
+ - Use monotonic time source if available, for private function ares__tvnow()
561
+
562
+ * May 7 2008 (Daniel Stenberg)
563
+
564
+ - Sebastian made c-ares able to return all PTR-records when doing reverse
565
+ lookups. It is not common practice to have multiple PTR-Records for a single
566
+ IP, but its perfectly legal and some sites have those.
567
+
568
+ - Doug Goldstein provided a configure patch: updates autoconf 2.13 usage to
569
+ autoconf 2.57 usage (which is the version you have specified as the minimum
570
+ version). It's a minor change but it does clean up some warnings with newer
571
+ autoconf (specifically 2.62).
572
+
573
+ * May 5 2008 (Yang Tse)
574
+
575
+ - Improved parsing of resolver configuration files.
576
+
577
+ * April 4 2008 (Daniel Stenberg)
578
+
579
+ - Eino Tuominen improved the code when a file is used to seed the randomizer.
580
+
581
+ - Alexey Simak made adig support NAPTR records
582
+
583
+ - Alexey Simak fixed the VC dsp file by adding the missing source file
584
+ ares_expand_string.c
585
+
586
+ * December 11 2007 (Gisle Vanem)
587
+
588
+ - Added another sample application; acountry.c which converts an
589
+ IPv4-address(es) and/or host-name(s) to country-name and country-code.
590
+ This uses the service of the DNSBL at countries.nerd.dk.
591
+
592
+ * December 3 2007 (Daniel Stenberg)
593
+
594
+ - Brad Spencer fixed the configure script to assume that there's no
595
+ /dev/urandom when built cross-compiled as then the script cannot check for
596
+ it.
597
+
598
+ - Erik Kline cleaned up ares_gethostbyaddr.c:next_lookup() somewhat
599
+
600
+ Version 1.5.1 (Nov 21, 2007)
601
+
602
+ * November 21 2007 (Daniel Stenberg)
603
+
604
+ - Robin Cornelius pointed out that ares_llist.h was missing in the release
605
+ archive for 1.5.0
606
+
607
+ Version 1.5.0 (Nov 21, 2007)
608
+
609
+ * October 2 2007 (Daniel Stenberg)
610
+
611
+ - ares_strerror() segfaulted if the input error number was out of the currently
612
+ supported range.
613
+
614
+ - Yang Tse: Avoid a segfault when generating a DNS "Transaction ID" in
615
+ internal function init_id_key() under low memory conditions.
616
+
617
+ * September 28 2007 (Daniel Stenberg)
618
+
619
+ - Bumped version to 1.5.0 for next release and soname bumped to 2 due to ABI
620
+ and API changes in the progress callback (and possibly more coming up from
621
+ Steinar)
622
+
623
+ * September 28 2007 (Steinar H. Gunderson)
624
+
625
+ - Don't skip a server if it's the only one. (Bugfix from the Google tree.)
626
+
627
+ - Made the query callbacks receive the number of timeouts that happened during
628
+ the execution of a query, and updated documentation accordingly. (Patch from
629
+ the Google tree.)
630
+
631
+ - Support a few more socket options: ARES_OPT_SOCK_SNDBUF and
632
+ ARES_OPT_SOCK_RCVBUF
633
+
634
+ - Always register for TCP events even if there are no outstanding queries, as
635
+ the other side could always close the connection, which is a valid event
636
+ which should be responded to.
637
+
638
+ * September 22 2007 (Daniel Stenberg)
639
+
640
+ - Steinar H. Gunderson fixed: Correctly clear sockets from the fd_set on in
641
+ several functions (write_tcp_data, read_tcp_data, read_udp_packets) so that
642
+ if it fails and the socket is closed the following code doesn't try to use
643
+ the file descriptor.
644
+
645
+ - Steinar H. Gunderson modified c-ares to now also do to DNS retries even when
646
+ TCP is used since there are several edge cases where it still makes sense.
647
+
648
+ - Brad House provided a fix for ares_save_options():
649
+
650
+ Apparently I overlooked something with the ares_save_options() where it
651
+ would try to do a malloc(0) when no options of that type needed to be saved.
652
+ On most platforms, this was fine because malloc(0) doesn't actually return
653
+ NULL, but on AIX it does, so ares_save_options would return ARES_ENOMEM.
654
+
655
+ * July 14 2007 (Daniel Stenberg)
656
+
657
+ - Vlad Dinulescu fixed two outstanding valgrind reports:
658
+
659
+ 1. In ares_query.c , in find_query_by_id we compare q->qid (which is a short
660
+ int variable) with qid, which is declared as an int variable. Moreover,
661
+ DNS_HEADER_SET_QID is used to set the value of qid, but DNS_HEADER_SET_QID
662
+ sets only the first two bytes of qid. I think that qid should be declared as
663
+ "unsigned short" in this function.
664
+
665
+ 2. The same problem occurs in ares_process.c, process_answer() . query->qid
666
+ (an unsigned short integer variable) is compared with id, which is an
667
+ integer variable. Moreover, id is initialized from DNS_HEADER_QID which sets
668
+ only the first two bytes of id. I think that the id variable should be
669
+ declared as "unsigned short" in this function.
670
+
671
+ Even after declaring these variables as "unsigned short", the valgrind
672
+ errors are still there. Which brings us to the third problem.
673
+
674
+ 3. The third problem is that Valgrind assumes that query->qid is not
675
+ initialised correctly. And it does that because query->qid is set from
676
+ DNS_HEADER_QID(qbuf); Valgrind says that qbuf has unitialised bytes. And
677
+ qbuf has uninitialised bytes because of channel->next_id . And next_id is
678
+ set by ares_init.c:ares__generate_new_id() . I found that putting short r=0
679
+ in this function (instead of short r) makes all Valgrind warnings go away.
680
+ I have studied ares__rc4() too, and this is the offending line:
681
+
682
+ buffer_ptr[counter] ^= state[xorIndex]; (ares_query.c:62)
683
+
684
+ This is what triggers Valgrind.. buffer_ptr is unitialised in this function,
685
+ and by applying ^= on it, it remains unitialised.
686
+
687
+ Version 1.4.0 (June 8, 2007)
688
+
689
+ * June 4 2007 (Daniel Stenberg)
690
+
691
+ - James Bursa reported a major memory problem when resolving multi-IP names
692
+ and I found and fixed the problem. It was added by Ashish Sharma's patch
693
+ two days ago.
694
+
695
+ When I then tried to verify multiple entries in /etc/hosts after my fix, I
696
+ got another segfault and decided this code was not ripe for inclusion and I
697
+ reverted the patch.
698
+
699
+ * June 2 2007
700
+
701
+ - Brad Spencer found and fixed three flaws in the code, found with the new
702
+ gcc 4.2.0 warning: -Waddress
703
+
704
+ - Brad House fixed VS2005 compiler warnings due to time_t being 64bit.
705
+ He also made recent Microsoft compilers use _strdup() instead of strdup().
706
+
707
+ - Brad House's man pages for ares_save_options() and ares_destroy_options()
708
+ were added.
709
+
710
+ - Ashish Sharma provided a patch for supporting multiple entries in the
711
+ /etc/hosts file. Patch edited for coding style and functionality by me
712
+ (Daniel).
713
+
714
+ * May 30 2007
715
+
716
+ - Shmulik Regev brought cryptographically secure transaction IDs:
717
+
718
+ The c-ares library implementation uses a DNS "Transaction ID" field that is
719
+ seeded with a pseudo random number (based on gettimeofday) which is
720
+ incremented (++) between consecutive calls and is therefore rather
721
+ predictable. In general, predictability of DNS Transaction ID is a well
722
+ known security problem (e.g.
723
+ http://bak.spc.org/dms/archive/dns_id_attack.txt) and makes a c-ares based
724
+ implementation vulnerable to DNS poisoning. Credit goes to Amit Klein
725
+ (Trusteer) for identifying this problem.
726
+
727
+ The patch I wrote changes the implementation to use a more secure way of
728
+ generating unique IDs. It starts by obtaining a key with reasonable entropy
729
+ which is used with an RC4 stream to generate the cryptographically secure
730
+ transaction IDs.
731
+
732
+ Note that the key generation code (in ares_init:randomize_key) has two
733
+ versions, the Windows specific one uses a cryptographically safe function
734
+ provided (but undocumented :) by the operating system (described at
735
+ http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx). The
736
+ default implementation is a bit naive and uses the standard 'rand'
737
+ function. Surely a better way to generate random keys exists for other
738
+ platforms.
739
+
740
+ The patch can be tested by using the adig utility and using the '-s' option.
741
+
742
+ - Brad House added ares_save_options() and ares_destroy_options() that can be
743
+ used to keep options for later re-usal when ares_init_options() is used.
744
+
745
+ Problem: Calling ares_init() for each lookup can be unnecessarily resource
746
+ intensive. On windows, it must LoadLibrary() or search the registry
747
+ on each call to ares_init(). On unix, it must read and parse
748
+ multiple files to obtain the necessary configuration information. In
749
+ a single-threaded environment, it would make sense to only
750
+ ares_init() once, but in a heavily multi-threaded environment, it is
751
+ undesirable to ares_init() and ares_destroy() for each thread created
752
+ and track that.
753
+
754
+ Solution: Create ares_save_options() and ares_destroy_options() functions to
755
+ retrieve and free options obtained from an initialized channel. The
756
+ options populated can be used to pass back into ares_init_options(),
757
+ it should populate all needed fields and not retrieve any information
758
+ from the system. Probably wise to destroy the cache every minute or
759
+ so to prevent the data from becoming stale.
760
+
761
+ - Daniel S added ares_process_fd() to allow applications to ask for processing
762
+ on specific sockets and thus avoiding select() and associated
763
+ functions/macros. This function will be used by upcoming libcurl releases
764
+ for this very reason. It also made me export the ares_socket_t type in the
765
+ public ares.h header file, since ares_process_fd() uses that type for two of
766
+ the arguments.
767
+
768
+ * May 25 2007
769
+
770
+ - Ravi Pratap fixed a flaw in the init_by_resolv_conf() function for windows
771
+ that could cause it to return a bad return code.
772
+
773
+ * April 16 2007
774
+
775
+ - Yang Tse: Provide ares_getopt() command-line parser function as a source
776
+ code helper function, not belonging to the actual c-ares library.
777
+
778
+ * February 19 2007
779
+
780
+ - Vlad Dinulescu added ares_parse_ns_reply().
781
+
782
+ * February 13 2007
783
+
784
+ - Yang Tse: Fix failure to get the search sequence of /etc/hosts and
785
+ DNS from /etc/nsswitch.conf, /etc/host.conf or /etc/svc.conf when
786
+ /etc/resolv.conf did not exist or was unable to read it.
787
+
788
+ * November 22 2006
789
+
790
+ - Install ares_dns.h too
791
+
792
+ - Michael Wallner fixed this problem: When I set domains in the options
793
+ struct, and there are domain/search entries in /etc/resolv.conf, the domains
794
+ of the options struct will be overridden.
795
+
796
+ * November 6 2006
797
+
798
+ - Yang Tse removed a couple of potential zero size memory allocations.
799
+
800
+ - Andreas Rieke fixed the line endings in the areslib.dsp file that I (Daniel)
801
+ broke in the 1.3.2 release. We should switch to a system where that file is
802
+ auto-generated. We could rip some code for that from curl...
803
+
804
+ Version 1.3.2 (November 3, 2006)
805
+
806
+ * October 12 2006
807
+
808
+ - Prevent ares_getsock() to overflow if more than 16 sockets are used.
809
+
810
+ * September 11 2006
811
+
812
+ - Guilherme Balena Versiani: I noted a strange BUG in Win32 port
813
+ (ares_init.c/get_iphlpapi_dns_info() function): when I disable the network
814
+ by hand or disconnect the network cable in Windows 2000 or Windows XP, my
815
+ application gets 127.0.0.1 as the only name server. The problem comes from
816
+ 'GetNetworkParams' function, that returns the empty string "" as the only
817
+ name server in that case. Moreover, the Windows implementation of
818
+ inet_addr() returns INADDR_LOOPBACK instead of INADDR_NONE.
819
+
820
+ * August 29 2006
821
+
822
+ - Brad Spencer did
823
+
824
+ o made ares_version.h use extern "C" for c++ compilers
825
+ o fixed compiler warnings in ares_getnameinfo.c
826
+ o fixed a buffer position init for TCP reads
827
+
828
+ * August 3 2006
829
+
830
+ - Ravi Pratap fixed ares_getsock() to actually return the proper bitmap and
831
+ not always zero!
832
+
833
+ Version 1.3.1 (June 24, 2006)
834
+
835
+ * July 23, 2006
836
+
837
+ - Gisle Vanem added getopt() to the ahost program. Currently accepts
838
+ only [-t {a|aaaa}] to specify address family in ares_gethostbyname().
839
+
840
+ * June 19, 2006
841
+
842
+ - (wahern) Removed "big endian" DNS section and RR data integer parser
843
+ macros from ares_dns.h, which break c-ares on my Sparc64. Bit-wise
844
+ operations in C operate on logical values. And in any event the octets are
845
+ already in big-endian (aka network) byte order so they're being reversed
846
+ (thus the source of the breakage).
847
+
848
+ * June 18, 2006
849
+
850
+ - William Ahern handles EAGAIN/EWOULDBLOCK errors in most of the I/O calls
851
+ from area_process.c.
852
+
853
+ TODO: Handle one last EAGAIN for a UDP socket send(2) in
854
+ ares__send_query().
855
+
856
+ * May 10, 2006
857
+
858
+ - Bram Matthys brought my attention to a libtool peculiarity where detecting
859
+ things such as C++ compiler actually is a bad thing and since we don't need
860
+ that detection I added a work-around, much inspired by a previous patch by
861
+ Paolo Bonzini. This also shortens the configure script quite a lot.
862
+
863
+ * May 3, 2006
864
+
865
+ - Nick Mathewson added the ARES_OPT_SOCK_STATE_CB option that when set makes
866
+ c-ares call a callback on socket state changes. A better way than the
867
+ ares_getsock() to get full control over the socket state.
868
+
869
+ * January 9, 2006
870
+
871
+ - Alexander Lazic improved the getservbyport_r() configure check.
872
+
873
+ * January 6, 2006
874
+
875
+ - Alexander Lazic pointed out that the buildconf should use the ACLOCAL_FLAGS
876
+ variable for easier controlling what it does and how it runs.
877
+
878
+ * January 5, 2006
879
+
880
+ - James Bursa fixed c-ares to find the hosts file on RISC OS, and made it
881
+ build with newer gcc versions that no longer defines "riscos".
882
+
883
+ * December 22
884
+
885
+ - Daniel Stenberg added ares_getsock() that extracts the set of sockets to
886
+ wait for action on. Similar to ares_fds() but not restricted to using
887
+ select() for the waiting.
888
+
889
+ * November 25
890
+
891
+ - Yang Tse fixed some send() / recv() compiler warnings
892
+
893
+ * September 18
894
+
895
+ - Added constants that will be used by ares_getaddrinfo
896
+
897
+ - Made ares_getnameinfo use the reentrant getservbyport (getservbyport_r) if it
898
+ is available to ensure it works properly in a threaded environment.
899
+
900
+ * September 10
901
+
902
+ - configure fix for detecting a member in the sockaddr_in6 struct which failed
903
+ on ipv6-enabled HP-UX 11.00
904
+
905
+ Version 1.3.0 (August 29, 2005)
906
+
907
+ * August 21
908
+
909
+ - Alfredo Tupone provided a fix for the Windows code in get_iphlpapi_dns_info()
910
+ when getting the DNS server etc.
911
+
912
+ * June 19
913
+
914
+ - Added some checks for the addrinfo structure.
915
+
916
+ * June 2
917
+
918
+ - William Ahern:
919
+
920
+ Make UDP sockets non-blocking. I've confirmed that at least on Linux 2.4 a
921
+ read event can come back from poll() on a valid SOCK_DGRAM socket but
922
+ recv(2) will still block. This patch doesn't ignore EAGAIN in
923
+ read_udp_packets(), though maybe it should. (This patch was edited by Daniel
924
+ Stenberg and a new configure test was added (imported from curl's configure)
925
+ to properly detect what non-blocking socket approach to use.)
926
+
927
+ I'm not quite sure how this was happening, but I've been seeing PTR queries
928
+ which seem to return empty responses. At least, they were empty when calling
929
+ ares_expand_name() on the record. Here's a patch which guarantees to
930
+ NUL-terminate the expanded name. The old behavior failed to NUL-terminate if
931
+ len was 0, and this was causing strlen() to run past the end of the buffer
932
+ after calling ares_expand_name() and getting ARES_SUCCESS as the return
933
+ value. If q is not greater than *s then it's equal and *s is always
934
+ allocated with at least one byte.
935
+
936
+ * May 16
937
+
938
+ - Added ares_getnameinfo which mimics the getnameinfo API (another feature
939
+ that could use testing).
940
+
941
+ * May 14
942
+
943
+ - Added an inet_ntop function from BIND for systems that do not have it.
944
+
945
+ * April 9
946
+
947
+ - Made sortlist support IPv6 (this can probably use some testing).
948
+
949
+ - Made sortlist support CIDR matching for IPv4.
950
+
951
+ * April 8
952
+
953
+ - Added preliminary IPv6 support to ares_gethostbyname. Currently, sortlist
954
+ does not work with IPv6. Also provided an implementation of bitncmp from
955
+ BIND for systems that do not supply this function. This will be used to add
956
+ IPv6 support to sortlist.
957
+
958
+ - Made ares_gethostbyaddr support IPv6 by specifying AF_INET6 as the family.
959
+ The function can lookup IPv6 addresses both from files (/etc/hosts) and
960
+ DNS lookups.
961
+
962
+ * April 7
963
+
964
+ - Tupone Alfredo fixed includes of arpa/nameser_compat.h to build fine on Mac
965
+ OS X.
966
+
967
+ * April 5
968
+
969
+ - Dominick Meglio: Provided implementations of inet_net_pton and inet_pton
970
+ from BIND for systems that do not include these functions.
971
+
972
+ * March 11, 2005
973
+
974
+ - Dominick Meglio added ares_parse_aaaa_reply.c and did various
975
+ adjustments. The first little steps towards IPv6 support!
976
+
977
+ * November 7
978
+
979
+ - Fixed the VC project and makefile to use ares_cancel and ares_version
980
+
981
+ * October 24
982
+
983
+ - The released ares_version.h from 1.2.1 says 1.2.0 due to a maketgz flaw.
984
+ This is now fixed.
985
+
986
+ Version 1.2.1 (October 20, 2004)
987
+
988
+ * September 29
989
+
990
+ - Henrik Stoerner fix: got a report that Tru64 Unix (the unix from Digital
991
+ when they made Alpha's) uses /etc/svc.conf for the purpose fixed below for
992
+ other OSes. He made c-ares check for and understand it if present.
993
+
994
+ - Now c-ares will use local host name lookup _before_ DNS resolving by default
995
+ if nothing else is told.
996
+
997
+ * September 26
998
+
999
+ - Henrik Stoerner: found out that c-ares does not look at the /etc/host.conf
1000
+ file to determine the sequence in which to search /etc/hosts and DNS. So on
1001
+ systems where this order is defined by /etc/host.conf instead of a "lookup"
1002
+ entry in /etc/resolv.conf, c-ares will always default to looking in DNS
1003
+ first, and /etc/hosts second.
1004
+
1005
+ c-ares now looks at
1006
+
1007
+ 1) resolv.conf (for the "lookup" line);
1008
+ 2) nsswitch.fon (for the "hosts:" line);
1009
+ 3) host.conf (for the "order" line).
1010
+
1011
+ First match wins.
1012
+
1013
+ - Dominick Meglio patched: C-ares on Windows assumed that the HOSTS file is
1014
+ located in a static location. It assumed
1015
+ C:\Windows\System32\Drivers\Etc. This is a poor assumption to make. In fact,
1016
+ the location of the HOSTS file can be changed via a registry setting.
1017
+
1018
+ There is a key called DatabasePath which specifies the path to the HOSTS
1019
+ file:
1020
+ http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.mspx
1021
+
1022
+ The patch will make c-ares correctly consult the registry for the location
1023
+ of this file.
1024
+
1025
+ * August 29
1026
+
1027
+ - Gisle Vanem fixed the MSVC build files.
1028
+
1029
+ * August 20
1030
+
1031
+ - Gisle Vanem made c-ares build and work with his Watt-32 TCP/IP stack.
1032
+
1033
+ * August 13
1034
+
1035
+ - Harshal Pradhan made a minor syntax change in ares_init.c to make it build
1036
+ fine with MSVC 7.1
1037
+
1038
+ * July 24
1039
+
1040
+ - Made the lib get built static only if --enable-debug is used.
1041
+
1042
+ - Gisle Vanem fixed:
1043
+
1044
+ Basically in loops like handle_errors(), 'query->next' was assigned a local
1045
+ variable and then query was referenced after the memory was freed by
1046
+ next_server(). I've changed that so next_server() and end_query() returns
1047
+ the next query. So callers should use this ret-value.
1048
+
1049
+ The next problem was that 'server->tcp_buffer_pos' had a random value at
1050
+ entry to 1st recv() (luckily causing Winsock to return ENOBUFS).
1051
+
1052
+ I've also added a ares_writev() for Windows to streamline the code a bit
1053
+ more.
1054
+
1055
+ * July 20
1056
+ - Fixed a few variable return types for some system calls. Made configure
1057
+ check for ssize_t to make it possible to use that when receiving the send()
1058
+ error code. This is necessary to prevent compiler warnings on some systems.
1059
+
1060
+ - Made configure create config.h, and all source files now include setup.h that
1061
+ might include the proper config.h (or a handicrafted alternative).
1062
+
1063
+ - Switched to 'ares_socket_t' type for sockets in ares, since Windows don't
1064
+ use 'int' for that.
1065
+
1066
+ - automake-ified and libool-ified c-ares. Now it builds libcares as a shared
1067
+ lib on most platforms if wanted. (This bloated the size of the release
1068
+ archive with another 200K!)
1069
+
1070
+ - Makefile.am now uses Makefile.inc for the c sources, h headers and man
1071
+ pages, to make it easier for other makefiles to use the exact same set of
1072
+ files.
1073
+
1074
+ - Adjusted 'maketgz' to use the new automake magic when building distribution
1075
+ archives.
1076
+
1077
+ - Anyone desires HTML and/or PDF versions of the man pages in the release
1078
+ archives?
1079
+
1080
+ * July 3
1081
+ - G�nter Knauf made c-ares build and run on Novell Netware.
1082
+
1083
+ * July 1
1084
+ - Gisle Vanem provided Makefile.dj to build with djgpp, added a few more djgpp
1085
+ fixes and made ares not use 'errno' to provide further info on Windows.
1086
+
1087
+ * June 30
1088
+ - Gisle Vanem made it build with djgpp and run fine with the Watt-32 stack.
1089
+
1090
+ * June 10
1091
+ - Gisle Vanem's init patch for Windows:
1092
+
1093
+ The init_by_resolv_conf() function fetches the DNS-server(s)
1094
+ from a series of registry branches.
1095
+
1096
+ This can be wrong in the case where DHCP has assigned nameservers, but the
1097
+ user has overridden these servers with other prefered settings. Then it's
1098
+ wrong to use the DHCPNAMESERVER setting in registry.
1099
+
1100
+ In the case of no global DHCP-assigned or fixed servers, but DNS server(s)
1101
+ per adapter, one has to query the adapter branches. But how can c-ares know
1102
+ which adapter is valid for use? AFAICS it can't. There could be one adapter
1103
+ that is down (e.g. a VPN adapter).
1104
+
1105
+ So it's better to leave this to the IP Helper API (iphlapi) available in
1106
+ Win-98/2000 and later. My patch falls-back to the old way if not available.
1107
+
1108
+ * June 8
1109
+ - James Bursa fixed an init issue for RISC OS.
1110
+
1111
+ * May 11
1112
+ - Nico Stappenbelt reported that when processing domain and search lines in
1113
+ the resolv.conf file, the first entry encountered is processed and used as
1114
+ the search list. According to the manual pages for both Linux, Solaris and
1115
+ Tru64, the last entry of either a domain or a search field is used.
1116
+
1117
+ This is now adjusted in the code
1118
+
1119
+ Version 1.2.0 (April 13, 2004)
1120
+
1121
+ * April 2, 2004
1122
+ - Updated various man pages to look nicer when converted to HTML on the web
1123
+ site.
1124
+
1125
+ * April 1, 2004
1126
+ - Dirk Manske provided a new function that is now named ares_cancel(). It is
1127
+ used to cancel/cleanup a resolve/request made using ares functions on the
1128
+ given ares channel. It does not destroy/kill the ares channel itself.
1129
+
1130
+ - Dominick Meglio cleaned up the formatting in several man pages.
1131
+
1132
+ * March 30, 2004
1133
+ - Dominick Meglio's new ares_expand_string. A helper function when decoding
1134
+ incoming DNS packages.
1135
+
1136
+ - Daniel Stenberg modified the Makefile.in to use a for loop for the man page
1137
+ installation to improve overview and make it easier to add man pages.
1138
+
1139
+ Version 1.1.0 (March 11, 2004)
1140
+
1141
+ * March 9, 2004
1142
+ - Gisle Vanem improved build on Windows.
1143
+
1144
+ * February 25, 2004
1145
+ - Dan Fandrich found a flaw in the Feb 22 fix.
1146
+
1147
+ - Added better configure --enable-debug logic (taken from the curl configure
1148
+ script). Added acinclude.m4 to the tarball.
1149
+
1150
+ * February 23, 2004
1151
+ - Removed ares_free_errmem(), the function, the file and the man page. It was
1152
+ not used and it did nothing.
1153
+
1154
+ - Fixed a lot of code that wasn't "64bit clean" and thus caused a lot of
1155
+ compiler warnings on picky compilers.
1156
+
1157
+ * February 22, 2004
1158
+ - Dominick Meglio made ares init support multiple name servers in the
1159
+ NameServer key on Windows.
1160
+
1161
+ * February 16, 2004
1162
+ - Modified ares_private.h to include libcurl's memory debug header if
1163
+ CURLDEBUG is set. This makes all the ares-functions supervised properly by
1164
+ the curl test suite. This also forced me to add inclusion of the
1165
+ ares_private.h header in a few more files that are using some kind of
1166
+ memory-related resources.
1167
+
1168
+ - Made the makefile only build ahost and adig if 'make demos' is used.
1169
+
1170
+ * February 10, 2004
1171
+ - Dirk Manske made ares_version.h installed with 'make install'
1172
+
1173
+ * February 4, 2004
1174
+ - ares_free_errmem() is subject for removal, it is simply present for future
1175
+ purposes, and since we removed the extra parameter in strerror() it won't
1176
+ be used by c-ares!
1177
+ - configure --enable-debug now enables picky compiler options if gcc is used
1178
+ - fixed several compiler warnings --enable-debug showed and Joerg Mueller-Tolk
1179
+ reported
1180
+
1181
+ Version 1.0.0 (February 3, 2004)
1182
+
1183
+ * February 3, 2004
1184
+ - now we produce the libcares.a library instead of the previous libares.a
1185
+ since we are no longer compatible
1186
+
1187
+ * February 2, 2004
1188
+
1189
+ - ares_strerror() has one argument less. This is the first official
1190
+ modification of the existing provided ares API.
1191
+
1192
+ * January 29, 2004
1193
+
1194
+ - Dirk Manske fixed how the socket is set non-blocking.
1195
+
1196
+ * January 4, 2004
1197
+
1198
+ - Dominick Meglio made the private gettimeofday() become ares_gettimeofday()
1199
+ instead in order to not pollute the name space and risk colliding with
1200
+ other libraries' versions of this function.
1201
+
1202
+ * October 24, 2003. Daniel Stenberg
1203
+
1204
+ Added ares_version().
1205
+
1206
+ Version 1.0-pre1 (8 October 2003)
1207
+
1208
+ - James Bursa made it run on RISC OS
1209
+
1210
+ - Dominick Meglio made it run fine on NT4
1211
+
1212
+ - Duncan Wilcox made it work fine on Mac OS X
1213
+
1214
+ - Daniel Stenberg adjusted the windows port
1215
+
1216
+ - liren at vivisimo.com made the initial windows port
1217
+
1218
+ * Imported the sources from ares 1.1.1