nutcracker 0.2.3 → 0.2.4.beta1

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 (296) hide show
  1. data/README.md +53 -5
  2. data/Rakefile +14 -19
  3. data/bin/nutcracker +6 -1
  4. data/ext/nutcracker/ChangeLog +9 -0
  5. data/ext/nutcracker/LICENSE +0 -0
  6. data/ext/nutcracker/Makefile +643 -0
  7. data/ext/nutcracker/Makefile.am +0 -0
  8. data/ext/nutcracker/Makefile.in +66 -149
  9. data/ext/nutcracker/NOTICE +0 -0
  10. data/ext/nutcracker/README.md +13 -11
  11. data/ext/nutcracker/aclocal.m4 +112 -201
  12. data/ext/nutcracker/autom4te.cache/output.0 +18664 -0
  13. data/ext/nutcracker/autom4te.cache/output.1 +18664 -0
  14. data/ext/nutcracker/autom4te.cache/output.2 +18664 -0
  15. data/ext/nutcracker/autom4te.cache/requests +494 -0
  16. data/ext/nutcracker/autom4te.cache/traces.0 +2415 -0
  17. data/ext/nutcracker/autom4te.cache/traces.1 +945 -0
  18. data/ext/nutcracker/autom4te.cache/traces.2 +2415 -0
  19. data/ext/nutcracker/conf/nutcracker.leaf.yml +0 -0
  20. data/ext/nutcracker/conf/nutcracker.root.yml +0 -0
  21. data/ext/nutcracker/conf/nutcracker.yml +0 -0
  22. data/ext/nutcracker/config.h +332 -0
  23. data/ext/nutcracker/config.h.in +15 -0
  24. data/ext/nutcracker/config.log +2684 -0
  25. data/ext/nutcracker/config.status +2317 -0
  26. data/ext/nutcracker/config/config.guess +23 -84
  27. data/ext/nutcracker/config/config.sub +23 -93
  28. data/ext/nutcracker/config/depcomp +35 -81
  29. data/ext/nutcracker/config/install-sh +109 -122
  30. data/ext/nutcracker/config/ltmain.sh +1053 -721
  31. data/ext/nutcracker/config/missing +20 -29
  32. data/ext/nutcracker/configure +2122 -2320
  33. data/ext/nutcracker/configure.ac +35 -3
  34. data/ext/nutcracker/contrib/Makefile +494 -0
  35. data/ext/nutcracker/contrib/Makefile.am +0 -0
  36. data/ext/nutcracker/contrib/Makefile.in +41 -107
  37. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  38. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile +736 -0
  39. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +13102 -0
  40. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +13085 -0
  41. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.2 +13085 -0
  42. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +476 -0
  43. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.0 +2339 -0
  44. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +545 -0
  45. data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +2339 -0
  46. data/ext/nutcracker/contrib/yaml-0.1.4/config.h +81 -0
  47. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +80 -0
  48. data/ext/nutcracker/contrib/yaml-0.1.4/config.log +688 -0
  49. data/ext/nutcracker/contrib/yaml-0.1.4/config.status +2032 -0
  50. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/annotated.html +51 -0
  51. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/bc_s.png +0 -0
  52. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/classes.html +41 -0
  53. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/closed.png +0 -0
  54. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.css +656 -0
  55. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.png +0 -0
  56. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/files.html +40 -0
  57. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions.html +91 -0
  58. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x62.html +84 -0
  59. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x63.html +87 -0
  60. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x64.html +83 -0
  61. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x65.html +110 -0
  62. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x66.html +79 -0
  63. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x68.html +80 -0
  64. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x69.html +92 -0
  65. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6b.html +71 -0
  66. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6c.html +88 -0
  67. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6d.html +96 -0
  68. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6e.html +71 -0
  69. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6f.html +80 -0
  70. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x70.html +100 -0
  71. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x71.html +71 -0
  72. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x72.html +87 -0
  73. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x73.html +163 -0
  74. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x74.html +115 -0
  75. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x75.html +71 -0
  76. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x76.html +80 -0
  77. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x77.html +77 -0
  78. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars.html +91 -0
  79. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x62.html +84 -0
  80. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x63.html +87 -0
  81. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x64.html +83 -0
  82. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x65.html +110 -0
  83. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x66.html +79 -0
  84. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x68.html +80 -0
  85. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x69.html +92 -0
  86. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6b.html +71 -0
  87. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6c.html +88 -0
  88. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6d.html +96 -0
  89. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6e.html +71 -0
  90. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6f.html +80 -0
  91. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x70.html +100 -0
  92. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x71.html +71 -0
  93. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x72.html +87 -0
  94. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x73.html +163 -0
  95. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x74.html +115 -0
  96. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x75.html +71 -0
  97. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x76.html +80 -0
  98. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x77.html +77 -0
  99. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals.html +667 -0
  100. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_defs.html +81 -0
  101. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_enum.html +78 -0
  102. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_eval.html +373 -0
  103. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_func.html +196 -0
  104. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_type.html +126 -0
  105. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__basic.html +320 -0
  106. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__emitter.html +819 -0
  107. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__events.html +664 -0
  108. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__export.html +60 -0
  109. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__nodes.html +795 -0
  110. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__parser.html +606 -0
  111. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__styles.html +222 -0
  112. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__tokens.html +246 -0
  113. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__version.html +106 -0
  114. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/index.html +31 -0
  115. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/modules.html +42 -0
  116. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_f.png +0 -0
  117. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_h.png +0 -0
  118. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/open.png +0 -0
  119. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__alias__data__s.html +108 -0
  120. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__document__s.html +235 -0
  121. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__emitter__s.html +1300 -0
  122. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__event__s.html +496 -0
  123. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__mark__s.html +108 -0
  124. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__pair__s.html +91 -0
  125. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__s.html +420 -0
  126. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__parser__s.html +1229 -0
  127. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__simple__key__s.html +97 -0
  128. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__tag__directive__s.html +91 -0
  129. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__token__s.html +413 -0
  130. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__version__directive__s.html +91 -0
  131. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_a.png +0 -0
  132. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_b.png +0 -0
  133. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_h.png +0 -0
  134. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_s.png +0 -0
  135. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tabs.css +59 -0
  136. data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/yaml_8h.html +525 -0
  137. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.am +17 -0
  138. data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.in +470 -0
  139. data/ext/nutcracker/contrib/yaml-0.1.4/libtool +8890 -0
  140. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile +484 -0
  141. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.lo +12 -0
  142. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.o +0 -0
  143. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.lo +12 -0
  144. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.o +0 -0
  145. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.lo +12 -0
  146. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.o +0 -0
  147. data/ext/nutcracker/contrib/yaml-0.1.4/src/libyaml.la +41 -0
  148. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.lo +12 -0
  149. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.o +0 -0
  150. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.lo +12 -0
  151. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.o +0 -0
  152. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.lo +12 -0
  153. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.o +0 -0
  154. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.lo +12 -0
  155. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.o +0 -0
  156. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.lo +12 -0
  157. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.o +0 -0
  158. data/ext/nutcracker/contrib/yaml-0.1.4/stamp-h1 +1 -0
  159. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile +675 -0
  160. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor +0 -0
  161. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt +0 -0
  162. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.o +0 -0
  163. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.o +0 -0
  164. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter +0 -0
  165. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt +0 -0
  166. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.o +0 -0
  167. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.o +0 -0
  168. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper +0 -0
  169. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.o +0 -0
  170. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter +0 -0
  171. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.o +0 -0
  172. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader +0 -0
  173. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.o +0 -0
  174. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser +0 -0
  175. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.o +0 -0
  176. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner +0 -0
  177. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.o +0 -0
  178. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc +10 -0
  179. data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc.in +10 -0
  180. data/ext/nutcracker/extconf.rb +0 -5
  181. data/ext/nutcracker/libtool +9403 -0
  182. data/ext/nutcracker/m4/libtool.m4 +553 -492
  183. data/ext/nutcracker/m4/ltoptions.m4 +7 -6
  184. data/ext/nutcracker/m4/ltversion.m4 +5 -5
  185. data/ext/nutcracker/m4/lt~obsolete.m4 +9 -3
  186. data/ext/nutcracker/notes/c-styleguide.txt +0 -0
  187. data/ext/nutcracker/notes/debug.txt +0 -0
  188. data/ext/nutcracker/notes/memcache.txt +0 -0
  189. data/ext/nutcracker/notes/recommendation.md +21 -2
  190. data/ext/nutcracker/notes/redis.md +9 -9
  191. data/ext/nutcracker/notes/socket.txt +0 -0
  192. data/ext/nutcracker/scripts/nutcracker.init +0 -0
  193. data/ext/nutcracker/scripts/nutcracker.spec +0 -0
  194. data/ext/nutcracker/scripts/redis-check.py +0 -0
  195. data/ext/nutcracker/scripts/redis-check.sh +9 -0
  196. data/ext/nutcracker/src/Makefile +647 -0
  197. data/ext/nutcracker/src/Makefile.am +1 -1
  198. data/ext/nutcracker/src/Makefile.in +74 -153
  199. data/ext/nutcracker/src/hashkit/Makefile +476 -0
  200. data/ext/nutcracker/src/hashkit/Makefile.am +1 -0
  201. data/ext/nutcracker/src/hashkit/Makefile.in +39 -64
  202. data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
  203. data/ext/nutcracker/src/hashkit/nc_crc16.c +66 -0
  204. data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
  205. data/ext/nutcracker/src/hashkit/nc_crc32.c +0 -0
  206. data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
  207. data/ext/nutcracker/src/hashkit/nc_fnv.c +0 -0
  208. data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
  209. data/ext/nutcracker/src/hashkit/nc_hashkit.h +2 -0
  210. data/ext/nutcracker/src/hashkit/nc_hsieh.c +0 -0
  211. data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
  212. data/ext/nutcracker/src/hashkit/nc_jenkins.c +0 -0
  213. data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
  214. data/ext/nutcracker/src/hashkit/nc_ketama.c +0 -0
  215. data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
  216. data/ext/nutcracker/src/hashkit/nc_md5.c +0 -0
  217. data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
  218. data/ext/nutcracker/src/hashkit/nc_modula.c +18 -6
  219. data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
  220. data/ext/nutcracker/src/hashkit/nc_murmur.c +0 -0
  221. data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
  222. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +0 -0
  223. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
  224. data/ext/nutcracker/src/hashkit/nc_random.c +0 -0
  225. data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
  226. data/ext/nutcracker/src/nc.c +0 -0
  227. data/ext/nutcracker/src/nc.o +0 -0
  228. data/ext/nutcracker/src/nc_array.c +0 -0
  229. data/ext/nutcracker/src/nc_array.h +0 -0
  230. data/ext/nutcracker/src/nc_array.o +0 -0
  231. data/ext/nutcracker/src/nc_client.c +0 -0
  232. data/ext/nutcracker/src/nc_client.h +0 -0
  233. data/ext/nutcracker/src/nc_client.o +0 -0
  234. data/ext/nutcracker/src/nc_conf.c +14 -35
  235. data/ext/nutcracker/src/nc_conf.h +1 -1
  236. data/ext/nutcracker/src/nc_conf.o +0 -0
  237. data/ext/nutcracker/src/nc_connection.c +0 -0
  238. data/ext/nutcracker/src/nc_connection.h +0 -0
  239. data/ext/nutcracker/src/nc_connection.o +0 -0
  240. data/ext/nutcracker/src/nc_core.c +29 -26
  241. data/ext/nutcracker/src/nc_core.h +13 -5
  242. data/ext/nutcracker/src/nc_core.o +0 -0
  243. data/ext/nutcracker/src/{nc_event.c → nc_epoll.c} +94 -30
  244. data/ext/nutcracker/src/nc_epoll.o +0 -0
  245. data/ext/nutcracker/src/nc_event.h +33 -13
  246. data/ext/nutcracker/src/nc_kqueue.c +296 -0
  247. data/ext/nutcracker/src/nc_kqueue.o +0 -0
  248. data/ext/nutcracker/src/nc_log.c +0 -0
  249. data/ext/nutcracker/src/nc_log.h +0 -0
  250. data/ext/nutcracker/src/nc_log.o +0 -0
  251. data/ext/nutcracker/src/nc_mbuf.c +0 -0
  252. data/ext/nutcracker/src/nc_mbuf.h +0 -0
  253. data/ext/nutcracker/src/nc_mbuf.o +0 -0
  254. data/ext/nutcracker/src/nc_message.c +0 -0
  255. data/ext/nutcracker/src/nc_message.h +2 -0
  256. data/ext/nutcracker/src/nc_message.o +0 -0
  257. data/ext/nutcracker/src/nc_proxy.c +8 -8
  258. data/ext/nutcracker/src/nc_proxy.h +0 -0
  259. data/ext/nutcracker/src/nc_proxy.o +0 -0
  260. data/ext/nutcracker/src/nc_queue.h +0 -0
  261. data/ext/nutcracker/src/nc_rbtree.c +0 -0
  262. data/ext/nutcracker/src/nc_rbtree.h +0 -0
  263. data/ext/nutcracker/src/nc_rbtree.o +0 -0
  264. data/ext/nutcracker/src/nc_request.c +3 -3
  265. data/ext/nutcracker/src/nc_request.o +0 -0
  266. data/ext/nutcracker/src/nc_response.c +4 -6
  267. data/ext/nutcracker/src/nc_response.o +0 -0
  268. data/ext/nutcracker/src/nc_server.c +14 -12
  269. data/ext/nutcracker/src/nc_server.h +0 -0
  270. data/ext/nutcracker/src/nc_server.o +0 -0
  271. data/ext/nutcracker/src/nc_signal.c +0 -0
  272. data/ext/nutcracker/src/nc_signal.h +0 -0
  273. data/ext/nutcracker/src/nc_signal.o +0 -0
  274. data/ext/nutcracker/src/nc_stats.c +16 -21
  275. data/ext/nutcracker/src/nc_stats.h +3 -4
  276. data/ext/nutcracker/src/nc_stats.o +0 -0
  277. data/ext/nutcracker/src/nc_string.c +0 -0
  278. data/ext/nutcracker/src/nc_string.h +0 -0
  279. data/ext/nutcracker/src/nc_string.o +0 -0
  280. data/ext/nutcracker/src/nc_util.c +16 -0
  281. data/ext/nutcracker/src/nc_util.h +1 -0
  282. data/ext/nutcracker/src/nc_util.o +0 -0
  283. data/ext/nutcracker/src/nutcracker +0 -0
  284. data/ext/nutcracker/src/proto/Makefile +454 -0
  285. data/ext/nutcracker/src/proto/Makefile.am +0 -0
  286. data/ext/nutcracker/src/proto/Makefile.in +32 -60
  287. data/ext/nutcracker/src/proto/libproto.a +0 -0
  288. data/ext/nutcracker/src/proto/nc_memcache.c +0 -0
  289. data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
  290. data/ext/nutcracker/src/proto/nc_proto.h +0 -0
  291. data/ext/nutcracker/src/proto/nc_redis.c +17 -4
  292. data/ext/nutcracker/src/proto/nc_redis.o +0 -0
  293. data/ext/nutcracker/stamp-h1 +1 -0
  294. data/lib/nutcracker.rb +64 -2
  295. data/lib/nutcracker/version.rb +1 -1
  296. metadata +237 -9
