asyncengine 0.0.1.testing
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +0 -0
- data/asyncengine.gemspec +26 -0
- data/ext/asyncengine_ext/asyncengine_ruby.c +82 -0
- data/ext/asyncengine_ext/extconf.rb +47 -0
- data/ext/asyncengine_ext/libuv/AUTHORS +45 -0
- data/ext/asyncengine_ext/libuv/LICENSE +42 -0
- data/ext/asyncengine_ext/libuv/Makefile +119 -0
- data/ext/asyncengine_ext/libuv/README.md +88 -0
- data/ext/asyncengine_ext/libuv/build/gcc_version.py +20 -0
- data/ext/asyncengine_ext/libuv/common.gypi +176 -0
- data/ext/asyncengine_ext/libuv/config-mingw.mk +61 -0
- data/ext/asyncengine_ext/libuv/config-unix.mk +173 -0
- data/ext/asyncengine_ext/libuv/gyp_uv +60 -0
- data/ext/asyncengine_ext/libuv/include/ares.h +591 -0
- data/ext/asyncengine_ext/libuv/include/ares_version.h +24 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/eio.h +403 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/ev.h +838 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/ngx-queue.h +106 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/tree.h +768 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/uv-unix.h +256 -0
- data/ext/asyncengine_ext/libuv/include/uv-private/uv-win.h +458 -0
- data/ext/asyncengine_ext/libuv/include/uv.h +1556 -0
- data/ext/asyncengine_ext/libuv/src/ares/AUTHORS +37 -0
- data/ext/asyncengine_ext/libuv/src/ares/CHANGES +1218 -0
- data/ext/asyncengine_ext/libuv/src/ares/CMakeLists.txt +22 -0
- data/ext/asyncengine_ext/libuv/src/ares/NEWS +21 -0
- data/ext/asyncengine_ext/libuv/src/ares/README +60 -0
- data/ext/asyncengine_ext/libuv/src/ares/README.cares +13 -0
- data/ext/asyncengine_ext/libuv/src/ares/README.msvc +142 -0
- data/ext/asyncengine_ext/libuv/src/ares/README.node +21 -0
- data/ext/asyncengine_ext/libuv/src/ares/RELEASE-NOTES +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/TODO +23 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__close_sockets.c +66 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__get_hostent.c +263 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__read_line.c +71 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares__timeval.c +111 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_cancel.c +63 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_data.c +190 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_data.h +65 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_destroy.c +105 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_dns.h +90 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_expand_name.c +200 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_expand_string.c +75 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_fds.c +63 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_free_hostent.c +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_free_string.c +25 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getenv.c +30 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getenv.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_gethostbyaddr.c +301 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_gethostbyname.c +523 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getnameinfo.c +427 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getopt.c +122 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getopt.h +53 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_getsock.c +72 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_init.c +1809 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_iphlpapi.h +221 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_ipv6.h +78 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_library_init.c +142 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_library_init.h +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_llist.c +86 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_llist.h +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_mkquery.c +195 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_nowarn.c +181 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_nowarn.h +55 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_options.c +248 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_a_reply.c +263 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_aaaa_reply.c +259 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_mx_reply.c +170 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_ns_reply.c +182 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_ptr_reply.c +217 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_srv_reply.c +179 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_parse_txt_reply.c +201 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_platform.c +11035 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_platform.h +43 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_private.h +355 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_process.c +1295 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_query.c +183 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_rules.h +144 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_search.c +321 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_send.c +134 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_setup.h +199 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strcasecmp.c +66 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strcasecmp.h +30 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strdup.c +42 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strdup.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_strerror.c +56 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_timeout.c +80 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_version.c +11 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_writev.c +79 -0
- data/ext/asyncengine_ext/libuv/src/ares/ares_writev.h +36 -0
- data/ext/asyncengine_ext/libuv/src/ares/bitncmp.c +59 -0
- data/ext/asyncengine_ext/libuv/src/ares/bitncmp.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_cygwin/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_darwin/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_freebsd/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_linux/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_netbsd/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_openbsd/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_sunos/ares_config.h +512 -0
- data/ext/asyncengine_ext/libuv/src/ares/config_win32/ares_config.h +369 -0
- data/ext/asyncengine_ext/libuv/src/ares/get_ver.awk +35 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_net_pton.c +451 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_net_pton.h +31 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_ntop.c +208 -0
- data/ext/asyncengine_ext/libuv/src/ares/inet_ntop.h +26 -0
- data/ext/asyncengine_ext/libuv/src/ares/nameser.h +203 -0
- data/ext/asyncengine_ext/libuv/src/ares/setup_once.h +504 -0
- data/ext/asyncengine_ext/libuv/src/ares/windows_port.c +22 -0
- data/ext/asyncengine_ext/libuv/src/unix/async.c +58 -0
- data/ext/asyncengine_ext/libuv/src/unix/cares.c +194 -0
- data/ext/asyncengine_ext/libuv/src/unix/check.c +80 -0
- data/ext/asyncengine_ext/libuv/src/unix/core.c +588 -0
- data/ext/asyncengine_ext/libuv/src/unix/cygwin.c +84 -0
- data/ext/asyncengine_ext/libuv/src/unix/darwin.c +341 -0
- data/ext/asyncengine_ext/libuv/src/unix/dl.c +91 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/Changes +63 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/LICENSE +36 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/Makefile.am +15 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/aclocal.m4 +8957 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/autogen.sh +3 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config.h.in +86 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_cygwin.h +80 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_darwin.h +141 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_freebsd.h +81 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_linux.h +94 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_netbsd.h +81 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_openbsd.h +137 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/config_sunos.h +84 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/configure.ac +22 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/demo.c +194 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/ecb.h +370 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/eio.3 +3428 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/eio.c +2593 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/eio.pod +969 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/libeio.m4 +195 -0
- data/ext/asyncengine_ext/libuv/src/unix/eio/xthread.h +164 -0
- data/ext/asyncengine_ext/libuv/src/unix/error.c +98 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/Changes +388 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/LICENSE +36 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/Makefile.am +18 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/Makefile.in +771 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/README +58 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/aclocal.m4 +8957 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/autogen.sh +6 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config.guess +1526 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config.h.in +125 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config.sub +1658 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_cygwin.h +123 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_darwin.h +122 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_freebsd.h +120 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_linux.h +141 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_netbsd.h +120 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_openbsd.h +126 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/config_sunos.h +122 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/configure +13037 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/configure.ac +18 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/depcomp +630 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev++.h +816 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev.3 +5311 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev.c +3921 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev.pod +5243 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_epoll.c +266 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_kqueue.c +235 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_poll.c +148 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_port.c +179 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_select.c +310 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_vars.h +203 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_win32.c +153 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ev_wrap.h +196 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/event.c +402 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/event.h +170 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/install-sh +294 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/libev.m4 +39 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/ltmain.sh +8413 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/missing +336 -0
- data/ext/asyncengine_ext/libuv/src/unix/ev/mkinstalldirs +111 -0
- data/ext/asyncengine_ext/libuv/src/unix/freebsd.c +312 -0
- data/ext/asyncengine_ext/libuv/src/unix/fs.c +707 -0
- data/ext/asyncengine_ext/libuv/src/unix/idle.c +79 -0
- data/ext/asyncengine_ext/libuv/src/unix/internal.h +161 -0
- data/ext/asyncengine_ext/libuv/src/unix/kqueue.c +127 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/core.c +474 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/inotify.c +211 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/syscalls.c +230 -0
- data/ext/asyncengine_ext/libuv/src/unix/linux/syscalls.h +87 -0
- data/ext/asyncengine_ext/libuv/src/unix/loop.c +58 -0
- data/ext/asyncengine_ext/libuv/src/unix/netbsd.c +108 -0
- data/ext/asyncengine_ext/libuv/src/unix/openbsd.c +295 -0
- data/ext/asyncengine_ext/libuv/src/unix/pipe.c +266 -0
- data/ext/asyncengine_ext/libuv/src/unix/prepare.c +79 -0
- data/ext/asyncengine_ext/libuv/src/unix/process.c +369 -0
- data/ext/asyncengine_ext/libuv/src/unix/stream.c +1033 -0
- data/ext/asyncengine_ext/libuv/src/unix/sunos.c +466 -0
- data/ext/asyncengine_ext/libuv/src/unix/tcp.c +327 -0
- data/ext/asyncengine_ext/libuv/src/unix/thread.c +154 -0
- data/ext/asyncengine_ext/libuv/src/unix/timer.c +127 -0
- data/ext/asyncengine_ext/libuv/src/unix/tty.c +146 -0
- data/ext/asyncengine_ext/libuv/src/unix/udp.c +670 -0
- data/ext/asyncengine_ext/libuv/src/unix/uv-eio.c +124 -0
- data/ext/asyncengine_ext/libuv/src/unix/uv-eio.h +13 -0
- data/ext/asyncengine_ext/libuv/src/uv-common.c +354 -0
- data/ext/asyncengine_ext/libuv/src/uv-common.h +87 -0
- data/ext/asyncengine_ext/libuv/src/win/async.c +127 -0
- data/ext/asyncengine_ext/libuv/src/win/cares.c +290 -0
- data/ext/asyncengine_ext/libuv/src/win/core.c +270 -0
- data/ext/asyncengine_ext/libuv/src/win/dl.c +82 -0
- data/ext/asyncengine_ext/libuv/src/win/error.c +132 -0
- data/ext/asyncengine_ext/libuv/src/win/fs-event.c +514 -0
- data/ext/asyncengine_ext/libuv/src/win/fs.c +1576 -0
- data/ext/asyncengine_ext/libuv/src/win/getaddrinfo.c +372 -0
- data/ext/asyncengine_ext/libuv/src/win/handle.c +225 -0
- data/ext/asyncengine_ext/libuv/src/win/internal.h +352 -0
- data/ext/asyncengine_ext/libuv/src/win/loop-watcher.c +131 -0
- data/ext/asyncengine_ext/libuv/src/win/pipe.c +1661 -0
- data/ext/asyncengine_ext/libuv/src/win/process.c +1140 -0
- data/ext/asyncengine_ext/libuv/src/win/req.c +174 -0
- data/ext/asyncengine_ext/libuv/src/win/stream.c +201 -0
- data/ext/asyncengine_ext/libuv/src/win/tcp.c +1282 -0
- data/ext/asyncengine_ext/libuv/src/win/thread.c +332 -0
- data/ext/asyncengine_ext/libuv/src/win/threadpool.c +73 -0
- data/ext/asyncengine_ext/libuv/src/win/timer.c +276 -0
- data/ext/asyncengine_ext/libuv/src/win/tty.c +1795 -0
- data/ext/asyncengine_ext/libuv/src/win/udp.c +709 -0
- data/ext/asyncengine_ext/libuv/src/win/util.c +719 -0
- data/ext/asyncengine_ext/libuv/src/win/winapi.c +117 -0
- data/ext/asyncengine_ext/libuv/src/win/winapi.h +4419 -0
- data/ext/asyncengine_ext/libuv/src/win/winsock.c +470 -0
- data/ext/asyncengine_ext/libuv/src/win/winsock.h +138 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-ares.c +118 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-getaddrinfo.c +94 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-list.h +105 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-ping-pongs.c +213 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-pound.c +324 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-pump.c +462 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-sizes.c +40 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-spawn.c +156 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-tcp-write-batch.c +140 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-thread.c +64 -0
- data/ext/asyncengine_ext/libuv/test/benchmark-udp-packet-storm.c +247 -0
- data/ext/asyncengine_ext/libuv/test/blackhole-server.c +118 -0
- data/ext/asyncengine_ext/libuv/test/dns-server.c +321 -0
- data/ext/asyncengine_ext/libuv/test/echo-server.c +370 -0
- data/ext/asyncengine_ext/libuv/test/fixtures/empty_file +0 -0
- data/ext/asyncengine_ext/libuv/test/fixtures/load_error.node +1 -0
- data/ext/asyncengine_ext/libuv/test/run-benchmarks.c +64 -0
- data/ext/asyncengine_ext/libuv/test/run-tests.c +108 -0
- data/ext/asyncengine_ext/libuv/test/runner-unix.c +315 -0
- data/ext/asyncengine_ext/libuv/test/runner-unix.h +36 -0
- data/ext/asyncengine_ext/libuv/test/runner-win.c +343 -0
- data/ext/asyncengine_ext/libuv/test/runner-win.h +42 -0
- data/ext/asyncengine_ext/libuv/test/runner.c +317 -0
- data/ext/asyncengine_ext/libuv/test/runner.h +159 -0
- data/ext/asyncengine_ext/libuv/test/task.h +117 -0
- data/ext/asyncengine_ext/libuv/test/test-async.c +216 -0
- data/ext/asyncengine_ext/libuv/test/test-callback-stack.c +203 -0
- data/ext/asyncengine_ext/libuv/test/test-connection-fail.c +148 -0
- data/ext/asyncengine_ext/libuv/test/test-counters-init.c +216 -0
- data/ext/asyncengine_ext/libuv/test/test-cwd-and-chdir.c +64 -0
- data/ext/asyncengine_ext/libuv/test/test-delayed-accept.c +197 -0
- data/ext/asyncengine_ext/libuv/test/test-dlerror.c +49 -0
- data/ext/asyncengine_ext/libuv/test/test-eio-overflow.c +90 -0
- data/ext/asyncengine_ext/libuv/test/test-error.c +59 -0
- data/ext/asyncengine_ext/libuv/test/test-fail-always.c +29 -0
- data/ext/asyncengine_ext/libuv/test/test-fs-event.c +442 -0
- data/ext/asyncengine_ext/libuv/test/test-fs.c +1731 -0
- data/ext/asyncengine_ext/libuv/test/test-get-currentexe.c +63 -0
- data/ext/asyncengine_ext/libuv/test/test-get-loadavg.c +36 -0
- data/ext/asyncengine_ext/libuv/test/test-get-memory.c +38 -0
- data/ext/asyncengine_ext/libuv/test/test-getaddrinfo.c +122 -0
- data/ext/asyncengine_ext/libuv/test/test-gethostbyname.c +189 -0
- data/ext/asyncengine_ext/libuv/test/test-getsockname.c +342 -0
- data/ext/asyncengine_ext/libuv/test/test-hrtime.c +51 -0
- data/ext/asyncengine_ext/libuv/test/test-idle.c +81 -0
- data/ext/asyncengine_ext/libuv/test/test-ipc-send-recv.c +209 -0
- data/ext/asyncengine_ext/libuv/test/test-ipc.c +614 -0
- data/ext/asyncengine_ext/libuv/test/test-list.h +371 -0
- data/ext/asyncengine_ext/libuv/test/test-loop-handles.c +359 -0
- data/ext/asyncengine_ext/libuv/test/test-multiple-listen.c +102 -0
- data/ext/asyncengine_ext/libuv/test/test-mutexes.c +63 -0
- data/ext/asyncengine_ext/libuv/test/test-pass-always.c +28 -0
- data/ext/asyncengine_ext/libuv/test/test-ping-pong.c +253 -0
- data/ext/asyncengine_ext/libuv/test/test-pipe-bind-error.c +140 -0
- data/ext/asyncengine_ext/libuv/test/test-pipe-connect-error.c +96 -0
- data/ext/asyncengine_ext/libuv/test/test-platform-output.c +87 -0
- data/ext/asyncengine_ext/libuv/test/test-process-title.c +42 -0
- data/ext/asyncengine_ext/libuv/test/test-ref.c +322 -0
- data/ext/asyncengine_ext/libuv/test/test-run-once.c +44 -0
- data/ext/asyncengine_ext/libuv/test/test-shutdown-close.c +103 -0
- data/ext/asyncengine_ext/libuv/test/test-shutdown-eof.c +183 -0
- data/ext/asyncengine_ext/libuv/test/test-spawn.c +499 -0
- data/ext/asyncengine_ext/libuv/test/test-stdio-over-pipes.c +256 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-bind-error.c +191 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-bind6-error.c +154 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-close.c +129 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-connect-error.c +70 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-connect6-error.c +68 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-flags.c +51 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-write-error.c +168 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-write-to-half-open-connection.c +135 -0
- data/ext/asyncengine_ext/libuv/test/test-tcp-writealot.c +195 -0
- data/ext/asyncengine_ext/libuv/test/test-thread.c +183 -0
- data/ext/asyncengine_ext/libuv/test/test-threadpool.c +57 -0
- data/ext/asyncengine_ext/libuv/test/test-timer-again.c +141 -0
- data/ext/asyncengine_ext/libuv/test/test-timer.c +130 -0
- data/ext/asyncengine_ext/libuv/test/test-tty.c +110 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-dgram-too-big.c +86 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-ipv6.c +156 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-multicast-join.c +139 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-multicast-ttl.c +86 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-options.c +86 -0
- data/ext/asyncengine_ext/libuv/test/test-udp-send-and-recv.c +208 -0
- data/ext/asyncengine_ext/libuv/test/test-util.c +97 -0
- data/ext/asyncengine_ext/libuv/uv.gyp +435 -0
- data/ext/asyncengine_ext/libuv/vcbuild.bat +105 -0
- data/lib/asyncengine/version.rb +3 -0
- data/lib/asyncengine.rb +41 -0
- metadata +384 -0
@@ -0,0 +1,134 @@
|
|
1
|
+
|
2
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
3
|
+
*
|
4
|
+
* Permission to use, copy, modify, and distribute this
|
5
|
+
* software and its documentation for any purpose and without
|
6
|
+
* fee is hereby granted, provided that the above copyright
|
7
|
+
* notice appear in all copies and that both that copyright
|
8
|
+
* notice and this permission notice appear in supporting
|
9
|
+
* documentation, and that the name of M.I.T. not be used in
|
10
|
+
* advertising or publicity pertaining to distribution of the
|
11
|
+
* software without specific, written prior permission.
|
12
|
+
* M.I.T. makes no representations about the suitability of
|
13
|
+
* this software for any purpose. It is provided "as is"
|
14
|
+
* without express or implied warranty.
|
15
|
+
*/
|
16
|
+
|
17
|
+
#include "ares_setup.h"
|
18
|
+
|
19
|
+
#ifdef HAVE_SYS_SOCKET_H
|
20
|
+
# include <sys/socket.h>
|
21
|
+
#endif
|
22
|
+
#ifdef HAVE_NETINET_IN_H
|
23
|
+
# include <netinet/in.h>
|
24
|
+
#endif
|
25
|
+
#ifdef HAVE_ARPA_NAMESER_H
|
26
|
+
# include <arpa/nameser.h>
|
27
|
+
#else
|
28
|
+
# include "nameser.h"
|
29
|
+
#endif
|
30
|
+
#ifdef HAVE_ARPA_NAMESER_COMPAT_H
|
31
|
+
# include <arpa/nameser_compat.h>
|
32
|
+
#endif
|
33
|
+
|
34
|
+
#include <stdlib.h>
|
35
|
+
#include <string.h>
|
36
|
+
#include <time.h>
|
37
|
+
#include "ares.h"
|
38
|
+
#include "ares_dns.h"
|
39
|
+
#include "ares_private.h"
|
40
|
+
|
41
|
+
void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
|
42
|
+
ares_callback callback, void *arg)
|
43
|
+
{
|
44
|
+
struct query *query;
|
45
|
+
int i;
|
46
|
+
struct timeval now;
|
47
|
+
|
48
|
+
/* Verify that the query is at least long enough to hold the header. */
|
49
|
+
if (qlen < HFIXEDSZ || qlen >= (1 << 16))
|
50
|
+
{
|
51
|
+
callback(arg, ARES_EBADQUERY, 0, NULL, 0);
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
|
55
|
+
/* Allocate space for query and allocated fields. */
|
56
|
+
query = malloc(sizeof(struct query));
|
57
|
+
if (!query)
|
58
|
+
{
|
59
|
+
callback(arg, ARES_ENOMEM, 0, NULL, 0);
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
query->tcpbuf = malloc(qlen + 2);
|
63
|
+
if (!query->tcpbuf)
|
64
|
+
{
|
65
|
+
free(query);
|
66
|
+
callback(arg, ARES_ENOMEM, 0, NULL, 0);
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
query->server_info = malloc(channel->nservers *
|
70
|
+
sizeof(query->server_info[0]));
|
71
|
+
if (!query->server_info)
|
72
|
+
{
|
73
|
+
free(query->tcpbuf);
|
74
|
+
free(query);
|
75
|
+
callback(arg, ARES_ENOMEM, 0, NULL, 0);
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
|
79
|
+
/* Compute the query ID. Start with no timeout. */
|
80
|
+
query->qid = (unsigned short)DNS_HEADER_QID(qbuf);
|
81
|
+
query->timeout.tv_sec = 0;
|
82
|
+
query->timeout.tv_usec = 0;
|
83
|
+
|
84
|
+
/* Form the TCP query buffer by prepending qlen (as two
|
85
|
+
* network-order bytes) to qbuf.
|
86
|
+
*/
|
87
|
+
query->tcpbuf[0] = (unsigned char)((qlen >> 8) & 0xff);
|
88
|
+
query->tcpbuf[1] = (unsigned char)(qlen & 0xff);
|
89
|
+
memcpy(query->tcpbuf + 2, qbuf, qlen);
|
90
|
+
query->tcplen = qlen + 2;
|
91
|
+
|
92
|
+
/* Fill in query arguments. */
|
93
|
+
query->qbuf = query->tcpbuf + 2;
|
94
|
+
query->qlen = qlen;
|
95
|
+
query->callback = callback;
|
96
|
+
query->arg = arg;
|
97
|
+
|
98
|
+
/* Initialize query status. */
|
99
|
+
query->try_count = 0;
|
100
|
+
|
101
|
+
/* Choose the server to send the query to. If rotation is enabled, keep track
|
102
|
+
* of the next server we want to use. */
|
103
|
+
query->server = channel->last_server;
|
104
|
+
if (channel->rotate == 1)
|
105
|
+
channel->last_server = (channel->last_server + 1) % channel->nservers;
|
106
|
+
|
107
|
+
for (i = 0; i < channel->nservers; i++)
|
108
|
+
{
|
109
|
+
query->server_info[i].skip_server = 0;
|
110
|
+
query->server_info[i].tcp_connection_generation = 0;
|
111
|
+
}
|
112
|
+
query->using_tcp = (channel->flags & ARES_FLAG_USEVC) || qlen > PACKETSZ;
|
113
|
+
query->error_status = ARES_ECONNREFUSED;
|
114
|
+
query->timeouts = 0;
|
115
|
+
|
116
|
+
/* Initialize our list nodes. */
|
117
|
+
ares__init_list_node(&(query->queries_by_qid), query);
|
118
|
+
ares__init_list_node(&(query->queries_by_timeout), query);
|
119
|
+
ares__init_list_node(&(query->queries_to_server), query);
|
120
|
+
ares__init_list_node(&(query->all_queries), query);
|
121
|
+
|
122
|
+
/* Chain the query into the list of all queries. */
|
123
|
+
ares__insert_in_list(&(query->all_queries), &(channel->all_queries));
|
124
|
+
/* Keep track of queries bucketed by qid, so we can process DNS
|
125
|
+
* responses quickly.
|
126
|
+
*/
|
127
|
+
ares__insert_in_list(
|
128
|
+
&(query->queries_by_qid),
|
129
|
+
&(channel->queries_by_qid[query->qid % ARES_QID_TABLE_SIZE]));
|
130
|
+
|
131
|
+
/* Perform the first query action. */
|
132
|
+
now = ares__tvnow();
|
133
|
+
ares__send_query(channel, query, &now);
|
134
|
+
}
|
@@ -0,0 +1,199 @@
|
|
1
|
+
#ifndef HEADER_CARES_SETUP_H
|
2
|
+
#define HEADER_CARES_SETUP_H
|
3
|
+
|
4
|
+
|
5
|
+
/* Copyright (C) 2004 - 2009 by Daniel Stenberg et al
|
6
|
+
*
|
7
|
+
* Permission to use, copy, modify, and distribute this software and its
|
8
|
+
* documentation for any purpose and without fee is hereby granted, provided
|
9
|
+
* that the above copyright notice appear in all copies and that both that
|
10
|
+
* copyright notice and this permission notice appear in supporting
|
11
|
+
* documentation, and that the name of M.I.T. not be used in advertising or
|
12
|
+
* publicity pertaining to distribution of the software without specific,
|
13
|
+
* written prior permission. M.I.T. makes no representations about the
|
14
|
+
* suitability of this software for any purpose. It is provided "as is"
|
15
|
+
* without express or implied warranty.
|
16
|
+
*/
|
17
|
+
|
18
|
+
/*
|
19
|
+
* Define WIN32 when build target is Win32 API
|
20
|
+
*/
|
21
|
+
|
22
|
+
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
23
|
+
#define WIN32
|
24
|
+
#endif
|
25
|
+
|
26
|
+
/*
|
27
|
+
* Include configuration script results or hand-crafted
|
28
|
+
* configuration file for platforms which lack config tool.
|
29
|
+
*/
|
30
|
+
|
31
|
+
#ifdef HAVE_CONFIG_H
|
32
|
+
#include "ares_config.h"
|
33
|
+
#else
|
34
|
+
|
35
|
+
#ifdef WIN32
|
36
|
+
#include "config-win32.h"
|
37
|
+
#endif
|
38
|
+
|
39
|
+
#endif /* HAVE_CONFIG_H */
|
40
|
+
|
41
|
+
/* ================================================================ */
|
42
|
+
/* Definition of preprocessor macros/symbols which modify compiler */
|
43
|
+
/* behaviour or generated code characteristics must be done here, */
|
44
|
+
/* as appropriate, before any system header file is included. It is */
|
45
|
+
/* also possible to have them defined in the config file included */
|
46
|
+
/* before this point. As a result of all this we frown inclusion of */
|
47
|
+
/* system header files in our config files, avoid this at any cost. */
|
48
|
+
/* ================================================================ */
|
49
|
+
|
50
|
+
/*
|
51
|
+
* AIX 4.3 and newer needs _THREAD_SAFE defined to build
|
52
|
+
* proper reentrant code. Others may also need it.
|
53
|
+
*/
|
54
|
+
|
55
|
+
#ifdef NEED_THREAD_SAFE
|
56
|
+
# ifndef _THREAD_SAFE
|
57
|
+
# define _THREAD_SAFE
|
58
|
+
# endif
|
59
|
+
#endif
|
60
|
+
|
61
|
+
/*
|
62
|
+
* Tru64 needs _REENTRANT set for a few function prototypes and
|
63
|
+
* things to appear in the system header files. Unixware needs it
|
64
|
+
* to build proper reentrant code. Others may also need it.
|
65
|
+
*/
|
66
|
+
|
67
|
+
#ifdef NEED_REENTRANT
|
68
|
+
# ifndef _REENTRANT
|
69
|
+
# define _REENTRANT
|
70
|
+
# endif
|
71
|
+
#endif
|
72
|
+
|
73
|
+
/* ================================================================ */
|
74
|
+
/* If you need to include a system header file for your platform, */
|
75
|
+
/* please, do it beyond the point further indicated in this file. */
|
76
|
+
/* ================================================================ */
|
77
|
+
|
78
|
+
#if 0 /* libuv hack */
|
79
|
+
/*
|
80
|
+
* c-ares external interface definitions are also used internally,
|
81
|
+
* and might also include required system header files to define them.
|
82
|
+
*/
|
83
|
+
|
84
|
+
#include <ares_build.h>
|
85
|
+
|
86
|
+
/*
|
87
|
+
* Compile time sanity checks must also be done when building the library.
|
88
|
+
*/
|
89
|
+
|
90
|
+
#include <ares_rules.h>
|
91
|
+
#endif /* libuv hack */
|
92
|
+
|
93
|
+
/* ================================================================= */
|
94
|
+
/* No system header file shall be included in this file before this */
|
95
|
+
/* point. The only allowed ones are those included from ares_build.h */
|
96
|
+
/* ================================================================= */
|
97
|
+
|
98
|
+
/*
|
99
|
+
* Include header files for windows builds before redefining anything.
|
100
|
+
* Use this preproessor block only to include or exclude windows.h,
|
101
|
+
* winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
|
102
|
+
* to any other further and independent block. Under Cygwin things work
|
103
|
+
* just as under linux (e.g. <sys/socket.h>) and the winsock headers should
|
104
|
+
* never be included when __CYGWIN__ is defined. configure script takes
|
105
|
+
* care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
|
106
|
+
* neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
|
107
|
+
*/
|
108
|
+
|
109
|
+
#ifdef HAVE_WINDOWS_H
|
110
|
+
# ifndef WIN32_LEAN_AND_MEAN
|
111
|
+
# define WIN32_LEAN_AND_MEAN
|
112
|
+
# endif
|
113
|
+
# include <windows.h>
|
114
|
+
# ifdef HAVE_WINSOCK2_H
|
115
|
+
# include <winsock2.h>
|
116
|
+
# ifdef HAVE_WS2TCPIP_H
|
117
|
+
# include <ws2tcpip.h>
|
118
|
+
# endif
|
119
|
+
# else
|
120
|
+
# ifdef HAVE_WINSOCK_H
|
121
|
+
# include <winsock.h>
|
122
|
+
# endif
|
123
|
+
# endif
|
124
|
+
#endif
|
125
|
+
|
126
|
+
/*
|
127
|
+
* Define USE_WINSOCK to 2 if we have and use WINSOCK2 API, else
|
128
|
+
* define USE_WINSOCK to 1 if we have and use WINSOCK API, else
|
129
|
+
* undefine USE_WINSOCK.
|
130
|
+
*/
|
131
|
+
|
132
|
+
#undef USE_WINSOCK
|
133
|
+
|
134
|
+
#ifdef HAVE_WINSOCK2_H
|
135
|
+
# define USE_WINSOCK 2
|
136
|
+
#else
|
137
|
+
# ifdef HAVE_WINSOCK_H
|
138
|
+
# define USE_WINSOCK 1
|
139
|
+
# endif
|
140
|
+
#endif
|
141
|
+
|
142
|
+
/*
|
143
|
+
* Work-arounds for systems without configure support
|
144
|
+
*/
|
145
|
+
|
146
|
+
#ifndef HAVE_CONFIG_H
|
147
|
+
|
148
|
+
#if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER) && !defined(__WATCOMC__)
|
149
|
+
#define HAVE_SYS_TIME_H
|
150
|
+
#endif
|
151
|
+
|
152
|
+
#if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
|
153
|
+
#define HAVE_UNISTD_H 1
|
154
|
+
#endif
|
155
|
+
|
156
|
+
#if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
|
157
|
+
#define HAVE_SYS_UIO_H
|
158
|
+
#endif
|
159
|
+
|
160
|
+
#endif /* HAVE_CONFIG_H */
|
161
|
+
|
162
|
+
#ifdef __POCC__
|
163
|
+
# include <sys/types.h>
|
164
|
+
# include <unistd.h>
|
165
|
+
# define ESRCH 3
|
166
|
+
#endif
|
167
|
+
|
168
|
+
/*
|
169
|
+
* Recent autoconf versions define these symbols in ares_config.h. We don't
|
170
|
+
* want them (since they collide with the libcurl ones when we build
|
171
|
+
* --enable-debug) so we undef them again here.
|
172
|
+
*/
|
173
|
+
|
174
|
+
#undef PACKAGE_STRING
|
175
|
+
#undef PACKAGE_TARNAME
|
176
|
+
#undef PACKAGE_VERSION
|
177
|
+
#undef PACKAGE_BUGREPORT
|
178
|
+
#undef PACKAGE_NAME
|
179
|
+
#undef VERSION
|
180
|
+
#undef PACKAGE
|
181
|
+
|
182
|
+
/* IPv6 compatibility */
|
183
|
+
#if !defined(HAVE_AF_INET6)
|
184
|
+
#if defined(HAVE_PF_INET6)
|
185
|
+
#define AF_INET6 PF_INET6
|
186
|
+
#else
|
187
|
+
#define AF_INET6 AF_MAX+1
|
188
|
+
#endif
|
189
|
+
#endif
|
190
|
+
|
191
|
+
/*
|
192
|
+
* Include macros and defines that should only be processed once.
|
193
|
+
*/
|
194
|
+
|
195
|
+
#ifndef __SETUP_ONCE_H
|
196
|
+
#include "setup_once.h"
|
197
|
+
#endif
|
198
|
+
|
199
|
+
#endif /* HEADER_CARES_SETUP_H */
|
@@ -0,0 +1,66 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
4
|
+
*
|
5
|
+
* Permission to use, copy, modify, and distribute this
|
6
|
+
* software and its documentation for any purpose and without
|
7
|
+
* fee is hereby granted, provided that the above copyright
|
8
|
+
* notice appear in all copies and that both that copyright
|
9
|
+
* notice and this permission notice appear in supporting
|
10
|
+
* documentation, and that the name of M.I.T. not be used in
|
11
|
+
* advertising or publicity pertaining to distribution of the
|
12
|
+
* software without specific, written prior permission.
|
13
|
+
* M.I.T. makes no representations about the suitability of
|
14
|
+
* this software for any purpose. It is provided "as is"
|
15
|
+
* without express or implied warranty.
|
16
|
+
*/
|
17
|
+
|
18
|
+
#include "ares_setup.h"
|
19
|
+
#include "ares_strcasecmp.h"
|
20
|
+
|
21
|
+
#ifndef HAVE_STRCASECMP
|
22
|
+
int ares_strcasecmp(const char *a, const char *b)
|
23
|
+
{
|
24
|
+
#if defined(HAVE_STRCMPI)
|
25
|
+
return strcmpi(a, b);
|
26
|
+
#elif defined(HAVE_STRICMP)
|
27
|
+
return stricmp(a, b);
|
28
|
+
#else
|
29
|
+
size_t i;
|
30
|
+
|
31
|
+
for (i = 0; i < (size_t)-1; i++) {
|
32
|
+
int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
|
33
|
+
int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
|
34
|
+
if (c1 != c2)
|
35
|
+
return c1-c2;
|
36
|
+
if (!c1)
|
37
|
+
break;
|
38
|
+
}
|
39
|
+
return 0;
|
40
|
+
#endif
|
41
|
+
}
|
42
|
+
#endif
|
43
|
+
|
44
|
+
#ifndef HAVE_STRNCASECMP
|
45
|
+
int ares_strncasecmp(const char *a, const char *b, size_t n)
|
46
|
+
{
|
47
|
+
#if defined(HAVE_STRNCMPI)
|
48
|
+
return strncmpi(a, b, n);
|
49
|
+
#elif defined(HAVE_STRNICMP)
|
50
|
+
return strnicmp(a, b, n);
|
51
|
+
#else
|
52
|
+
size_t i;
|
53
|
+
|
54
|
+
for (i = 0; i < n; i++) {
|
55
|
+
int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
|
56
|
+
int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
|
57
|
+
if (c1 != c2)
|
58
|
+
return c1-c2;
|
59
|
+
if (!c1)
|
60
|
+
break;
|
61
|
+
}
|
62
|
+
return 0;
|
63
|
+
#endif
|
64
|
+
}
|
65
|
+
#endif
|
66
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#ifndef HEADER_CARES_STRCASECMP_H
|
2
|
+
#define HEADER_CARES_STRCASECMP_H
|
3
|
+
|
4
|
+
|
5
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
6
|
+
*
|
7
|
+
* Permission to use, copy, modify, and distribute this
|
8
|
+
* software and its documentation for any purpose and without
|
9
|
+
* fee is hereby granted, provided that the above copyright
|
10
|
+
* notice appear in all copies and that both that copyright
|
11
|
+
* notice and this permission notice appear in supporting
|
12
|
+
* documentation, and that the name of M.I.T. not be used in
|
13
|
+
* advertising or publicity pertaining to distribution of the
|
14
|
+
* software without specific, written prior permission.
|
15
|
+
* M.I.T. makes no representations about the suitability of
|
16
|
+
* this software for any purpose. It is provided "as is"
|
17
|
+
* without express or implied warranty.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#include "ares_setup.h"
|
21
|
+
|
22
|
+
#ifndef HAVE_STRCASECMP
|
23
|
+
extern int ares_strcasecmp(const char *a, const char *b);
|
24
|
+
#endif
|
25
|
+
|
26
|
+
#ifndef HAVE_STRNCASECMP
|
27
|
+
extern int ares_strncasecmp(const char *a, const char *b, size_t n);
|
28
|
+
#endif
|
29
|
+
|
30
|
+
#endif /* HEADER_CARES_STRCASECMP_H */
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
4
|
+
*
|
5
|
+
* Permission to use, copy, modify, and distribute this
|
6
|
+
* software and its documentation for any purpose and without
|
7
|
+
* fee is hereby granted, provided that the above copyright
|
8
|
+
* notice appear in all copies and that both that copyright
|
9
|
+
* notice and this permission notice appear in supporting
|
10
|
+
* documentation, and that the name of M.I.T. not be used in
|
11
|
+
* advertising or publicity pertaining to distribution of the
|
12
|
+
* software without specific, written prior permission.
|
13
|
+
* M.I.T. makes no representations about the suitability of
|
14
|
+
* this software for any purpose. It is provided "as is"
|
15
|
+
* without express or implied warranty.
|
16
|
+
*/
|
17
|
+
|
18
|
+
#include "ares_setup.h"
|
19
|
+
#include "ares_strdup.h"
|
20
|
+
|
21
|
+
#ifndef HAVE_STRDUP
|
22
|
+
char *ares_strdup(const char *s1)
|
23
|
+
{
|
24
|
+
size_t sz;
|
25
|
+
char * s2;
|
26
|
+
|
27
|
+
if(s1) {
|
28
|
+
sz = strlen(s1);
|
29
|
+
if(sz < (size_t)-1) {
|
30
|
+
sz++;
|
31
|
+
if(sz < ((size_t)-1) / sizeof(char)) {
|
32
|
+
s2 = malloc(sz * sizeof(char));
|
33
|
+
if(s2) {
|
34
|
+
memcpy(s2, s1, sz * sizeof(char));
|
35
|
+
return s2;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
return (char *)NULL;
|
41
|
+
}
|
42
|
+
#endif
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#ifndef HEADER_CARES_STRDUP_H
|
2
|
+
#define HEADER_CARES_STRDUP_H
|
3
|
+
|
4
|
+
|
5
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
6
|
+
*
|
7
|
+
* Permission to use, copy, modify, and distribute this
|
8
|
+
* software and its documentation for any purpose and without
|
9
|
+
* fee is hereby granted, provided that the above copyright
|
10
|
+
* notice appear in all copies and that both that copyright
|
11
|
+
* notice and this permission notice appear in supporting
|
12
|
+
* documentation, and that the name of M.I.T. not be used in
|
13
|
+
* advertising or publicity pertaining to distribution of the
|
14
|
+
* software without specific, written prior permission.
|
15
|
+
* M.I.T. makes no representations about the suitability of
|
16
|
+
* this software for any purpose. It is provided "as is"
|
17
|
+
* without express or implied warranty.
|
18
|
+
*/
|
19
|
+
|
20
|
+
#include "ares_setup.h"
|
21
|
+
|
22
|
+
#ifndef HAVE_STRDUP
|
23
|
+
extern char *ares_strdup(const char *s1);
|
24
|
+
#endif
|
25
|
+
|
26
|
+
#endif /* HEADER_CARES_STRDUP_H */
|
@@ -0,0 +1,56 @@
|
|
1
|
+
|
2
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
3
|
+
*
|
4
|
+
* Permission to use, copy, modify, and distribute this
|
5
|
+
* software and its documentation for any purpose and without
|
6
|
+
* fee is hereby granted, provided that the above copyright
|
7
|
+
* notice appear in all copies and that both that copyright
|
8
|
+
* notice and this permission notice appear in supporting
|
9
|
+
* documentation, and that the name of M.I.T. not be used in
|
10
|
+
* advertising or publicity pertaining to distribution of the
|
11
|
+
* software without specific, written prior permission.
|
12
|
+
* M.I.T. makes no representations about the suitability of
|
13
|
+
* this software for any purpose. It is provided "as is"
|
14
|
+
* without express or implied warranty.
|
15
|
+
*/
|
16
|
+
|
17
|
+
#include "ares_setup.h"
|
18
|
+
#include <assert.h>
|
19
|
+
#include "ares.h"
|
20
|
+
|
21
|
+
const char *ares_strerror(int code)
|
22
|
+
{
|
23
|
+
/* Return a string literal from a table. */
|
24
|
+
const char *errtext[] = {
|
25
|
+
"Successful completion",
|
26
|
+
"DNS server returned answer with no data",
|
27
|
+
"DNS server claims query was misformatted",
|
28
|
+
"DNS server returned general failure",
|
29
|
+
"Domain name not found",
|
30
|
+
"DNS server does not implement requested operation",
|
31
|
+
"DNS server refused query",
|
32
|
+
"Misformatted DNS query",
|
33
|
+
"Misformatted domain name",
|
34
|
+
"Unsupported address family",
|
35
|
+
"Misformatted DNS reply",
|
36
|
+
"Could not contact DNS servers",
|
37
|
+
"Timeout while contacting DNS servers",
|
38
|
+
"End of file",
|
39
|
+
"Error reading file",
|
40
|
+
"Out of memory",
|
41
|
+
"Channel is being destroyed",
|
42
|
+
"Misformatted string",
|
43
|
+
"Illegal flags specified",
|
44
|
+
"Given hostname is not numeric",
|
45
|
+
"Illegal hints flags specified",
|
46
|
+
"c-ares library initialization not yet performed",
|
47
|
+
"Error loading iphlpapi.dll",
|
48
|
+
"Could not find GetNetworkParams function",
|
49
|
+
"DNS query cancelled"
|
50
|
+
};
|
51
|
+
|
52
|
+
if(code >= 0 && code < (int)(sizeof(errtext) / sizeof(*errtext)))
|
53
|
+
return errtext[code];
|
54
|
+
else
|
55
|
+
return "unknown";
|
56
|
+
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
|
2
|
+
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
3
|
+
*
|
4
|
+
* Permission to use, copy, modify, and distribute this
|
5
|
+
* software and its documentation for any purpose and without
|
6
|
+
* fee is hereby granted, provided that the above copyright
|
7
|
+
* notice appear in all copies and that both that copyright
|
8
|
+
* notice and this permission notice appear in supporting
|
9
|
+
* documentation, and that the name of M.I.T. not be used in
|
10
|
+
* advertising or publicity pertaining to distribution of the
|
11
|
+
* software without specific, written prior permission.
|
12
|
+
* M.I.T. makes no representations about the suitability of
|
13
|
+
* this software for any purpose. It is provided "as is"
|
14
|
+
* without express or implied warranty.
|
15
|
+
*/
|
16
|
+
|
17
|
+
#include "ares_setup.h"
|
18
|
+
|
19
|
+
#ifdef HAVE_SYS_TIME_H
|
20
|
+
#include <sys/time.h>
|
21
|
+
#endif
|
22
|
+
|
23
|
+
#include <time.h>
|
24
|
+
|
25
|
+
#include "ares.h"
|
26
|
+
#include "ares_private.h"
|
27
|
+
|
28
|
+
/* WARNING: Beware that this is linear in the number of outstanding
|
29
|
+
* requests! You are probably far better off just calling ares_process()
|
30
|
+
* once per second, rather than calling ares_timeout() to figure out
|
31
|
+
* when to next call ares_process().
|
32
|
+
*/
|
33
|
+
struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
|
34
|
+
struct timeval *tvbuf)
|
35
|
+
{
|
36
|
+
struct query *query;
|
37
|
+
struct list_node* list_head;
|
38
|
+
struct list_node* list_node;
|
39
|
+
struct timeval now;
|
40
|
+
struct timeval nextstop;
|
41
|
+
long offset, min_offset;
|
42
|
+
|
43
|
+
/* No queries, no timeout (and no fetch of the current time). */
|
44
|
+
if (ares__is_list_empty(&(channel->all_queries)))
|
45
|
+
return maxtv;
|
46
|
+
|
47
|
+
/* Find the minimum timeout for the current set of queries. */
|
48
|
+
now = ares__tvnow();
|
49
|
+
min_offset = -1;
|
50
|
+
|
51
|
+
list_head = &(channel->all_queries);
|
52
|
+
for (list_node = list_head->next; list_node != list_head;
|
53
|
+
list_node = list_node->next)
|
54
|
+
{
|
55
|
+
query = list_node->data;
|
56
|
+
if (query->timeout.tv_sec == 0)
|
57
|
+
continue;
|
58
|
+
offset = ares__timeoffset(&now, &query->timeout);
|
59
|
+
if (offset < 0)
|
60
|
+
offset = 0;
|
61
|
+
if (min_offset == -1 || offset < min_offset)
|
62
|
+
min_offset = offset;
|
63
|
+
}
|
64
|
+
|
65
|
+
if(min_offset != -1) {
|
66
|
+
nextstop.tv_sec = min_offset/1000;
|
67
|
+
nextstop.tv_usec = (min_offset%1000)*1000;
|
68
|
+
}
|
69
|
+
|
70
|
+
/* If we found a minimum timeout and it's sooner than the one specified in
|
71
|
+
* maxtv (if any), return it. Otherwise go with maxtv.
|
72
|
+
*/
|
73
|
+
if (min_offset != -1 && (!maxtv || ares__timedout(maxtv, &nextstop)))
|
74
|
+
{
|
75
|
+
*tvbuf = nextstop;
|
76
|
+
return tvbuf;
|
77
|
+
}
|
78
|
+
else
|
79
|
+
return maxtv;
|
80
|
+
}
|