noderb 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,78 @@
1
+
2
+ /* Copyright (C) 2005 by Dominick Meglio
3
+ *
4
+ * Permission to use, copy, modify, and distribute this
5
+ * software and its documentation for any purpose and without
6
+ * fee is hereby granted, provided that the above copyright
7
+ * notice appear in all copies and that both that copyright
8
+ * notice and this permission notice appear in supporting
9
+ * documentation, and that the name of M.I.T. not be used in
10
+ * advertising or publicity pertaining to distribution of the
11
+ * software without specific, written prior permission.
12
+ * M.I.T. makes no representations about the suitability of
13
+ * this software for any purpose. It is provided "as is"
14
+ * without express or implied warranty.
15
+ */
16
+
17
+ #ifndef ARES_IPV6_H
18
+ #define ARES_IPV6_H
19
+
20
+ #ifndef HAVE_PF_INET6
21
+ #define PF_INET6 AF_INET6
22
+ #endif
23
+
24
+ #ifndef HAVE_STRUCT_SOCKADDR_IN6
25
+ struct sockaddr_in6
26
+ {
27
+ unsigned short sin6_family;
28
+ unsigned short sin6_port;
29
+ unsigned long sin6_flowinfo;
30
+ struct ares_in6_addr sin6_addr;
31
+ unsigned int sin6_scope_id;
32
+ };
33
+ #endif
34
+
35
+ #ifndef HAVE_STRUCT_ADDRINFO
36
+ struct addrinfo
37
+ {
38
+ int ai_flags;
39
+ int ai_family;
40
+ int ai_socktype;
41
+ int ai_protocol;
42
+ ares_socklen_t ai_addrlen; /* Follow rfc3493 struct addrinfo */
43
+ char *ai_canonname;
44
+ struct sockaddr *ai_addr;
45
+ struct addrinfo *ai_next;
46
+ };
47
+ #endif
48
+
49
+ #ifndef NS_IN6ADDRSZ
50
+ #if SIZEOF_STRUCT_IN6_ADDR == 0
51
+ /* We cannot have it set to zero, so we pick a fixed value here */
52
+ #define NS_IN6ADDRSZ 16
53
+ #else
54
+ #define NS_IN6ADDRSZ SIZEOF_STRUCT_IN6_ADDR
55
+ #endif
56
+ #endif
57
+
58
+ #ifndef NS_INADDRSZ
59
+ #define NS_INADDRSZ SIZEOF_STRUCT_IN_ADDR
60
+ #endif
61
+
62
+ #ifndef NS_INT16SZ
63
+ #define NS_INT16SZ 2
64
+ #endif
65
+
66
+ #ifndef IF_NAMESIZE
67
+ #ifdef IFNAMSIZ
68
+ #define IF_NAMESIZE IFNAMSIZ
69
+ #else
70
+ #define IF_NAMESIZE 256
71
+ #endif
72
+ #endif
73
+
74
+ /* Defined in ares_net_pton.c for no particular reason. */
75
+ extern const struct ares_in6_addr ares_in6addr_any; /* :: */
76
+
77
+
78
+ #endif /* ARES_IPV6_H */
@@ -0,0 +1,132 @@
1
+
2
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
3
+ * Copyright (C) 2004-2009 by Daniel Stenberg
4
+ *
5
+ * Permission to use, copy, modify, and distribute this
6
+ * software and its documentation for any purpose and without
7
+ * fee is hereby granted, provided that the above copyright
8
+ * notice appear in all copies and that both that copyright
9
+ * notice and this permission notice appear in supporting
10
+ * documentation, and that the name of M.I.T. not be used in
11
+ * advertising or publicity pertaining to distribution of the
12
+ * software without specific, written prior permission.
13
+ * M.I.T. makes no representations about the suitability of
14
+ * this software for any purpose. It is provided "as is"
15
+ * without express or implied warranty.
16
+ */
17
+
18
+ #include "ares_setup.h"
19
+
20
+ #include "ares.h"
21
+ #include "ares_library_init.h"
22
+ #include "ares_private.h"
23
+
24
+ /* library-private global and unique instance vars */
25
+
26
+ #ifdef USE_WINSOCK
27
+ fpGetNetworkParams_t ares_fpGetNetworkParams = ZERO_NULL;
28
+ fpSystemFunction036_t ares_fpSystemFunction036 = ZERO_NULL;
29
+ #endif
30
+
31
+ /* library-private global vars with source visibility restricted to this file */
32
+
33
+ static unsigned int ares_initialized;
34
+ static int ares_init_flags;
35
+
36
+ #ifdef USE_WINSOCK
37
+ static HMODULE hnd_iphlpapi;
38
+ static HMODULE hnd_advapi32;
39
+ #endif
40
+
41
+
42
+ static int ares_win32_init(void)
43
+ {
44
+ #ifdef USE_WINSOCK
45
+
46
+ hnd_iphlpapi = 0;
47
+ hnd_iphlpapi = LoadLibrary("iphlpapi.dll");
48
+ if (!hnd_iphlpapi)
49
+ return ARES_ELOADIPHLPAPI;
50
+
51
+ ares_fpGetNetworkParams = (fpGetNetworkParams_t)
52
+ GetProcAddress(hnd_iphlpapi, "GetNetworkParams");
53
+ if (!ares_fpGetNetworkParams)
54
+ {
55
+ FreeLibrary(hnd_iphlpapi);
56
+ return ARES_EADDRGETNETWORKPARAMS;
57
+ }
58
+
59
+ /*
60
+ * When advapi32.dll is unavailable or advapi32.dll has no SystemFunction036,
61
+ * also known as RtlGenRandom, which is the case for Windows versions prior
62
+ * to WinXP then c-ares uses portable rand() function. Then don't error here.
63
+ */
64
+
65
+ hnd_advapi32 = 0;
66
+ hnd_advapi32 = LoadLibrary("advapi32.dll");
67
+ if (hnd_advapi32)
68
+ {
69
+ ares_fpSystemFunction036 = (fpSystemFunction036_t)
70
+ GetProcAddress(hnd_advapi32, "SystemFunction036");
71
+ }
72
+
73
+ #endif
74
+ return ARES_SUCCESS;
75
+ }
76
+
77
+
78
+ static void ares_win32_cleanup(void)
79
+ {
80
+ #ifdef USE_WINSOCK
81
+ if (hnd_advapi32)
82
+ FreeLibrary(hnd_advapi32);
83
+ if (hnd_iphlpapi)
84
+ FreeLibrary(hnd_iphlpapi);
85
+ #endif
86
+ }
87
+
88
+
89
+ int ares_library_init(int flags)
90
+ {
91
+ int res;
92
+
93
+ if (ares_initialized)
94
+ return ARES_SUCCESS;
95
+ ares_initialized++;
96
+
97
+ if (flags & ARES_LIB_INIT_WIN32)
98
+ {
99
+ res = ares_win32_init();
100
+ if (res != ARES_SUCCESS)
101
+ return res;
102
+ }
103
+
104
+ ares_init_flags = flags;
105
+
106
+ return ARES_SUCCESS;
107
+ }
108
+
109
+
110
+ void ares_library_cleanup(void)
111
+ {
112
+ if (!ares_initialized)
113
+ return;
114
+ ares_initialized--;
115
+
116
+ if (ares_init_flags & ARES_LIB_INIT_WIN32)
117
+ ares_win32_cleanup();
118
+
119
+ ares_init_flags = ARES_LIB_INIT_NONE;
120
+ }
121
+
122
+
123
+ int ares_library_initialized(void)
124
+ {
125
+ #ifdef USE_WINSOCK
126
+ if (!ares_initialized)
127
+ return ARES_ENOTINITIALIZED;
128
+ #endif
129
+ return ARES_SUCCESS;
130
+ }
131
+
132
+
@@ -0,0 +1,39 @@
1
+ #ifndef HEADER_CARES_LIBRARY_INIT_H
2
+ #define HEADER_CARES_LIBRARY_INIT_H
3
+
4
+
5
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
6
+ * Copyright (C) 2004-2009 by Daniel Stenberg
7
+ *
8
+ * Permission to use, copy, modify, and distribute this
9
+ * software and its documentation for any purpose and without
10
+ * fee is hereby granted, provided that the above copyright
11
+ * notice appear in all copies and that both that copyright
12
+ * notice and this permission notice appear in supporting
13
+ * documentation, and that the name of M.I.T. not be used in
14
+ * advertising or publicity pertaining to distribution of the
15
+ * software without specific, written prior permission.
16
+ * M.I.T. makes no representations about the suitability of
17
+ * this software for any purpose. It is provided "as is"
18
+ * without express or implied warranty.
19
+ */
20
+
21
+ #include "ares_setup.h"
22
+
23
+ #ifdef USE_WINSOCK
24
+
25
+ #include <iphlpapi.h>
26
+
27
+ typedef DWORD (WINAPI *fpGetNetworkParams_t) (FIXED_INFO*, DWORD*);
28
+ typedef BOOLEAN (APIENTRY *fpSystemFunction036_t) (void*, ULONG);
29
+
30
+ /* Forward-declaration of variables defined in ares_library_init.c */
31
+ /* that are global and unique instances for whole c-ares library. */
32
+
33
+ extern fpGetNetworkParams_t ares_fpGetNetworkParams;
34
+ extern fpSystemFunction036_t ares_fpSystemFunction036;
35
+
36
+ #endif /* USE_WINSOCK */
37
+
38
+ #endif /* HEADER_CARES_LIBRARY_INIT_H */
39
+
@@ -0,0 +1,86 @@
1
+
2
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
3
+ *
4
+ * Permission to use, copy, modify, and distribute this
5
+ * software and its documentation for any purpose and without
6
+ * fee is hereby granted, provided that the above copyright
7
+ * notice appear in all copies and that both that copyright
8
+ * notice and this permission notice appear in supporting
9
+ * documentation, and that the name of M.I.T. not be used in
10
+ * advertising or publicity pertaining to distribution of the
11
+ * software without specific, written prior permission.
12
+ * M.I.T. makes no representations about the suitability of
13
+ * this software for any purpose. It is provided "as is"
14
+ * without express or implied warranty.
15
+ */
16
+
17
+ #include "ares_setup.h"
18
+
19
+ #include "ares.h"
20
+ #include "ares_private.h"
21
+
22
+ /* Routines for managing doubly-linked circular linked lists with a
23
+ * dummy head.
24
+ */
25
+
26
+ /* Initialize a new head node */
27
+ void ares__init_list_head(struct list_node* head) {
28
+ head->prev = head;
29
+ head->next = head;
30
+ head->data = NULL;
31
+ }
32
+
33
+ /* Initialize a list node */
34
+ void ares__init_list_node(struct list_node* node, void* d) {
35
+ node->prev = NULL;
36
+ node->next = NULL;
37
+ node->data = d;
38
+ }
39
+
40
+ /* Returns true iff the given list is empty */
41
+ int ares__is_list_empty(struct list_node* head) {
42
+ return ((head->next == head) && (head->prev == head));
43
+ }
44
+
45
+ /* Inserts new_node before old_node */
46
+ void ares__insert_in_list(struct list_node* new_node,
47
+ struct list_node* old_node) {
48
+ new_node->next = old_node;
49
+ new_node->prev = old_node->prev;
50
+ old_node->prev->next = new_node;
51
+ old_node->prev = new_node;
52
+ }
53
+
54
+ /* Removes the node from the list it's in, if any */
55
+ void ares__remove_from_list(struct list_node* node) {
56
+ if (node->next != NULL) {
57
+ node->prev->next = node->next;
58
+ node->next->prev = node->prev;
59
+ node->prev = NULL;
60
+ node->next = NULL;
61
+ }
62
+ }
63
+
64
+ /* Swap the contents of two lists */
65
+ void ares__swap_lists(struct list_node* head_a,
66
+ struct list_node* head_b) {
67
+ int is_a_empty = ares__is_list_empty(head_a);
68
+ int is_b_empty = ares__is_list_empty(head_b);
69
+ struct list_node old_a = *head_a;
70
+ struct list_node old_b = *head_b;
71
+
72
+ if (is_a_empty) {
73
+ ares__init_list_head(head_b);
74
+ } else {
75
+ *head_b = old_a;
76
+ old_a.next->prev = head_b;
77
+ old_a.prev->next = head_b;
78
+ }
79
+ if (is_b_empty) {
80
+ ares__init_list_head(head_a);
81
+ } else {
82
+ *head_a = old_b;
83
+ old_b.next->prev = head_a;
84
+ old_b.prev->next = head_a;
85
+ }
86
+ }
@@ -0,0 +1,42 @@
1
+ #ifndef __ARES_LLIST_H
2
+ #define __ARES_LLIST_H
3
+
4
+
5
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
6
+ *
7
+ * Permission to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose and without
9
+ * fee is hereby granted, provided that the above copyright
10
+ * notice appear in all copies and that both that copyright
11
+ * notice and this permission notice appear in supporting
12
+ * documentation, and that the name of M.I.T. not be used in
13
+ * advertising or publicity pertaining to distribution of the
14
+ * software without specific, written prior permission.
15
+ * M.I.T. makes no representations about the suitability of
16
+ * this software for any purpose. It is provided "as is"
17
+ * without express or implied warranty.
18
+ */
19
+
20
+
21
+ /* Node definition for circular, doubly-linked list */
22
+ struct list_node {
23
+ struct list_node *prev;
24
+ struct list_node *next;
25
+ void* data;
26
+ };
27
+
28
+ void ares__init_list_head(struct list_node* head);
29
+
30
+ void ares__init_list_node(struct list_node* node, void* d);
31
+
32
+ int ares__is_list_empty(struct list_node* head);
33
+
34
+ void ares__insert_in_list(struct list_node* new_node,
35
+ struct list_node* old_node);
36
+
37
+ void ares__remove_from_list(struct list_node* node);
38
+
39
+ void ares__swap_lists(struct list_node* head_a,
40
+ struct list_node* head_b);
41
+
42
+ #endif /* __ARES_LLIST_H */
@@ -0,0 +1,195 @@
1
+
2
+ /* Copyright 1998 by the Massachusetts Institute of Technology.
3
+ *
4
+ * Permission to use, copy, modify, and distribute this
5
+ * software and its documentation for any purpose and without
6
+ * fee is hereby granted, provided that the above copyright
7
+ * notice appear in all copies and that both that copyright
8
+ * notice and this permission notice appear in supporting
9
+ * documentation, and that the name of M.I.T. not be used in
10
+ * advertising or publicity pertaining to distribution of the
11
+ * software without specific, written prior permission.
12
+ * M.I.T. makes no representations about the suitability of
13
+ * this software for any purpose. It is provided "as is"
14
+ * without express or implied warranty.
15
+ */
16
+
17
+ #include "ares_setup.h"
18
+
19
+ #ifdef HAVE_SYS_SOCKET_H
20
+ # include <sys/socket.h>
21
+ #endif
22
+ #ifdef HAVE_NETINET_IN_H
23
+ # include <netinet/in.h>
24
+ #endif
25
+ #ifdef HAVE_ARPA_NAMESER_H
26
+ # include <arpa/nameser.h>
27
+ #else
28
+ # include "nameser.h"
29
+ #endif
30
+ #ifdef HAVE_ARPA_NAMESER_COMPAT_H
31
+ # include <arpa/nameser_compat.h>
32
+ #endif
33
+
34
+ #include <stdlib.h>
35
+ #include <string.h>
36
+ #include "ares.h"
37
+ #include "ares_dns.h"
38
+ #include "ares_private.h"
39
+
40
+ /* Header format, from RFC 1035:
41
+ * 1 1 1 1 1 1
42
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
43
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
44
+ * | ID |
45
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
46
+ * |QR| Opcode |AA|TC|RD|RA| Z | RCODE |
47
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
48
+ * | QDCOUNT |
49
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
50
+ * | ANCOUNT |
51
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
52
+ * | NSCOUNT |
53
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
54
+ * | ARCOUNT |
55
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
56
+ *
57
+ * AA, TC, RA, and RCODE are only set in responses. Brief description
58
+ * of the remaining fields:
59
+ * ID Identifier to match responses with queries
60
+ * QR Query (0) or response (1)
61
+ * Opcode For our purposes, always QUERY
62
+ * RD Recursion desired
63
+ * Z Reserved (zero)
64
+ * QDCOUNT Number of queries
65
+ * ANCOUNT Number of answers
66
+ * NSCOUNT Number of name server records
67
+ * ARCOUNT Number of additional records
68
+ *
69
+ * Question format, from RFC 1035:
70
+ * 1 1 1 1 1 1
71
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
72
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
73
+ * | |
74
+ * / QNAME /
75
+ * / /
76
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
77
+ * | QTYPE |
78
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
79
+ * | QCLASS |
80
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
81
+ *
82
+ * The query name is encoded as a series of labels, each represented
83
+ * as a one-byte length (maximum 63) followed by the text of the
84
+ * label. The list is terminated by a label of length zero (which can
85
+ * be thought of as the root domain).
86
+ */
87
+
88
+ int ares_mkquery(const char *name, int dnsclass, int type, unsigned short id,
89
+ int rd, unsigned char **buf, int *buflen)
90
+ {
91
+ int len;
92
+ unsigned char *q;
93
+ const char *p;
94
+
95
+ /* Set our results early, in case we bail out early with an error. */
96
+ *buflen = 0;
97
+ *buf = NULL;
98
+
99
+ /* Compute the length of the encoded name so we can check buflen.
100
+ * Start counting at 1 for the zero-length label at the end. */
101
+ len = 1;
102
+ for (p = name; *p; p++)
103
+ {
104
+ if (*p == '\\' && *(p + 1) != 0)
105
+ p++;
106
+ len++;
107
+ }
108
+ /* If there are n periods in the name, there are n + 1 labels, and
109
+ * thus n + 1 length fields, unless the name is empty or ends with a
110
+ * period. So add 1 unless name is empty or ends with a period.
111
+ */
112
+ if (*name && *(p - 1) != '.')
113
+ len++;
114
+
115
+ /* Immediately reject names that are longer than the maximum of 255
116
+ * bytes that's specified in RFC 1035 ("To simplify implementations,
117
+ * the total length of a domain name (i.e., label octets and label
118
+ * length octets) is restricted to 255 octets or less."). We aren't
119
+ * doing this just to be a stickler about RFCs. For names that are
120
+ * too long, 'dnscache' closes its TCP connection to us immediately
121
+ * (when using TCP) and ignores the request when using UDP, and
122
+ * BIND's named returns ServFail (TCP or UDP). Sending a request
123
+ * that we know will cause 'dnscache' to close the TCP connection is
124
+ * painful, since that makes any other outstanding requests on that
125
+ * connection fail. And sending a UDP request that we know
126
+ * 'dnscache' will ignore is bad because resources will be tied up
127
+ * until we time-out the request.
128
+ */
129
+ if (len > MAXCDNAME)
130
+ return ARES_EBADNAME;
131
+
132
+ *buflen = len + HFIXEDSZ + QFIXEDSZ;
133
+ *buf = malloc(*buflen);
134
+ if (!*buf)
135
+ return ARES_ENOMEM;
136
+
137
+ /* Set up the header. */
138
+ q = *buf;
139
+ memset(q, 0, HFIXEDSZ);
140
+ DNS_HEADER_SET_QID(q, id);
141
+ DNS_HEADER_SET_OPCODE(q, QUERY);
142
+ if (rd) {
143
+ DNS_HEADER_SET_RD(q, 1);
144
+ }
145
+ else {
146
+ DNS_HEADER_SET_RD(q, 0);
147
+ }
148
+ DNS_HEADER_SET_QDCOUNT(q, 1);
149
+
150
+ /* A name of "." is a screw case for the loop below, so adjust it. */
151
+ if (strcmp(name, ".") == 0)
152
+ name++;
153
+
154
+ /* Start writing out the name after the header. */
155
+ q += HFIXEDSZ;
156
+ while (*name)
157
+ {
158
+ if (*name == '.')
159
+ return ARES_EBADNAME;
160
+
161
+ /* Count the number of bytes in this label. */
162
+ len = 0;
163
+ for (p = name; *p && *p != '.'; p++)
164
+ {
165
+ if (*p == '\\' && *(p + 1) != 0)
166
+ p++;
167
+ len++;
168
+ }
169
+ if (len > MAXLABEL)
170
+ return ARES_EBADNAME;
171
+
172
+ /* Encode the length and copy the data. */
173
+ *q++ = (unsigned char)len;
174
+ for (p = name; *p && *p != '.'; p++)
175
+ {
176
+ if (*p == '\\' && *(p + 1) != 0)
177
+ p++;
178
+ *q++ = *p;
179
+ }
180
+
181
+ /* Go to the next label and repeat, unless we hit the end. */
182
+ if (!*p)
183
+ break;
184
+ name = p + 1;
185
+ }
186
+
187
+ /* Add the zero-length label at the end. */
188
+ *q++ = 0;
189
+
190
+ /* Finish off the question with the type and class. */
191
+ DNS_QUESTION_SET_TYPE(q, type);
192
+ DNS_QUESTION_SET_CLASS(q, dnsclass);
193
+
194
+ return ARES_SUCCESS;
195
+ }
@@ -0,0 +1,59 @@
1
+
2
+ /* Copyright (C) 2010 by Daniel Stenberg
3
+ *
4
+ * Permission to use, copy, modify, and distribute this
5
+ * software and its documentation for any purpose and without
6
+ * fee is hereby granted, provided that the above copyright
7
+ * notice appear in all copies and that both that copyright
8
+ * notice and this permission notice appear in supporting
9
+ * documentation, and that the name of M.I.T. not be used in
10
+ * advertising or publicity pertaining to distribution of the
11
+ * software without specific, written prior permission.
12
+ * M.I.T. makes no representations about the suitability of
13
+ * this software for any purpose. It is provided "as is"
14
+ * without express or implied warranty.
15
+ */
16
+
17
+
18
+ #include "ares_setup.h"
19
+
20
+ #include "ares_nowarn.h"
21
+
22
+ #define CARES_MASK_UINT (~(unsigned int) 0)
23
+ #define CARES_MASK_SINT (CARES_MASK_UINT >> 1)
24
+
25
+ /*
26
+ ** size_t to signed int
27
+ */
28
+
29
+ int aresx_uztosi(size_t uznum)
30
+ {
31
+ #ifdef __INTEL_COMPILER
32
+ # pragma warning(push)
33
+ # pragma warning(disable:810) /* conversion may lose significant bits */
34
+ #endif
35
+
36
+ return (int)(uznum & (size_t) CARES_MASK_SINT);
37
+
38
+ #ifdef __INTEL_COMPILER
39
+ # pragma warning(pop)
40
+ #endif
41
+ }
42
+
43
+ /*
44
+ ** signed long to signed int
45
+ */
46
+
47
+ int aresx_sltosi(long slnum)
48
+ {
49
+ #ifdef __INTEL_COMPILER
50
+ # pragma warning(push)
51
+ # pragma warning(disable:810) /* conversion may lose significant bits */
52
+ #endif
53
+
54
+ return (int)(slnum & (long) CARES_MASK_SINT);
55
+
56
+ #ifdef __INTEL_COMPILER
57
+ # pragma warning(pop)
58
+ #endif
59
+ }
@@ -0,0 +1,24 @@
1
+ #ifndef HEADER_CARES_NOWARN_H
2
+ #define HEADER_CARES_NOWARN_H
3
+
4
+
5
+ /* Copyright (C) 2010 by Daniel Stenberg
6
+ *
7
+ * Permission to use, copy, modify, and distribute this
8
+ * software and its documentation for any purpose and without
9
+ * fee is hereby granted, provided that the above copyright
10
+ * notice appear in all copies and that both that copyright
11
+ * notice and this permission notice appear in supporting
12
+ * documentation, and that the name of M.I.T. not be used in
13
+ * advertising or publicity pertaining to distribution of the
14
+ * software without specific, written prior permission.
15
+ * M.I.T. makes no representations about the suitability of
16
+ * this software for any purpose. It is provided "as is"
17
+ * without express or implied warranty.
18
+ */
19
+
20
+ int aresx_uztosi(size_t uznum);
21
+
22
+ int aresx_sltosi(long slnum);
23
+
24
+ #endif /* HEADER_CARES_NOWARN_H */