nutcracker 0.2.3 → 0.2.4.beta1

Sign up to get free protection for your applications and to get access to all the features.
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: