racer 0.1.3

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 (336) hide show
  1. data/LICENSE +22 -0
  2. data/bin/racer +33 -0
  3. data/ext/libuv/AUTHORS +45 -0
  4. data/ext/libuv/LICENSE +42 -0
  5. data/ext/libuv/Makefile +119 -0
  6. data/ext/libuv/README.md +88 -0
  7. data/ext/libuv/build/gcc_version.py +20 -0
  8. data/ext/libuv/common.gypi +176 -0
  9. data/ext/libuv/config-mingw.mk +61 -0
  10. data/ext/libuv/config-unix.mk +171 -0
  11. data/ext/libuv/gyp_uv +64 -0
  12. data/ext/libuv/include/ares.h +591 -0
  13. data/ext/libuv/include/ares_version.h +24 -0
  14. data/ext/libuv/include/uv-private/eio.h +403 -0
  15. data/ext/libuv/include/uv-private/ev.h +838 -0
  16. data/ext/libuv/include/uv-private/ngx-queue.h +108 -0
  17. data/ext/libuv/include/uv-private/tree.h +768 -0
  18. data/ext/libuv/include/uv-private/uv-unix.h +310 -0
  19. data/ext/libuv/include/uv-private/uv-win.h +510 -0
  20. data/ext/libuv/include/uv.h +1796 -0
  21. data/ext/libuv/src/ares/AUTHORS +37 -0
  22. data/ext/libuv/src/ares/CHANGES +1218 -0
  23. data/ext/libuv/src/ares/CMakeLists.txt +22 -0
  24. data/ext/libuv/src/ares/NEWS +21 -0
  25. data/ext/libuv/src/ares/README +60 -0
  26. data/ext/libuv/src/ares/README.cares +13 -0
  27. data/ext/libuv/src/ares/README.msvc +142 -0
  28. data/ext/libuv/src/ares/README.node +21 -0
  29. data/ext/libuv/src/ares/RELEASE-NOTES +26 -0
  30. data/ext/libuv/src/ares/TODO +23 -0
  31. data/ext/libuv/src/ares/ares__close_sockets.c +66 -0
  32. data/ext/libuv/src/ares/ares__get_hostent.c +263 -0
  33. data/ext/libuv/src/ares/ares__read_line.c +71 -0
  34. data/ext/libuv/src/ares/ares__timeval.c +111 -0
  35. data/ext/libuv/src/ares/ares_cancel.c +63 -0
  36. data/ext/libuv/src/ares/ares_data.c +190 -0
  37. data/ext/libuv/src/ares/ares_data.h +65 -0
  38. data/ext/libuv/src/ares/ares_destroy.c +105 -0
  39. data/ext/libuv/src/ares/ares_dns.h +90 -0
  40. data/ext/libuv/src/ares/ares_expand_name.c +200 -0
  41. data/ext/libuv/src/ares/ares_expand_string.c +75 -0
  42. data/ext/libuv/src/ares/ares_fds.c +63 -0
  43. data/ext/libuv/src/ares/ares_free_hostent.c +42 -0
  44. data/ext/libuv/src/ares/ares_free_string.c +25 -0
  45. data/ext/libuv/src/ares/ares_getenv.c +30 -0
  46. data/ext/libuv/src/ares/ares_getenv.h +26 -0
  47. data/ext/libuv/src/ares/ares_gethostbyaddr.c +301 -0
  48. data/ext/libuv/src/ares/ares_gethostbyname.c +523 -0
  49. data/ext/libuv/src/ares/ares_getnameinfo.c +427 -0
  50. data/ext/libuv/src/ares/ares_getopt.c +122 -0
  51. data/ext/libuv/src/ares/ares_getopt.h +53 -0
  52. data/ext/libuv/src/ares/ares_getsock.c +72 -0
  53. data/ext/libuv/src/ares/ares_init.c +1809 -0
  54. data/ext/libuv/src/ares/ares_iphlpapi.h +221 -0
  55. data/ext/libuv/src/ares/ares_ipv6.h +78 -0
  56. data/ext/libuv/src/ares/ares_library_init.c +142 -0
  57. data/ext/libuv/src/ares/ares_library_init.h +42 -0
  58. data/ext/libuv/src/ares/ares_llist.c +86 -0
  59. data/ext/libuv/src/ares/ares_llist.h +42 -0
  60. data/ext/libuv/src/ares/ares_mkquery.c +195 -0
  61. data/ext/libuv/src/ares/ares_nowarn.c +181 -0
  62. data/ext/libuv/src/ares/ares_nowarn.h +55 -0
  63. data/ext/libuv/src/ares/ares_options.c +248 -0
  64. data/ext/libuv/src/ares/ares_parse_a_reply.c +263 -0
  65. data/ext/libuv/src/ares/ares_parse_aaaa_reply.c +259 -0
  66. data/ext/libuv/src/ares/ares_parse_mx_reply.c +170 -0
  67. data/ext/libuv/src/ares/ares_parse_ns_reply.c +182 -0
  68. data/ext/libuv/src/ares/ares_parse_ptr_reply.c +217 -0
  69. data/ext/libuv/src/ares/ares_parse_srv_reply.c +179 -0
  70. data/ext/libuv/src/ares/ares_parse_txt_reply.c +201 -0
  71. data/ext/libuv/src/ares/ares_platform.c +11035 -0
  72. data/ext/libuv/src/ares/ares_platform.h +43 -0
  73. data/ext/libuv/src/ares/ares_private.h +355 -0
  74. data/ext/libuv/src/ares/ares_process.c +1295 -0
  75. data/ext/libuv/src/ares/ares_query.c +183 -0
  76. data/ext/libuv/src/ares/ares_rules.h +144 -0
  77. data/ext/libuv/src/ares/ares_search.c +321 -0
  78. data/ext/libuv/src/ares/ares_send.c +134 -0
  79. data/ext/libuv/src/ares/ares_setup.h +199 -0
  80. data/ext/libuv/src/ares/ares_strcasecmp.c +66 -0
  81. data/ext/libuv/src/ares/ares_strcasecmp.h +30 -0
  82. data/ext/libuv/src/ares/ares_strdup.c +42 -0
  83. data/ext/libuv/src/ares/ares_strdup.h +26 -0
  84. data/ext/libuv/src/ares/ares_strerror.c +56 -0
  85. data/ext/libuv/src/ares/ares_timeout.c +80 -0
  86. data/ext/libuv/src/ares/ares_version.c +11 -0
  87. data/ext/libuv/src/ares/ares_writev.c +79 -0
  88. data/ext/libuv/src/ares/ares_writev.h +36 -0
  89. data/ext/libuv/src/ares/bitncmp.c +59 -0
  90. data/ext/libuv/src/ares/bitncmp.h +26 -0
  91. data/ext/libuv/src/ares/config_cygwin/ares_config.h +512 -0
  92. data/ext/libuv/src/ares/config_darwin/ares_config.h +512 -0
  93. data/ext/libuv/src/ares/config_freebsd/ares_config.h +512 -0
  94. data/ext/libuv/src/ares/config_linux/ares_config.h +512 -0
  95. data/ext/libuv/src/ares/config_netbsd/ares_config.h +512 -0
  96. data/ext/libuv/src/ares/config_openbsd/ares_config.h +512 -0
  97. data/ext/libuv/src/ares/config_sunos/ares_config.h +512 -0
  98. data/ext/libuv/src/ares/config_win32/ares_config.h +369 -0
  99. data/ext/libuv/src/ares/get_ver.awk +35 -0
  100. data/ext/libuv/src/ares/inet_net_pton.c +451 -0
  101. data/ext/libuv/src/ares/inet_net_pton.h +31 -0
  102. data/ext/libuv/src/ares/inet_ntop.c +208 -0
  103. data/ext/libuv/src/ares/inet_ntop.h +26 -0
  104. data/ext/libuv/src/ares/nameser.h +203 -0
  105. data/ext/libuv/src/ares/setup_once.h +504 -0
  106. data/ext/libuv/src/ares/windows_port.c +22 -0
  107. data/ext/libuv/src/cares.c +225 -0
  108. data/ext/libuv/src/fs-poll.c +237 -0
  109. data/ext/libuv/src/unix/async.c +119 -0
  110. data/ext/libuv/src/unix/core.c +647 -0
  111. data/ext/libuv/src/unix/cygwin.c +84 -0
  112. data/ext/libuv/src/unix/darwin.c +341 -0
  113. data/ext/libuv/src/unix/dl.c +83 -0
  114. data/ext/libuv/src/unix/eio/Changes +63 -0
  115. data/ext/libuv/src/unix/eio/LICENSE +36 -0
  116. data/ext/libuv/src/unix/eio/Makefile.am +15 -0
  117. data/ext/libuv/src/unix/eio/aclocal.m4 +8957 -0
  118. data/ext/libuv/src/unix/eio/autogen.sh +3 -0
  119. data/ext/libuv/src/unix/eio/config.h.in +86 -0
  120. data/ext/libuv/src/unix/eio/config_cygwin.h +80 -0
  121. data/ext/libuv/src/unix/eio/config_darwin.h +141 -0
  122. data/ext/libuv/src/unix/eio/config_freebsd.h +81 -0
  123. data/ext/libuv/src/unix/eio/config_linux.h +94 -0
  124. data/ext/libuv/src/unix/eio/config_netbsd.h +81 -0
  125. data/ext/libuv/src/unix/eio/config_openbsd.h +137 -0
  126. data/ext/libuv/src/unix/eio/config_sunos.h +84 -0
  127. data/ext/libuv/src/unix/eio/configure.ac +22 -0
  128. data/ext/libuv/src/unix/eio/demo.c +194 -0
  129. data/ext/libuv/src/unix/eio/ecb.h +370 -0
  130. data/ext/libuv/src/unix/eio/eio.3 +3428 -0
  131. data/ext/libuv/src/unix/eio/eio.c +2593 -0
  132. data/ext/libuv/src/unix/eio/eio.pod +969 -0
  133. data/ext/libuv/src/unix/eio/libeio.m4 +195 -0
  134. data/ext/libuv/src/unix/eio/xthread.h +164 -0
  135. data/ext/libuv/src/unix/error.c +104 -0
  136. data/ext/libuv/src/unix/ev/Changes +388 -0
  137. data/ext/libuv/src/unix/ev/LICENSE +36 -0
  138. data/ext/libuv/src/unix/ev/Makefile.am +18 -0
  139. data/ext/libuv/src/unix/ev/Makefile.in +771 -0
  140. data/ext/libuv/src/unix/ev/README +58 -0
  141. data/ext/libuv/src/unix/ev/aclocal.m4 +8957 -0
  142. data/ext/libuv/src/unix/ev/autogen.sh +6 -0
  143. data/ext/libuv/src/unix/ev/config.guess +1526 -0
  144. data/ext/libuv/src/unix/ev/config.h.in +125 -0
  145. data/ext/libuv/src/unix/ev/config.sub +1658 -0
  146. data/ext/libuv/src/unix/ev/config_cygwin.h +123 -0
  147. data/ext/libuv/src/unix/ev/config_darwin.h +122 -0
  148. data/ext/libuv/src/unix/ev/config_freebsd.h +120 -0
  149. data/ext/libuv/src/unix/ev/config_linux.h +141 -0
  150. data/ext/libuv/src/unix/ev/config_netbsd.h +120 -0
  151. data/ext/libuv/src/unix/ev/config_openbsd.h +126 -0
  152. data/ext/libuv/src/unix/ev/config_sunos.h +122 -0
  153. data/ext/libuv/src/unix/ev/configure +13037 -0
  154. data/ext/libuv/src/unix/ev/configure.ac +18 -0
  155. data/ext/libuv/src/unix/ev/depcomp +630 -0
  156. data/ext/libuv/src/unix/ev/ev++.h +816 -0
  157. data/ext/libuv/src/unix/ev/ev.3 +5311 -0
  158. data/ext/libuv/src/unix/ev/ev.c +3925 -0
  159. data/ext/libuv/src/unix/ev/ev.pod +5243 -0
  160. data/ext/libuv/src/unix/ev/ev_epoll.c +266 -0
  161. data/ext/libuv/src/unix/ev/ev_kqueue.c +235 -0
  162. data/ext/libuv/src/unix/ev/ev_poll.c +148 -0
  163. data/ext/libuv/src/unix/ev/ev_port.c +179 -0
  164. data/ext/libuv/src/unix/ev/ev_select.c +310 -0
  165. data/ext/libuv/src/unix/ev/ev_vars.h +203 -0
  166. data/ext/libuv/src/unix/ev/ev_win32.c +153 -0
  167. data/ext/libuv/src/unix/ev/ev_wrap.h +196 -0
  168. data/ext/libuv/src/unix/ev/event.c +402 -0
  169. data/ext/libuv/src/unix/ev/event.h +170 -0
  170. data/ext/libuv/src/unix/ev/install-sh +294 -0
  171. data/ext/libuv/src/unix/ev/libev.m4 +39 -0
  172. data/ext/libuv/src/unix/ev/ltmain.sh +8413 -0
  173. data/ext/libuv/src/unix/ev/missing +336 -0
  174. data/ext/libuv/src/unix/ev/mkinstalldirs +111 -0
  175. data/ext/libuv/src/unix/freebsd.c +312 -0
  176. data/ext/libuv/src/unix/fs.c +699 -0
  177. data/ext/libuv/src/unix/internal.h +180 -0
  178. data/ext/libuv/src/unix/kqueue.c +122 -0
  179. data/ext/libuv/src/unix/linux/core.c +474 -0
  180. data/ext/libuv/src/unix/linux/inotify.c +209 -0
  181. data/ext/libuv/src/unix/linux/syscalls.c +268 -0
  182. data/ext/libuv/src/unix/linux/syscalls.h +93 -0
  183. data/ext/libuv/src/unix/loop-watcher.c +63 -0
  184. data/ext/libuv/src/unix/loop.c +81 -0
  185. data/ext/libuv/src/unix/netbsd.c +108 -0
  186. data/ext/libuv/src/unix/openbsd.c +295 -0
  187. data/ext/libuv/src/unix/pipe.c +261 -0
  188. data/ext/libuv/src/unix/poll.c +116 -0
  189. data/ext/libuv/src/unix/process.c +447 -0
  190. data/ext/libuv/src/unix/stream.c +1026 -0
  191. data/ext/libuv/src/unix/sunos.c +483 -0
  192. data/ext/libuv/src/unix/tcp.c +328 -0
  193. data/ext/libuv/src/unix/thread.c +211 -0
  194. data/ext/libuv/src/unix/timer.c +138 -0
  195. data/ext/libuv/src/unix/tty.c +146 -0
  196. data/ext/libuv/src/unix/udp.c +661 -0
  197. data/ext/libuv/src/unix/uv-eio.c +107 -0
  198. data/ext/libuv/src/unix/uv-eio.h +13 -0
  199. data/ext/libuv/src/uv-common.c +384 -0
  200. data/ext/libuv/src/uv-common.h +171 -0
  201. data/ext/libuv/src/win/async.c +130 -0
  202. data/ext/libuv/src/win/core.c +283 -0
  203. data/ext/libuv/src/win/dl.c +86 -0
  204. data/ext/libuv/src/win/error.c +150 -0
  205. data/ext/libuv/src/win/fs-event.c +512 -0
  206. data/ext/libuv/src/win/fs.c +1856 -0
  207. data/ext/libuv/src/win/getaddrinfo.c +365 -0
  208. data/ext/libuv/src/win/handle-inl.h +145 -0
  209. data/ext/libuv/src/win/handle.c +150 -0
  210. data/ext/libuv/src/win/internal.h +337 -0
  211. data/ext/libuv/src/win/loop-watcher.c +123 -0
  212. data/ext/libuv/src/win/pipe.c +1675 -0
  213. data/ext/libuv/src/win/poll.c +618 -0
  214. data/ext/libuv/src/win/process-stdio.c +479 -0
  215. data/ext/libuv/src/win/process.c +1013 -0
  216. data/ext/libuv/src/win/req-inl.h +225 -0
  217. data/ext/libuv/src/win/req.c +25 -0
  218. data/ext/libuv/src/win/stream-inl.h +69 -0
  219. data/ext/libuv/src/win/stream.c +167 -0
  220. data/ext/libuv/src/win/tcp.c +1400 -0
  221. data/ext/libuv/src/win/thread.c +372 -0
  222. data/ext/libuv/src/win/threadpool.c +74 -0
  223. data/ext/libuv/src/win/timer.c +226 -0
  224. data/ext/libuv/src/win/tty.c +1801 -0
  225. data/ext/libuv/src/win/udp.c +718 -0
  226. data/ext/libuv/src/win/util.c +864 -0
  227. data/ext/libuv/src/win/winapi.c +132 -0
  228. data/ext/libuv/src/win/winapi.h +4443 -0
  229. data/ext/libuv/src/win/winsock.c +557 -0
  230. data/ext/libuv/src/win/winsock.h +171 -0
  231. data/ext/libuv/test/benchmark-ares.c +117 -0
  232. data/ext/libuv/test/benchmark-fs-stat.c +164 -0
  233. data/ext/libuv/test/benchmark-getaddrinfo.c +94 -0
  234. data/ext/libuv/test/benchmark-list.h +114 -0
  235. data/ext/libuv/test/benchmark-loop-count.c +88 -0
  236. data/ext/libuv/test/benchmark-million-timers.c +65 -0
  237. data/ext/libuv/test/benchmark-ping-pongs.c +213 -0
  238. data/ext/libuv/test/benchmark-pound.c +324 -0
  239. data/ext/libuv/test/benchmark-pump.c +462 -0
  240. data/ext/libuv/test/benchmark-sizes.c +42 -0
  241. data/ext/libuv/test/benchmark-spawn.c +162 -0
  242. data/ext/libuv/test/benchmark-tcp-write-batch.c +140 -0
  243. data/ext/libuv/test/benchmark-thread.c +64 -0
  244. data/ext/libuv/test/benchmark-udp-packet-storm.c +247 -0
  245. data/ext/libuv/test/blackhole-server.c +118 -0
  246. data/ext/libuv/test/dns-server.c +321 -0
  247. data/ext/libuv/test/echo-server.c +378 -0
  248. data/ext/libuv/test/fixtures/empty_file +0 -0
  249. data/ext/libuv/test/fixtures/load_error.node +1 -0
  250. data/ext/libuv/test/run-benchmarks.c +64 -0
  251. data/ext/libuv/test/run-tests.c +138 -0
  252. data/ext/libuv/test/runner-unix.c +290 -0
  253. data/ext/libuv/test/runner-unix.h +36 -0
  254. data/ext/libuv/test/runner-win.c +285 -0
  255. data/ext/libuv/test/runner-win.h +42 -0
  256. data/ext/libuv/test/runner.c +326 -0
  257. data/ext/libuv/test/runner.h +159 -0
  258. data/ext/libuv/test/task.h +109 -0
  259. data/ext/libuv/test/test-async.c +118 -0
  260. data/ext/libuv/test/test-callback-order.c +76 -0
  261. data/ext/libuv/test/test-callback-stack.c +203 -0
  262. data/ext/libuv/test/test-connection-fail.c +148 -0
  263. data/ext/libuv/test/test-counters-init.c +215 -0
  264. data/ext/libuv/test/test-cwd-and-chdir.c +64 -0
  265. data/ext/libuv/test/test-delayed-accept.c +197 -0
  266. data/ext/libuv/test/test-dlerror.c +58 -0
  267. data/ext/libuv/test/test-error.c +59 -0
  268. data/ext/libuv/test/test-fail-always.c +29 -0
  269. data/ext/libuv/test/test-fs-event.c +442 -0
  270. data/ext/libuv/test/test-fs-poll.c +146 -0
  271. data/ext/libuv/test/test-fs.c +1843 -0
  272. data/ext/libuv/test/test-get-currentexe.c +63 -0
  273. data/ext/libuv/test/test-get-loadavg.c +36 -0
  274. data/ext/libuv/test/test-get-memory.c +38 -0
  275. data/ext/libuv/test/test-getaddrinfo.c +122 -0
  276. data/ext/libuv/test/test-gethostbyname.c +189 -0
  277. data/ext/libuv/test/test-getsockname.c +342 -0
  278. data/ext/libuv/test/test-hrtime.c +54 -0
  279. data/ext/libuv/test/test-idle.c +81 -0
  280. data/ext/libuv/test/test-ipc-send-recv.c +209 -0
  281. data/ext/libuv/test/test-ipc.c +620 -0
  282. data/ext/libuv/test/test-list.h +421 -0
  283. data/ext/libuv/test/test-loop-handles.c +336 -0
  284. data/ext/libuv/test/test-multiple-listen.c +102 -0
  285. data/ext/libuv/test/test-mutexes.c +63 -0
  286. data/ext/libuv/test/test-pass-always.c +28 -0
  287. data/ext/libuv/test/test-ping-pong.c +253 -0
  288. data/ext/libuv/test/test-pipe-bind-error.c +140 -0
  289. data/ext/libuv/test/test-pipe-connect-error.c +96 -0
  290. data/ext/libuv/test/test-platform-output.c +87 -0
  291. data/ext/libuv/test/test-poll-close.c +77 -0
  292. data/ext/libuv/test/test-poll.c +573 -0
  293. data/ext/libuv/test/test-process-title.c +42 -0
  294. data/ext/libuv/test/test-ref.c +338 -0
  295. data/ext/libuv/test/test-run-once.c +48 -0
  296. data/ext/libuv/test/test-semaphore.c +111 -0
  297. data/ext/libuv/test/test-shutdown-close.c +103 -0
  298. data/ext/libuv/test/test-shutdown-eof.c +183 -0
  299. data/ext/libuv/test/test-spawn.c +847 -0
  300. data/ext/libuv/test/test-stdio-over-pipes.c +246 -0
  301. data/ext/libuv/test/test-tcp-bind-error.c +191 -0
  302. data/ext/libuv/test/test-tcp-bind6-error.c +154 -0
  303. data/ext/libuv/test/test-tcp-close-while-connecting.c +80 -0
  304. data/ext/libuv/test/test-tcp-close.c +129 -0
  305. data/ext/libuv/test/test-tcp-connect-error-after-write.c +95 -0
  306. data/ext/libuv/test/test-tcp-connect-error.c +70 -0
  307. data/ext/libuv/test/test-tcp-connect-timeout.c +85 -0
  308. data/ext/libuv/test/test-tcp-connect6-error.c +68 -0
  309. data/ext/libuv/test/test-tcp-flags.c +51 -0
  310. data/ext/libuv/test/test-tcp-shutdown-after-write.c +131 -0
  311. data/ext/libuv/test/test-tcp-write-error.c +168 -0
  312. data/ext/libuv/test/test-tcp-write-to-half-open-connection.c +135 -0
  313. data/ext/libuv/test/test-tcp-writealot.c +170 -0
  314. data/ext/libuv/test/test-thread.c +183 -0
  315. data/ext/libuv/test/test-threadpool.c +57 -0
  316. data/ext/libuv/test/test-timer-again.c +141 -0
  317. data/ext/libuv/test/test-timer.c +152 -0
  318. data/ext/libuv/test/test-tty.c +110 -0
  319. data/ext/libuv/test/test-udp-dgram-too-big.c +86 -0
  320. data/ext/libuv/test/test-udp-ipv6.c +156 -0
  321. data/ext/libuv/test/test-udp-multicast-join.c +139 -0
  322. data/ext/libuv/test/test-udp-multicast-ttl.c +86 -0
  323. data/ext/libuv/test/test-udp-options.c +86 -0
  324. data/ext/libuv/test/test-udp-send-and-recv.c +208 -0
  325. data/ext/libuv/test/test-util.c +97 -0
  326. data/ext/libuv/test/test-walk-handles.c +77 -0
  327. data/ext/libuv/uv.gyp +452 -0
  328. data/ext/libuv/vcbuild.bat +105 -0
  329. data/ext/racer/extconf.rb +20 -0
  330. data/ext/racer/http_parser.c +2059 -0
  331. data/ext/racer/http_parser.h +318 -0
  332. data/ext/racer/mkmf.log +22 -0
  333. data/ext/racer/racer.c +551 -0
  334. data/lib/racer.rb +2 -0
  335. data/lib/racer/version.rb +3 -0
  336. metadata +382 -0