Binary file
@@ -157,11 +157,9 @@ rsp_filter(struct context *ctx, struct conn *conn, struct msg *msg)
157
157
 
158
158
  pmsg = TAILQ_FIRST(&conn->omsg_q);
159
159
  if (pmsg == NULL) {
160
- log_error("filter stray rsp %"PRIu64" len %"PRIu32" on s %d", msg->id,
161
- msg->mlen, conn->sd);
160
+ log_debug(LOG_ERR, "filter stray rsp %"PRIu64" len %"PRIu32" on s %d",
161
+ msg->id, msg->mlen, conn->sd);
162
162
  rsp_put(msg);
163
- errno = EINVAL;
164
- conn->err = errno;
165
163
  return true;
166
164
  }
167
165
  ASSERT(pmsg->peer == NULL);
@@ -222,7 +220,7 @@ rsp_forward(struct context *ctx, struct conn *s_conn, struct msg *msg)
222
220
  ASSERT(c_conn->client && !c_conn->proxy);
223
221
 
224
222
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
225
- status = event_add_out(ctx->ep, c_conn);
223
+ status = event_add_out(ctx->evb, c_conn);
226
224
  if (status != NC_OK) {
227
225
  c_conn->err = errno;
228
226
  }
@@ -267,7 +265,7 @@ rsp_send_next(struct context *ctx, struct conn *conn)
267
265
  log_debug(LOG_INFO, "c %d is done", conn->sd);
