noderb 0.0.2

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