@@ -0,0 +1,31 @@
1
+ #ifndef HEADER_CARES_INET_NET_PTON_H
2
+ #define HEADER_CARES_INET_NET_PTON_H
3
+
4
+ /* Copyright (C) 2005-2010 by Daniel Stenberg et al
5
+ *
6
+ * Permission to use, copy, modify, and distribute this
7
+ * software and its documentation for any purpose and without
8
+ * fee is hereby granted, provided that the above copyright
9
+ * notice appear in all copies and that both that copyright
10
+ * notice and this permission notice appear in supporting
11
+ * documentation, and that the name of M.I.T. not be used in
12
+ * advertising or publicity pertaining to distribution of the
13
+ * software without specific, written prior permission.
14
+ * M.I.T. makes no representations about the suitability of
15
+ * this software for any purpose. It is provided "as is"
16
+ * without express or implied warranty.
17
+ */
18
+
19
+ #ifdef HAVE_INET_PTON
20
+ #define ares_inet_pton(x,y,z) inet_pton(x,y,z)
21
+ #else
22
+ int ares_inet_pton(int af, const char *src, void *dst);
23
+ #endif
24
+
25
+ #ifdef HAVE_INET_NET_PTON
26
+ #define ares_inet_net_pton(w,x,y,z) inet_net_pton(w,x,y,z)
27
+ #else
28
+ int ares_inet_net_pton(int af, const char *src, void *dst, size_t size);
29
+ #endif
30
+
31
+ #endif /* HEADER_CARES_INET_NET_PTON_H */
@@ -0,0 +1,208 @@
1
+ /*
2
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
3
+ * Copyright (c) 1996-1999 by Internet Software Consortium.
4
+ *
5
+ * Permission to use, copy, modify, and distribute this software for any
6
+ * purpose with or without fee is hereby granted, provided that the above
7
+ * copyright notice and this permission notice appear in all copies.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
10
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
12
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
15
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
+ */
17
+
18
+ #include "ares_setup.h"
19
+
20
+ #ifdef HAVE_SYS_SOCKET_H
21
+ # include <sys/socket.h>
22
+ #endif
23
+ #ifdef HAVE_NETINET_IN_H
24
+ # include <netinet/in.h>
25
+ #endif
26
+ #ifdef HAVE_ARPA_INET_H
27
+ # include <arpa/inet.h>
28
+ #endif
29
+ #ifdef HAVE_ARPA_NAMESER_H
30
+ # include <arpa/nameser.h>
31
+ #else
32
+ # include "nameser.h"
33
+ #endif
34
+ #ifdef HAVE_ARPA_NAMESER_COMPAT_H
35
+ # include <arpa/nameser_compat.h>
36
+ #endif
37
+
38
+ #include <ctype.h>
39
+ #include <stdio.h>
40
+ #include <string.h>
41
+ #include <stdlib.h>
42
+
43
+ #include "ares.h"
44
+ #include "ares_ipv6.h"
45
+ #include "inet_ntop.h"
46
+
47
+
48
+ #ifndef HAVE_INET_NTOP
49
+
50
+ /*
51
+ * WARNING: Don't even consider trying to compile this on a system where
52
+ * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
53
+ */
54
+
55
+ static const char *inet_ntop4(const unsigned char *src, char *dst, size_t size);
56
+ static const char *inet_ntop6(const unsigned char *src, char *dst, size_t size);
57
+
58
+ /* char *
59
+ * inet_ntop(af, src, dst, size)
60
+ * convert a network format address to presentation format.
61
+ * return:
62
+ * pointer to presentation format address (`dst'), or NULL (see errno).
63
+ * note:
64
+ * On Windows we store the error in the thread errno, not
65
+ * in the winsock error code. This is to avoid loosing the
66
+ * actual last winsock error. So use macro ERRNO to fetch the
67
+ * errno this funtion sets when returning NULL, not SOCKERRNO.
68
+ * author:
69
+ * Paul Vixie, 1996.
70
+ */
71
+ const char *
72
+ ares_inet_ntop(int af, const void *src, char *dst, size_t size)
73
+ {
74
+ switch (af) {
75
+ case AF_INET:
76
+ return (inet_ntop4(src, dst, size));
77
+ case AF_INET6:
78
+ return (inet_ntop6(src, dst, size));
79
+ default:
80
+ SET_ERRNO(EAFNOSUPPORT);
81
+ return (NULL);
82
+ }
83
+ /* NOTREACHED */
84
+ }
85
+
86
+ /* const char *
87
+ * inet_ntop4(src, dst, size)
88
+ * format an IPv4 address
89
+ * return:
90
+ * `dst' (as a const)
91
+ * notes:
92
+ * (1) uses no statics
93
+ * (2) takes a unsigned char* not an in_addr as input
94
+ * author:
95
+ * Paul Vixie, 1996.
96
+ */
97
+ static const char *
98
+ inet_ntop4(const unsigned char *src, char *dst, size_t size)
99
+ {
100
+ static const char fmt[] = "%u.%u.%u.%u";
101
+ char tmp[sizeof("255.255.255.255")];
102
+
103
+ if ((size_t)sprintf(tmp, fmt, src[0], src[1], src[2], src[3]) >= size) {
104
+ SET_ERRNO(ENOSPC);
105
+ return (NULL);
106
+ }
107
+ strcpy(dst, tmp);
108
+ return (dst);
109
+ }
110
+
111
+ /* const char *
112
+ * inet_ntop6(src, dst, size)
113
+ * convert IPv6 binary address into presentation (printable) format
114
+ * author:
115
+ * Paul Vixie, 1996.
116
+ */
117
+ static const char *
118
+ inet_ntop6(const unsigned char *src, char *dst, size_t size)
119
+ {
120
+ /*
121
+ * Note that int32_t and int16_t need only be "at least" large enough
122
+ * to contain a value of the specified size. On some systems, like
123
+ * Crays, there is no such thing as an integer variable with 16 bits.
124
+ * Keep this in mind if you think this function should have been coded
125
+ * to use pointer overlays. All the world's not a VAX.
126
+ */
127
+ char tmp[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
128
+ char *tp;
129
+ struct { int base, len; } best, cur;
130
+ unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ];
131
+ int i;
132
+
133
+ /*
134
+ * Preprocess:
135
+ * Copy the input (bytewise) array into a wordwise array.
136
+ * Find the longest run of 0x00's in src[] for :: shorthanding.
137
+ */
138
+ memset(words, '\0', sizeof(words));
139
+ for (i = 0; i < NS_IN6ADDRSZ; i++)
140
+ words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
141
+ best.base = -1;
142
+ best.len = 0;
143
+ cur.base = -1;
144
+ cur.len = 0;
145
+ for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
146
+ if (words[i] == 0) {
147
+ if (cur.base == -1)
148
+ cur.base = i, cur.len = 1;
149
+ else
150
+ cur.len++;
151
+ } else {
152
+ if (cur.base != -1) {
153
+ if (best.base == -1 || cur.len > best.len)
154
+ best = cur;
155
+ cur.base = -1;
156
+ }
157
+ }
158
+ }
159
+ if (cur.base != -1) {
160
+ if (best.base == -1 || cur.len > best.len)
161
+ best = cur;
162
+ }
163
+ if (best.base != -1 && best.len < 2)
164
+ best.base = -1;
165
+
166
+ /*
167
+ * Format the result.
168
+ */
169
+ tp = tmp;
170
+ for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
171
+ /* Are we inside the best run of 0x00's? */
172
+ if (best.base != -1 && i >= best.base &&
173
+ i < (best.base + best.len)) {
174
+ if (i == best.base)
175
+ *tp++ = ':';
176
+ continue;
177
+ }
178
+ /* Are we following an initial run of 0x00s or any real hex? */
179
+ if (i != 0)
180
+ *tp++ = ':';
181
+ /* Is this address an encapsulated IPv4? */
182
+ if (i == 6 && best.base == 0 && (best.len == 6 ||
183
+ (best.len == 7 && words[7] != 0x0001) ||
184
+ (best.len == 5 && words[5] == 0xffff))) {
185
+ if (!inet_ntop4(src+12, tp, sizeof(tmp) - (tp - tmp)))
186
+ return (NULL);
187
+ tp += strlen(tp);
188
+ break;
189
+ }
190
+ tp += sprintf(tp, "%x", words[i]);
191
+ }
192
+ /* Was it a trailing run of 0x00's? */
193
+ if (best.base != -1 && (best.base + best.len) ==
194
+ (NS_IN6ADDRSZ / NS_INT16SZ))
195
+ *tp++ = ':';
196
+ *tp++ = '\0';
197
+
198
+ /*
199
+ * Check for overflow, copy, and we're done.
200
+ */
201
+ if ((size_t)(tp - tmp) > size) {
202
+ SET_ERRNO(ENOSPC);
203
+ return (NULL);
204
+ }
205
+ strcpy(dst, tmp);
206
+ return (dst);
207
+ }
208
+ #endif
@@ -0,0 +1,26 @@
1
+ #ifndef __ARES_INET_NTOP_H
2
+ #define __ARES_INET_NTOP_H
3
+
4
+
5
+ /* Copyright (C) 2005 by Dominick Meglio
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
+ #ifdef HAVE_INET_NTOP
21
+ #define ares_inet_ntop(w,x,y,z) inet_ntop(w,x,y,z)
22
+ #else
23
+ const char *ares_inet_ntop(int af, const void *src, char *dst, size_t size);
24
+ #endif
25
+
26
+ #endif /* __ARES_INET_NTOP_H */
@@ -0,0 +1,203 @@
1
+
2
+ #ifndef ARES_NAMESER_H
3
+ #define ARES_NAMESER_H
4
+
5
+ /* header file provided by liren@vivisimo.com */
6
+
7
+ #ifndef HAVE_ARPA_NAMESER_H
8
+
9
+ #define NS_PACKETSZ 512 /* maximum packet size */
10
+ #define NS_MAXDNAME 256 /* maximum domain name */
11
+ #define NS_MAXCDNAME 255 /* maximum compressed domain name */
12
+ #define NS_MAXLABEL 63
13
+ #define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */
14
+ #define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */
15
+ #define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
16
+ #define NS_INT16SZ 2
17
+ #define NS_INADDRSZ 4
18
+ #define NS_IN6ADDRSZ 16
19
+ #define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
20
+ #define NS_DEFAULTPORT 53 /* For both TCP and UDP. */
21
+
22
+ typedef enum __ns_class {
23
+ ns_c_invalid = 0, /* Cookie. */
24
+ ns_c_in = 1, /* Internet. */
25
+ ns_c_2 = 2, /* unallocated/unsupported. */
26
+ ns_c_chaos = 3, /* MIT Chaos-net. */
27
+ ns_c_hs = 4, /* MIT Hesiod. */
28
+ /* Query class values which do not appear in resource records */
29
+ ns_c_none = 254, /* for prereq. sections in update requests */
30
+ ns_c_any = 255, /* Wildcard match. */
31
+ ns_c_max = 65536
32
+ } ns_class;
33
+
34
+ typedef enum __ns_type {
35
+ ns_t_invalid = 0, /* Cookie. */
36
+ ns_t_a = 1, /* Host address. */
37
+ ns_t_ns = 2, /* Authoritative server. */
38
+ ns_t_md = 3, /* Mail destination. */
39
+ ns_t_mf = 4, /* Mail forwarder. */
40
+ ns_t_cname = 5, /* Canonical name. */
41
+ ns_t_soa = 6, /* Start of authority zone. */
42
+ ns_t_mb = 7, /* Mailbox domain name. */
43
+ ns_t_mg = 8, /* Mail group member. */
44
+ ns_t_mr = 9, /* Mail rename name. */
45
+ ns_t_null = 10, /* Null resource record. */
46
+ ns_t_wks = 11, /* Well known service. */
47
+ ns_t_ptr = 12, /* Domain name pointer. */
48
+ ns_t_hinfo = 13, /* Host information. */
49
+ ns_t_minfo = 14, /* Mailbox information. */
50
+ ns_t_mx = 15, /* Mail routing information. */
51
+ ns_t_txt = 16, /* Text strings. */
52
+ ns_t_rp = 17, /* Responsible person. */
53
+ ns_t_afsdb = 18, /* AFS cell database. */
54
+ ns_t_x25 = 19, /* X_25 calling address. */
55
+ ns_t_isdn = 20, /* ISDN calling address. */
56
+ ns_t_rt = 21, /* Router. */
57
+ ns_t_nsap = 22, /* NSAP address. */
58
+ ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */
59
+ ns_t_sig = 24, /* Security signature. */
60
+ ns_t_key = 25, /* Security key. */
61
+ ns_t_px = 26, /* X.400 mail mapping. */
62
+ ns_t_gpos = 27, /* Geographical position (withdrawn). */
63
+ ns_t_aaaa = 28, /* Ip6 Address. */
64
+ ns_t_loc = 29, /* Location Information. */
65
+ ns_t_nxt = 30, /* Next domain (security). */
66
+ ns_t_eid = 31, /* Endpoint identifier. */
67
+ ns_t_nimloc = 32, /* Nimrod Locator. */
68
+ ns_t_srv = 33, /* Server Selection. */
69
+ ns_t_atma = 34, /* ATM Address */
70
+ ns_t_naptr = 35, /* Naming Authority PoinTeR */
71
+ ns_t_kx = 36, /* Key Exchange */
72
+ ns_t_cert = 37, /* Certification record */
73
+ ns_t_a6 = 38, /* IPv6 address (deprecates AAAA) */
74
+ ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */
75
+ ns_t_sink = 40, /* Kitchen sink (experimentatl) */
76
+ ns_t_opt = 41, /* EDNS0 option (meta-RR) */
77
+ ns_t_apl = 42, /* Address prefix list (RFC3123) */
78
+ ns_t_ds = 43, /* Delegation Signer (RFC4034) */
79
+ ns_t_sshfp = 44, /* SSH Key Fingerprint (RFC4255) */
80
+ ns_t_rrsig = 46, /* Resource Record Signature (RFC4034) */
81
+ ns_t_nsec = 47, /* Next Secure (RFC4034) */
82
+ ns_t_dnskey = 48, /* DNS Public Key (RFC4034) */
83
+ ns_t_tkey = 249, /* Transaction key */
84
+ ns_t_tsig = 250, /* Transaction signature. */
85
+ ns_t_ixfr = 251, /* Incremental zone transfer. */
86
+ ns_t_axfr = 252, /* Transfer zone of authority. */
87
+ ns_t_mailb = 253, /* Transfer mailbox records. */
88
+ ns_t_maila = 254, /* Transfer mail agent records. */
89
+ ns_t_any = 255, /* Wildcard match. */
90
+ ns_t_zxfr = 256, /* BIND-specific, nonstandard. */
91
+ ns_t_max = 65536
92
+ } ns_type;
93
+
94
+ typedef enum __ns_opcode {
95
+ ns_o_query = 0, /* Standard query. */
96
+ ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */
97
+ ns_o_status = 2, /* Name server status query (unsupported). */
98
+ /* Opcode 3 is undefined/reserved. */
99
+ ns_o_notify = 4, /* Zone change notification. */
100
+ ns_o_update = 5, /* Zone update message. */
101
+ ns_o_max = 6
102
+ } ns_opcode;
103
+
104
+ typedef enum __ns_rcode {
105
+ ns_r_noerror = 0, /* No error occurred. */
106
+ ns_r_formerr = 1, /* Format error. */
107
+ ns_r_servfail = 2, /* Server failure. */
108
+ ns_r_nxdomain = 3, /* Name error. */
109
+ ns_r_notimpl = 4, /* Unimplemented. */
110
+ ns_r_refused = 5, /* Operation refused. */
111
+ /* these are for BIND_UPDATE */
112
+ ns_r_yxdomain = 6, /* Name exists */
113
+ ns_r_yxrrset = 7, /* RRset exists */
114
+ ns_r_nxrrset = 8, /* RRset does not exist */
115
+ ns_r_notauth = 9, /* Not authoritative for zone */
116
+ ns_r_notzone = 10, /* Zone of record different from zone section */
117
+ ns_r_max = 11,
118
+ /* The following are TSIG extended errors */
119
+ ns_r_badsig = 16,
120
+ ns_r_badkey = 17,
121
+ ns_r_badtime = 18
122
+ } ns_rcode;
123
+
124
+ #endif /* HAVE_ARPA_NAMESER_H */
125
+
126
+ #ifndef HAVE_ARPA_NAMESER_COMPAT_H
127
+
128
+ #define PACKETSZ NS_PACKETSZ
129
+ #define MAXDNAME NS_MAXDNAME
130
+ #define MAXCDNAME NS_MAXCDNAME
131
+ #define MAXLABEL NS_MAXLABEL
132
+ #define HFIXEDSZ NS_HFIXEDSZ
133
+ #define QFIXEDSZ NS_QFIXEDSZ
134
+ #define RRFIXEDSZ NS_RRFIXEDSZ
135
+ #define INDIR_MASK NS_CMPRSFLGS
136
+ #define NAMESERVER_PORT NS_DEFAULTPORT
137
+
138
+ #define QUERY ns_o_query
139
+
140
+ #define SERVFAIL ns_r_servfail
141
+ #define NOTIMP ns_r_notimpl
142
+ #define REFUSED ns_r_refused
143
+ #undef NOERROR /* it seems this is already defined in winerror.h */
144
+ #define NOERROR ns_r_noerror
145
+ #define FORMERR ns_r_formerr
146
+ #define NXDOMAIN ns_r_nxdomain
147
+
148
+ #define C_IN ns_c_in
149
+ #define C_CHAOS ns_c_chaos
150
+ #define C_HS ns_c_hs
151
+ #define C_NONE ns_c_none
152
+ #define C_ANY ns_c_any
153
+
154
+ #define T_A ns_t_a
155
+ #define T_NS ns_t_ns
156
+ #define T_MD ns_t_md
157
+ #define T_MF ns_t_mf
158
+ #define T_CNAME ns_t_cname
159
+ #define T_SOA ns_t_soa
160
+ #define T_MB ns_t_mb
161
+ #define T_MG ns_t_mg
162
+ #define T_MR ns_t_mr
163
+ #define T_NULL ns_t_null
164
+ #define T_WKS ns_t_wks
165
+ #define T_PTR ns_t_ptr
166
+ #define T_HINFO ns_t_hinfo
167
+ #define T_MINFO ns_t_minfo
168
+ #define T_MX ns_t_mx
169
+ #define T_TXT ns_t_txt
170
+ #define T_RP ns_t_rp
171
+ #define T_AFSDB ns_t_afsdb
172
+ #define T_X25 ns_t_x25
173
+ #define T_ISDN ns_t_isdn
174
+ #define T_RT ns_t_rt
175
+ #define T_NSAP ns_t_nsap
176
+ #define T_NSAP_PTR ns_t_nsap_ptr
177
+ #define T_SIG ns_t_sig
178
+ #define T_KEY ns_t_key
179
+ #define T_PX ns_t_px
180
+ #define T_GPOS ns_t_gpos
181
+ #define T_AAAA ns_t_aaaa
182
+ #define T_LOC ns_t_loc
183
+ #define T_NXT ns_t_nxt
184
+ #define T_EID ns_t_eid
185
+ #define T_NIMLOC ns_t_nimloc
186
+ #define T_SRV ns_t_srv
187
+ #define T_ATMA ns_t_atma
188
+ #define T_NAPTR ns_t_naptr
189
+ #define T_DS ns_t_ds
190
+ #define T_SSHFP ns_t_sshfp
191
+ #define T_RRSIG ns_t_rrsig
192
+ #define T_NSEC ns_t_nsec
193
+ #define T_DNSKEY ns_t_dnskey
194
+ #define T_TSIG ns_t_tsig
195
+ #define T_IXFR ns_t_ixfr
196
+ #define T_AXFR ns_t_axfr
197
+ #define T_MAILB ns_t_mailb
198
+ #define T_MAILA ns_t_maila
199
+ #define T_ANY ns_t_any
200
+
201
+ #endif /* HAVE_ARPA_NAMESER_COMPAT_H */
202
+
203
+ #endif /* ARES_NAMESER_H */