268
266
  }
269
267
 
270
- status = event_del_out(ctx->ep, conn);
268
+ status = event_del_out(ctx->evb, conn);
271
269
  if (status != NC_OK) {
272
270
  conn->err = errno;
273
271
  }
Binary file
@@ -367,7 +367,7 @@ server_close(struct context *ctx, struct conn *conn)
367
367
  msg->err = conn->err;
368
368
 
369
369
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
370
- event_add_out(ctx->ep, msg->owner);
370
+ event_add_out(ctx->evb, msg->owner);
371
371
  }
372
372
 
373
373
  log_debug(LOG_INFO, "close s %d schedule error for req %"PRIu64" "
@@ -397,7 +397,7 @@ server_close(struct context *ctx, struct conn *conn)
397
397
  msg->err = conn->err;
398
398
 
399
399
  if (req_done(c_conn, TAILQ_FIRST(&c_conn->omsg_q))) {
400
- event_add_out(ctx->ep, msg->owner);
400
+ event_add_out(ctx->evb, msg->owner);
401
401
  }
402
402
 
403
403
  log_debug(LOG_INFO, "close s %d schedule error for req %"PRIu64" "
@@ -451,7 +451,7 @@ server_connect(struct context *ctx, struct server *server, struct conn *conn)
451
451
  log_debug(LOG_VVERB, "connect to server '%.*s'", server->pname.len,
452
452
  server->pname.data);
453
453
 
454
- conn->sd = socket(conn->family, SOCK_STREAM, 0);
454
+ conn->sd = socket(conn->family, SOCK_STREAM, 0);
455
455
  if (conn->sd < 0) {
456
456
  log_error("socket for server '%.*s' failed: %s", server->pname.len,
457
457
  server->pname.data, strerror(errno));
@@ -467,24 +467,26 @@ server_connect(struct context *ctx, struct server *server, struct conn *conn)
467
467
  goto error;
468
468
  }
469
469
 
470
- status = nc_set_tcpnodelay(conn->sd);
471
- if (status != NC_OK) {
472
- log_warn("set tcpnodelay on s %d for server '%.*s' failed, ignored: %s",
473
- conn->sd, server->pname.len, server->pname.data,
474
- strerror(errno));
470
+ if (server->pname.data[0] != '/') {
471
+ status = nc_set_tcpnodelay(conn->sd);
472
+ if (status != NC_OK) {
473
+ log_warn("set tcpnodelay on s %d for server '%.*s' failed, ignored: %s",
474
+ conn->sd, server->pname.len, server->pname.data,
475
+ strerror(errno));
476
+ }
475
477
  }
476
478
 
477
- status = event_add_conn(ctx->ep, conn);
479
+ status = event_add_conn(ctx->evb, conn);
478
480
  if (status != NC_OK) {
479
- log_error("event add conn e %d s %d for server '%.*s' failed: %s",
480
- ctx->ep, conn->sd, server->pname.len, server->pname.data,
481
+ log_error("event add conn s %d for server '%.*s' failed: %s",
482
+ conn->sd, server->pname.len, server->pname.data,
481
483
  strerror(errno));
482
484
  goto error;
483
485
  }
484
486
 
485
487
  ASSERT(!conn->connecting && !conn->connected);
486
488
 
487
- status = connect(conn->sd, conn->addr, conn->addrlen);
489
+ status = connect(conn->sd, conn->addr, conn->addrlen);
488
490
  if (status != NC_OK) {
489
491
  if (errno == EINPROGRESS) {
490
492
  conn->connecting = 1;
File without changes
Binary file
File without changes
File without changes
Binary file
@@ -21,11 +21,11 @@
21
21
 
22
22
  #include <sys/types.h>
23
23
  #include <sys/socket.h>
24
- #include <sys/epoll.h>
25
24
  #include <netinet/in.h>
26
25
 
27
26
  #include <nc_core.h>
28
27
  #include <nc_server.h>
28
+ #include <nc_event.h>
29
29
 
30
30
  struct stats_desc {
31
31
  char *name; /* stats name */
@@ -777,15 +777,7 @@ stats_loop(void *arg)
777
777
  int n;
778
778
 
779
779
  for (;;) {
780
- n = epoll_wait(st->ep, &st->event, 1, st->interval);
781
- if (n < 0) {
782
- if (errno == EINTR) {
783
- continue;
784
- }
785
- log_error("epoll wait on e %d with event m %d failed: %s",
786
- st->ep, st->sd, strerror(errno));
787
- break;
788
- }
780
+ n = event_wait(st->st_evb, st->interval);
789
781
 
790
782
  /* aggregate stats from shadow (b) -> sum (c) */
791
783
  stats_aggregate(st);
@@ -847,7 +839,6 @@ static rstatus_t
847
839
  stats_start_aggregator(struct stats *st)
848
840
  {
849
841
  rstatus_t status;
850
- struct epoll_event ev;
851
842
 
852
843
  if (!stats_enabled) {
853
844
  return NC_OK;
@@ -858,25 +849,28 @@ stats_start_aggregator(struct stats *st)
858
849
  return status;
859
850
  }
860
851
 
861
- st->ep = epoll_create(10);
862
- if (st->ep < 0) {
863
- log_error("epoll create failed: %s", strerror(errno));
852
+ st->st_evb = evbase_create(1, NULL);
853
+ if (st->st_evb == NULL) {
854
+ log_error("stats aggregator create failed: %s", strerror(errno));
864
855
  return NC_ERROR;
865
856
  }
866
857
 
867
- ev.data.fd = st->sd;
868
- ev.events = EPOLLIN;
858
+ ASSERT(st->st_evb != NULL);
859
+ ASSERT(st->sd >= 0);
869
860
 
870
- status = epoll_ctl(st->ep, EPOLL_CTL_ADD, st->sd, &ev);
861
+ status = event_add_st(st->st_evb, st->sd);
871
862
  if (status < 0) {
872
- log_error("epoll ctl on e %d sd %d failed: %s", st->ep, st->sd,
873
- strerror(errno));
863
+ log_error("stats aggregator create failed: %s", strerror(errno));
864
+ evbase_destroy(st->st_evb);
865
+ st->st_evb = NULL;
874
866
  return NC_ERROR;
875
867
  }
876
868
 
877
869
  status = pthread_create(&st->tid, NULL, stats_loop, st);
878
870
  if (status < 0) {
879
871
  log_error("stats aggregator create failed: %s", strerror(status));
872
+ evbase_destroy(st->st_evb);
873
+ st->st_evb = NULL;
880
874
  return NC_ERROR;
881
875
  }
882
876
 
@@ -891,7 +885,8 @@ stats_stop_aggregator(struct stats *st)
891
885
  }
892
886
 
893
887
  close(st->sd);
894
- close(st->ep);
888
+ evbase_destroy(st->st_evb);
889
+ st->st_evb = NULL;
895
890
  }
896
891
 
897
892
  struct stats *
@@ -921,7 +916,7 @@ stats_create(uint16_t stats_port, char *stats_ip, int stats_interval,
921
916
  array_null(&st->sum);
922
917
 
923
918
  st->tid = (pthread_t) -1;
924
- st->ep = -1;
919
+ st->st_evb = NULL;
925
920
  st->sd = -1;
926
921
 
927
922
  string_set_text(&st->service_str, "service");
@@ -18,9 +18,8 @@
18
18
  #ifndef _NC_STATS_H_
19
19
  #define _NC_STATS_H_
20
20
 
21
- #include <sys/epoll.h>
22
-
23
21
  #include <nc_core.h>
22
+ #include <nc_event.h>
24
23
 
25
24
  #define STATS_POOL_CODEC(ACTION) \
26
25
  /* client behavior */ \
@@ -101,8 +100,8 @@ struct stats {
101
100
 
102
101
  pthread_t tid; /* stats aggregator thread */
103
102
  int sd; /* stats descriptor */
104
- int ep; /* epoll device */
105
- struct epoll_event event; /* epoll event */
103
+
104
+ struct evbase *st_evb;
106
105
 
107
106
  struct string service_str; /* service string */
108
107
  struct string service; /* service */
Binary file
File without changes
File without changes
Binary file
@@ -22,7 +22,10 @@
22
22
  #include <unistd.h>
23
23
  #include <fcntl.h>
24
24
  #include <netdb.h>
25
+
26
+ #ifdef NC_HAVE_BACKTRACE
25
27
  #include <execinfo.h>
28
+ #endif
26
29
 
27
30
  #include <sys/time.h>
28
31
  #include <sys/types.h>
@@ -275,6 +278,7 @@ _nc_free(void *ptr, const char *name, int line)
275
278
  void
276
279
  nc_stacktrace(int skip_count)
277
280
  {
281
+ #ifdef NC_HAVE_BACKTRACE
278
282
  void *stack[64];
279
283
  char **symbols;
280
284
  int size, i, j;
@@ -292,6 +296,7 @@ nc_stacktrace(int skip_count)
292
296
  }
293
297
 
294
298
  free(symbols);
299
+ #endif
295
300
  }
296
301
 
297
302
  void
@@ -617,3 +622,14 @@ nc_unresolve_desc(int sd)
617
622
 
618
623
  return nc_unresolve_addr(addr, addrlen);
619
624
  }
625
+
626
+ struct timespec
627
+ nc_millisec_to_timespec (int n_millisec)
628
+ {
629
+ struct timeval tv = {n_millisec/1000LL, (n_millisec%1000LL)*1000LL};
630
+ struct timespec ts;
631
+
632
+ TIMEVAL_TO_TIMESPEC(&tv, &ts);
633
+
634
+ return ts;
635
+ }
@@ -190,6 +190,7 @@ int _scnprintf(char *buf, size_t size, const char *fmt, ...);
190
190
  int _vscnprintf(char *buf, size_t size, const char *fmt, va_list args);
191
191
  int64_t nc_usec_now(void);
192
192
  int64_t nc_msec_now(void);
193
+ struct timespec nc_millisec_to_timespec(int millisec);
193
194
 
194
195
  /*
195
196
  * Address resolution for internet (ipv4 and ipv6) and unix domain
Binary file
Binary file
@@ -0,0 +1,454 @@
1
+ # Makefile.in generated by automake 1.10 from Makefile.am.
2
+ # src/proto/Makefile. Generated from Makefile.in by configure.
3
+
4
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
+ # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
6
+ # This Makefile.in is free software; the Free Software Foundation
7
+ # gives unlimited permission to copy and/or distribute it,
8
+ # with or without modifications, as long as this notice is preserved.
9
+
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
12
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
+ # PARTICULAR PURPOSE.
14
+
15
+
16
+
17
+
18
+
19
+ pkgdatadir = $(datadir)/nutcracker
20
+ pkglibdir = $(libdir)/nutcracker
21
+ pkgincludedir = $(includedir)/nutcracker
22
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23
+ install_sh_DATA = $(install_sh) -c -m 644
24
+ install_sh_PROGRAM = $(install_sh) -c
25
+ install_sh_SCRIPT = $(install_sh) -c
26
+ INSTALL_HEADER = $(INSTALL_DATA)
27
+ transform = $(program_transform_name)
28
+ NORMAL_INSTALL = :
29
+ PRE_INSTALL = :
30
+ POST_INSTALL = :
31
+ NORMAL_UNINSTALL = :
32
+ PRE_UNINSTALL = :
33
+ POST_UNINSTALL = :
34
+ build_triplet = i386-apple-darwin11.4.2
35
+ host_triplet = i386-apple-darwin11.4.2
36
+ subdir = src/proto
37
+ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
38
+ $(srcdir)/Makefile.in
39
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40
+ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
41
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
42
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
43
+ $(top_srcdir)/configure.ac
44
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
45
+ $(ACLOCAL_M4)
46
+ mkinstalldirs = $(install_sh) -d
47
+ CONFIG_HEADER = $(top_builddir)/config.h
48
+ CONFIG_CLEAN_FILES =
49
+ LIBRARIES = $(noinst_LIBRARIES)
50
+ ARFLAGS = cru
51
+ libproto_a_AR = $(AR) $(ARFLAGS)
52
+ libproto_a_LIBADD =
53
+ am_libproto_a_OBJECTS = nc_memcache.$(OBJEXT) nc_redis.$(OBJEXT)
54
+ libproto_a_OBJECTS = $(am_libproto_a_OBJECTS)
55
+ DEFAULT_INCLUDES = -I. -I$(top_builddir)
56
+ depcomp = $(SHELL) $(top_srcdir)/config/depcomp
57
+ am__depfiles_maybe = depfiles
58
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
59
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
60
+ LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
61
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
62
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
63
+ CCLD = $(CC)
64
+ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
65
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
66
+ $(LDFLAGS) -o $@
67
+ SOURCES = $(libproto_a_SOURCES)
68
+ DIST_SOURCES = $(libproto_a_SOURCES)
69
+ HEADERS = $(noinst_HEADERS)
70
+ ETAGS = etags
71
+ CTAGS = ctags
72
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
73
+ ACLOCAL = ${SHELL} /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/missing --run aclocal-1.10
74
+ AMTAR = ${SHELL} /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/missing --run tar
75
+ AR = ar
76
+ AUTOCONF = ${SHELL} /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/missing --run autoconf
77
+ AUTOHEADER = ${SHELL} /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/missing --run autoheader
78
+ AUTOMAKE = ${SHELL} /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/missing --run automake-1.10
79
+ AWK = awk
80
+ CC = gcc
81
+ CCDEPMODE = depmode=gcc3
82
+ CFLAGS = -g -O2
83
+ CPP = gcc -E
84
+ CPPFLAGS =
85
+ CXX = g++
86
+ CXXCPP = g++ -E
87
+ CXXDEPMODE = depmode=gcc3
88
+ CXXFLAGS = -g -O2
89
+ CYGPATH_W = echo
90
+ DEFS = -DHAVE_CONFIG_H
91
+ DEPDIR = .deps
92
+ DSYMUTIL = dsymutil
93
+ DUMPBIN =
94
+ ECHO_C = \c
95
+ ECHO_N =
96
+ ECHO_T =
97
+ EGREP = /usr/bin/grep -E
98
+ EXEEXT =
99
+ FGREP = /usr/bin/grep -F
100
+ GREP = /usr/bin/grep
101
+ INSTALL = /usr/bin/install -c
102
+ INSTALL_DATA = ${INSTALL} -m 644
103
+ INSTALL_PROGRAM = ${INSTALL}
104
+ INSTALL_SCRIPT = ${INSTALL}
105
+ INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
106
+ LD = /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld
107
+ LDFLAGS =
108
+ LIBOBJS =
109
+ LIBS = -lpthread -lm
110
+ LIBTOOL = $(SHELL) $(top_builddir)/libtool
111
+ LIPO = lipo
112
+ LN_S = ln -s
113
+ LTLIBOBJS =
114
+ MAKEINFO = ${SHELL} /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/missing --run makeinfo
115
+ MKDIR_P = ../../config/install-sh -c -d
116
+ NM = /usr/bin/nm
117
+ NMEDIT = nmedit
118
+ OBJDUMP = false
119
+ OBJEXT = o
120
+ OTOOL = otool
121
+ OTOOL64 = :
122
+ PACKAGE = nutcracker
123
+ PACKAGE_BUGREPORT = manj@twitter.com
124
+ PACKAGE_NAME = nutcracker
125
+ PACKAGE_STRING = nutcracker 0.2.4
126
+ PACKAGE_TARNAME = nutcracker
127
+ PACKAGE_URL =
128
+ PACKAGE_VERSION = 0.2.4
129
+ PATH_SEPARATOR = :
130
+ RANLIB = ranlib
131
+ SED = /usr/bin/sed
132
+ SET_MAKE =
133
+ SHELL = /bin/sh
134
+ STRIP = strip
135
+ VERSION = 0.2.4
136
+ abs_builddir = /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/src/proto
137
+ abs_srcdir = /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/src/proto
138
+ abs_top_builddir = /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd
139
+ abs_top_srcdir = /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd
140
+ ac_ct_CC = gcc
141
+ ac_ct_CXX = g++
142
+ ac_ct_DUMPBIN =
143
+ am__include = include
144
+ am__leading_dot = .
145
+ am__quote =
146
+ am__tar = ${AMTAR} chof - "$$tardir"
147
+ am__untar = ${AMTAR} xf -
148
+ bindir = ${exec_prefix}/bin
149
+ build = i386-apple-darwin11.4.2
150
+ build_alias =
151
+ build_cpu = i386
152
+ build_os = darwin11.4.2
153
+ build_vendor = apple
154
+ builddir = .
155
+ datadir = ${datarootdir}
156
+ datarootdir = ${prefix}/share
157
+ docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
158
+ dvidir = ${docdir}
159
+ exec_prefix = ${prefix}
160
+ host = i386-apple-darwin11.4.2
161
+ host_alias =
162
+ host_cpu = i386
163
+ host_os = darwin11.4.2
164
+ host_vendor = apple
165
+ htmldir = ${docdir}
166
+ includedir = ${prefix}/include
167
+ infodir = ${datarootdir}/info
168
+ install_sh = $(SHELL) /Users/eran/github/nutcracker/twemproxy-twemproxy_bsd/config/install-sh
169
+ libdir = ${exec_prefix}/lib
170
+ libexecdir = ${exec_prefix}/libexec
171
+ localedir = ${datarootdir}/locale
172
+ localstatedir = ${prefix}/var
173
+ mandir = ${datarootdir}/man
174
+ mkdir_p = $(top_builddir)/config/install-sh -c -d
175
+ oldincludedir = /usr/include
176
+ pdfdir = ${docdir}
177
+ prefix = /usr/local
178
+ program_transform_name = s,x,x,
179
+ psdir = ${docdir}
180
+ sbindir = ${exec_prefix}/sbin
181
+ sharedstatedir = ${prefix}/com
182
+ srcdir = .
183
+ subdirs = contrib/yaml-0.1.4
184
+ sysconfdir = ${prefix}/etc
185
+ target_alias =
186
+ top_build_prefix = ../../
187
+ top_builddir = ../..
188
+ top_srcdir = ../..
189
+ MAINTAINERCLEANFILES = Makefile.in
190
+ AM_CPPFLAGS = -I $(top_srcdir)/src
191
+ AM_CFLAGS = -Wall -Wshadow -Wno-unused-parameter -Wno-unused-value
192
+ noinst_LIBRARIES = libproto.a
193
+ noinst_HEADERS = nc_proto.h
194
+ libproto_a_SOURCES = \
195
+ nc_memcache.c \
196
+ nc_redis.c
197
+
198
+ all: all-am
199
+
200
+ .SUFFIXES:
201
+ .SUFFIXES: .c .lo .o .obj
202
+ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
203
+ @for dep in $?; do \
204
+ case '$(am__configure_deps)' in \
205
+ *$$dep*) \
206
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
207
+ && exit 0; \
208
+ exit 1;; \
209
+ esac; \
210
+ done; \
211
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/proto/Makefile'; \
212
+ cd $(top_srcdir) && \
213
+ $(AUTOMAKE) --foreign src/proto/Makefile
214
+ .PRECIOUS: Makefile
215
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
216
+ @case '$?' in \
217
+ *config.status*) \
218
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
219
+ *) \
220
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
221
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
222
+ esac;
223
+
224
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
225
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
226
+
227
+ $(top_srcdir)/configure: $(am__configure_deps)
228
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
229
+ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
230
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
231
+
232
+ clean-noinstLIBRARIES:
233
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
234
+ libproto.a: $(libproto_a_OBJECTS) $(libproto_a_DEPENDENCIES)
235
+ -rm -f libproto.a
236
+ $(libproto_a_AR) libproto.a $(libproto_a_OBJECTS) $(libproto_a_LIBADD)
237
+ $(RANLIB) libproto.a
238
+
239
+ mostlyclean-compile:
240
+ -rm -f *.$(OBJEXT)
241
+
242
+ distclean-compile:
243
+ -rm -f *.tab.c
244
+
245
+ include ./$(DEPDIR)/nc_memcache.Po
246
+ include ./$(DEPDIR)/nc_redis.Po
247
+
248
+ .c.o:
249
+ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
250
+ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
251
+ # source='$<' object='$@' libtool=no \
252
+ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
253
+ # $(COMPILE) -c $<
254
+
255
+ .c.obj:
256
+ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
257
+ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
258
+ # source='$<' object='$@' libtool=no \
259
+ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
260
+ # $(COMPILE) -c `$(CYGPATH_W) '$<'`
261
+
262
+ .c.lo:
263
+ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
264
+ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
265
+ # source='$<' object='$@' libtool=yes \
266
+ # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
267
+ # $(LTCOMPILE) -c -o $@ $<
268
+
269
+ mostlyclean-libtool:
270
+ -rm -f *.lo
271
+
272
+ clean-libtool:
273
+ -rm -rf .libs _libs
274
+
275
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
276
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
277
+ unique=`for i in $$list; do \
278
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
279
+ done | \
280
+ $(AWK) ' { files[$$0] = 1; } \
281
+ END { for (i in files) print i; }'`; \
282
+ mkid -fID $$unique
283
+ tags: TAGS
284
+
285
+ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
286
+ $(TAGS_FILES) $(LISP)
287
+ tags=; \
288
+ here=`pwd`; \
289
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
290
+ unique=`for i in $$list; do \
291
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
292
+ done | \
293
+ $(AWK) ' { files[$$0] = 1; } \
294
+ END { for (i in files) print i; }'`; \
295
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
296
+ test -n "$$unique" || unique=$$empty_fix; \
297
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
298
+ $$tags $$unique; \
299
+ fi
300
+ ctags: CTAGS
301
+ CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
302
+ $(TAGS_FILES) $(LISP)
303
+ tags=; \
304
+ here=`pwd`; \
305
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
306
+ unique=`for i in $$list; do \
307
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
308
+ done | \
309
+ $(AWK) ' { files[$$0] = 1; } \
310
+ END { for (i in files) print i; }'`; \
311
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
312
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
313
+ $$tags $$unique
314
+
315
+ GTAGS:
316
+ here=`$(am__cd) $(top_builddir) && pwd` \
317
+ && cd $(top_srcdir) \
318
+ && gtags -i $(GTAGS_ARGS) $$here
319
+
320
+ distclean-tags:
321
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
322
+
323
+ distdir: $(DISTFILES)
324
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
325
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
326
+ list='$(DISTFILES)'; \
327
+ dist_files=`for file in $$list; do echo $$file; done | \
328
+ sed -e "s|^$$srcdirstrip/||;t" \
329
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
330
+ case $$dist_files in \
331
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
332
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
333
+ sort -u` ;; \
334
+ esac; \
335
+ for file in $$dist_files; do \
336
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
337
+ if test -d $$d/$$file; then \
338
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
339
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
340
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
341
+ fi; \
342
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
343
+ else \
344
+ test -f $(distdir)/$$file \
345
+ || cp -p $$d/$$file $(distdir)/$$file \
346
+ || exit 1; \
347
+ fi; \
348
+ done
349
+ check-am: all-am
350
+ check: check-am
351
+ all-am: Makefile $(LIBRARIES) $(HEADERS)
352
+ installdirs:
353
+ install: install-am
354
+ install-exec: install-exec-am
355
+ install-data: install-data-am
356
+ uninstall: uninstall-am
357
+
358
+ install-am: all-am
359
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
360
+
361
+ installcheck: installcheck-am
362
+ install-strip:
363
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
364
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
365
+ `test -z '$(STRIP)' || \
366
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
367
+ mostlyclean-generic:
368
+
369
+ clean-generic:
370
+
371
+ distclean-generic:
372
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
373
+
374
+ maintainer-clean-generic:
375
+ @echo "This command is intended for maintainers to use"
376
+ @echo "it deletes files that may require special tools to rebuild."
377
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
378
+ clean: clean-am
379
+
380
+ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
381
+ mostlyclean-am
382
+
383
+ distclean: distclean-am
384
+ -rm -rf ./$(DEPDIR)
385
+ -rm -f Makefile
386
+ distclean-am: clean-am distclean-compile distclean-generic \
387
+ distclean-tags
388
+
389
+ dvi: dvi-am
390
+
391
+ dvi-am:
392
+
393
+ html: html-am
394
+
395
+ info: info-am
396
+
397
+ info-am:
398
+
399
+ install-data-am:
400
+
401
+ install-dvi: install-dvi-am
402
+
403
+ install-exec-am:
404
+
405
+ install-html: install-html-am
406
+
407
+ install-info: install-info-am
408
+
409
+ install-man:
410
+
411
+ install-pdf: install-pdf-am
412
+
413
+ install-ps: install-ps-am
414
+
415
+ installcheck-am:
416
+
417
+ maintainer-clean: maintainer-clean-am
418
+ -rm -rf ./$(DEPDIR)
419
+ -rm -f Makefile
420
+ maintainer-clean-am: distclean-am maintainer-clean-generic
421
+
422
+ mostlyclean: mostlyclean-am
423
+
424
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic \
425
+ mostlyclean-libtool
426
+
427
+ pdf: pdf-am
428
+
429
+ pdf-am:
430
+
431
+ ps: ps-am
432
+
433
+ ps-am:
434
+
435
+ uninstall-am:
436
+
437
+ .MAKE: install-am install-strip
438
+
439
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
440
+ clean-libtool clean-noinstLIBRARIES ctags distclean \
441
+ distclean-compile distclean-generic distclean-libtool \
442
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
443
+ install install-am install-data install-data-am install-dvi \
444
+ install-dvi-am install-exec install-exec-am install-html \
445
+ install-html-am install-info install-info-am install-man \
446
+ install-pdf install-pdf-am install-ps install-ps-am \
447
+ install-strip installcheck installcheck-am installdirs \
448
+ maintainer-clean maintainer-clean-generic mostlyclean \
449
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
450
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
451
+
452
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
453
+ # Otherwise a system limit (for SysV at least) may be exceeded.
454
+ .NOEXPORT: