auser-poolparty 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. data/VERSION.yml +1 -1
  2. data/bin/cloud-compile +6 -1
  3. data/config/jeweler.rb +1 -3
  4. data/lib/cloud_providers/cloud_provider_instance.rb +11 -1
  5. data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
  6. data/lib/dependency_resolvers/chef.rb +12 -3
  7. data/lib/mixins/callbacks.rb +6 -2
  8. data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
  9. data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
  10. data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
  11. data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
  12. data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
  13. data/test/lib/dependency_resolvers/chef_test.rb +8 -1
  14. data/vendor/gems/thrift/CHANGELOG +1 -0
  15. data/vendor/gems/thrift/Makefile.am +25 -6
  16. data/vendor/gems/thrift/Manifest +81 -0
  17. data/vendor/gems/thrift/README +17 -111
  18. data/vendor/gems/thrift/Rakefile +104 -0
  19. data/vendor/gems/thrift/{lib/hs/Setup.lhs → benchmark/Benchmark.thrift} +5 -4
  20. data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
  21. data/vendor/gems/thrift/benchmark/client.rb +74 -0
  22. data/vendor/gems/thrift/benchmark/server.rb +82 -0
  23. data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
  24. data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
  25. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.m → ext/binary_protocol_accelerated.h} +1 -4
  26. data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
  27. data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.h → ext/compact_protocol.h} +1 -6
  28. data/vendor/gems/thrift/ext/constants.h +95 -0
  29. data/vendor/gems/thrift/{contrib/fb303/Makefile.am → ext/extconf.rb} +8 -13
  30. data/vendor/gems/thrift/{compiler/cpp/src/platform.h → ext/macros.h} +18 -13
  31. data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
  32. data/vendor/gems/thrift/{lib/csharp/src/Protocol/TMessageType.cs → ext/memory_buffer.h} +2 -13
  33. data/vendor/gems/thrift/ext/protocol.c +185 -0
  34. data/vendor/gems/thrift/{lib/csharp/src/TProcessor.cs → ext/protocol.h} +2 -11
  35. data/vendor/gems/thrift/ext/struct.c +606 -0
  36. data/vendor/gems/thrift/ext/struct.h +67 -0
  37. data/vendor/gems/thrift/ext/thrift_native.c +194 -0
  38. data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
  39. data/vendor/gems/thrift/{contrib/fb303/py/fb303_scripts/__init__.py → lib/thrift/core_ext/fixnum.rb} +13 -4
  40. data/vendor/gems/thrift/{contrib/fb303/global_footer.mk → lib/thrift/core_ext.rb} +4 -2
  41. data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
  42. data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
  43. data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
  44. data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
  45. data/vendor/gems/thrift/{cleanup.sh → lib/thrift/protocol/binary_protocol_accelerated.rb} +19 -42
  46. data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
  47. data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
  48. data/vendor/gems/thrift/{bootstrap.sh → lib/thrift/serializer/serializer.rb} +17 -18
  49. data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
  50. data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
  51. data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
  52. data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
  53. data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
  54. data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
  55. data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
  56. data/vendor/gems/thrift/{contrib/fb303/bootstrap.sh → lib/thrift/thrift_native.rb} +5 -7
  57. data/vendor/gems/thrift/lib/{erl/Makefile → thrift/transport/base_server_transport.rb} +20 -20
  58. data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
  59. data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
  60. data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
  61. data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
  62. data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
  63. data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
  64. data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
  65. data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
  66. data/vendor/gems/thrift/lib/{java/Makefile.am → thrift/transport/unix_server_socket.rb} +39 -17
  67. data/vendor/gems/thrift/{contrib/fb303/global_header.mk → lib/thrift/transport/unix_socket.rb} +23 -21
  68. data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
  69. data/vendor/gems/thrift/lib/thrift.rb +59 -0
  70. data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
  71. data/vendor/gems/thrift/{lib/Makefile.am → script/read_struct.rb} +24 -36
  72. data/vendor/gems/thrift/{contrib/fb303/py/setup.py → script/write_struct.rb} +8 -5
  73. data/vendor/gems/thrift/setup.rb +1585 -0
  74. data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
  75. data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
  76. data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
  77. data/vendor/gems/thrift/{contrib/fb303/py/Makefile.am → spec/binary_protocol_accelerated_spec.rb} +22 -25
  78. data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
  79. data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
  80. data/vendor/gems/thrift/spec/client_spec.rb +100 -0
  81. data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
  82. data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
  83. data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
  84. data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
  85. data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
  86. data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
  87. data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
  88. data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
  89. data/vendor/gems/thrift/spec/server_spec.rb +160 -0
  90. data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
  91. data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
  92. data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
  93. data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
  94. data/vendor/gems/thrift/spec/types_spec.rb +116 -0
  95. data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
  96. data/vendor/gems/trollop/FAQ.txt +84 -0
  97. data/vendor/gems/trollop/History.txt +101 -0
  98. data/vendor/gems/trollop/Manifest.txt +7 -0
  99. data/vendor/gems/trollop/README.txt +40 -0
  100. data/vendor/gems/trollop/Rakefile +36 -0
  101. data/vendor/gems/trollop/lib/trollop.rb +739 -0
  102. data/vendor/gems/trollop/release-script.txt +13 -0
  103. data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
  104. data/vendor/gems/trollop/www/index.html +172 -0
  105. metadata +123 -347
  106. data/vendor/gems/thrift/CHANGES +0 -35
  107. data/vendor/gems/thrift/CONTRIBUTORS +0 -77
  108. data/vendor/gems/thrift/DISCLAIMER +0 -6
  109. data/vendor/gems/thrift/LICENSE +0 -202
  110. data/vendor/gems/thrift/NEWS +0 -79
  111. data/vendor/gems/thrift/NOTICE +0 -26
  112. data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +0 -198
  113. data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +0 -107
  114. data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +0 -194
  115. data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +0 -173
  116. data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +0 -127
  117. data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +0 -39
  118. data/vendor/gems/thrift/compiler/cpp/Makefile.am +0 -136
  119. data/vendor/gems/thrift/compiler/cpp/README +0 -39
  120. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +0 -2331
  121. data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +0 -3003
  122. data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +0 -1700
  123. data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +0 -932
  124. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +0 -173
  125. data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +0 -321
  126. data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +0 -1445
  127. data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +0 -637
  128. data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +0 -3069
  129. data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +0 -1673
  130. data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +0 -77
  131. data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +0 -1812
  132. data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +0 -2281
  133. data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +0 -2310
  134. data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +0 -1114
  135. data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +0 -1071
  136. data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +0 -354
  137. data/vendor/gems/thrift/compiler/cpp/src/globals.h +0 -117
  138. data/vendor/gems/thrift/compiler/cpp/src/main.cc +0 -1207
  139. data/vendor/gems/thrift/compiler/cpp/src/main.h +0 -103
  140. data/vendor/gems/thrift/compiler/cpp/src/md5.c +0 -381
  141. data/vendor/gems/thrift/compiler/cpp/src/md5.h +0 -91
  142. data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +0 -137
  143. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +0 -59
  144. data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +0 -121
  145. data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +0 -56
  146. data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +0 -51
  147. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +0 -59
  148. data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +0 -64
  149. data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +0 -150
  150. data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +0 -93
  151. data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +0 -56
  152. data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +0 -64
  153. data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +0 -223
  154. data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +0 -86
  155. data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +0 -68
  156. data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +0 -55
  157. data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +0 -127
  158. data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +0 -176
  159. data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +0 -70
  160. data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +0 -303
  161. data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +0 -1140
  162. data/vendor/gems/thrift/configure.ac +0 -255
  163. data/vendor/gems/thrift/contrib/fb303/LICENSE +0 -16
  164. data/vendor/gems/thrift/contrib/fb303/README +0 -37
  165. data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +0 -258
  166. data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +0 -198
  167. data/vendor/gems/thrift/contrib/fb303/configure.ac +0 -115
  168. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +0 -124
  169. data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +0 -103
  170. data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +0 -84
  171. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +0 -481
  172. data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +0 -215
  173. data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +0 -112
  174. data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +0 -103
  175. data/vendor/gems/thrift/contrib/fb303/java/build.xml +0 -84
  176. data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +0 -89
  177. data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +0 -82
  178. data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +0 -195
  179. data/vendor/gems/thrift/contrib/thrift.el +0 -126
  180. data/vendor/gems/thrift/contrib/thrift.spec +0 -206
  181. data/vendor/gems/thrift/contrib/thrift.vim +0 -91
  182. data/vendor/gems/thrift/contrib/thrift_dump.cpp +0 -91
  183. data/vendor/gems/thrift/doc/lgpl-2.1.txt +0 -504
  184. data/vendor/gems/thrift/doc/otp-base-license.txt +0 -20
  185. data/vendor/gems/thrift/doc/thrift.bnf +0 -96
  186. data/vendor/gems/thrift/doc/thrift.tex +0 -1057
  187. data/vendor/gems/thrift/lib/cocoa/README +0 -21
  188. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +0 -44
  189. data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +0 -130
  190. data/vendor/gems/thrift/lib/cocoa/src/TException.h +0 -34
  191. data/vendor/gems/thrift/lib/cocoa/src/TException.m +0 -64
  192. data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +0 -29
  193. data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +0 -27
  194. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +0 -27
  195. data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +0 -51
  196. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +0 -51
  197. data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +0 -477
  198. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +0 -148
  199. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +0 -29
  200. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +0 -29
  201. data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +0 -104
  202. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +0 -50
  203. data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +0 -153
  204. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +0 -42
  205. data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +0 -159
  206. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +0 -35
  207. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +0 -91
  208. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +0 -38
  209. data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +0 -89
  210. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +0 -32
  211. data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +0 -58
  212. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +0 -36
  213. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +0 -30
  214. data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +0 -43
  215. data/vendor/gems/thrift/lib/cpp/Makefile.am +0 -158
  216. data/vendor/gems/thrift/lib/cpp/README +0 -67
  217. data/vendor/gems/thrift/lib/cpp/src/TLogging.h +0 -163
  218. data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +0 -53
  219. data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +0 -96
  220. data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +0 -148
  221. data/vendor/gems/thrift/lib/cpp/src/Thrift.h +0 -191
  222. data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +0 -60
  223. data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +0 -77
  224. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +0 -137
  225. data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +0 -84
  226. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +0 -160
  227. data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +0 -114
  228. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +0 -314
  229. data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +0 -130
  230. data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +0 -125
  231. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +0 -493
  232. data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +0 -169
  233. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +0 -284
  234. data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +0 -122
  235. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +0 -55
  236. data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +0 -100
  237. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +0 -155
  238. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +0 -354
  239. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +0 -379
  240. data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +0 -155
  241. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +0 -122
  242. data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +0 -77
  243. data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +0 -264
  244. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +0 -79
  245. data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +0 -42
  246. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +0 -394
  247. data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +0 -254
  248. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +0 -736
  249. data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +0 -279
  250. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +0 -346
  251. data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +0 -225
  252. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +0 -762
  253. data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +0 -253
  254. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +0 -998
  255. data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +0 -340
  256. data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +0 -304
  257. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +0 -438
  258. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +0 -104
  259. data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +0 -187
  260. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +0 -750
  261. data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +0 -435
  262. data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +0 -38
  263. data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +0 -213
  264. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +0 -118
  265. data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +0 -70
  266. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +0 -217
  267. data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +0 -79
  268. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +0 -243
  269. data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +0 -74
  270. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +0 -370
  271. data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +0 -667
  272. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +0 -77
  273. data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +0 -73
  274. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +0 -953
  275. data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +0 -442
  276. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +0 -348
  277. data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +0 -111
  278. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +0 -368
  279. data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +0 -76
  280. data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +0 -92
  281. data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +0 -96
  282. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +0 -54
  283. data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +0 -41
  284. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +0 -591
  285. data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +0 -242
  286. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +0 -235
  287. data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +0 -191
  288. data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +0 -224
  289. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +0 -31
  290. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +0 -117
  291. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +0 -178
  292. data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +0 -287
  293. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +0 -299
  294. data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +0 -219
  295. data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +0 -30
  296. data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +0 -30
  297. data/vendor/gems/thrift/lib/cpp/thrift.pc.in +0 -29
  298. data/vendor/gems/thrift/lib/csharp/Makefile.am +0 -70
  299. data/vendor/gems/thrift/lib/csharp/README +0 -26
  300. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +0 -55
  301. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +0 -242
  302. data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +0 -62
  303. data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +0 -142
  304. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +0 -34
  305. data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +0 -392
  306. data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +0 -58
  307. data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +0 -50
  308. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +0 -58
  309. data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +0 -58
  310. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +0 -87
  311. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +0 -61
  312. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +0 -29
  313. data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +0 -94
  314. data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +0 -50
  315. data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +0 -42
  316. data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +0 -40
  317. data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +0 -135
  318. data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +0 -148
  319. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +0 -186
  320. data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +0 -234
  321. data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +0 -131
  322. data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +0 -73
  323. data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +0 -35
  324. data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +0 -100
  325. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +0 -157
  326. data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +0 -39
  327. data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +0 -144
  328. data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +0 -103
  329. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +0 -66
  330. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +0 -64
  331. data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +0 -38
  332. data/vendor/gems/thrift/lib/erl/README +0 -56
  333. data/vendor/gems/thrift/lib/erl/build/beamver +0 -59
  334. data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +0 -15
  335. data/vendor/gems/thrift/lib/erl/build/colors.mk +0 -24
  336. data/vendor/gems/thrift/lib/erl/build/docs.mk +0 -12
  337. data/vendor/gems/thrift/lib/erl/build/mime.types +0 -98
  338. data/vendor/gems/thrift/lib/erl/build/otp.mk +0 -146
  339. data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +0 -85
  340. data/vendor/gems/thrift/lib/erl/build/raw_test.mk +0 -29
  341. data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +0 -54
  342. data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +0 -31
  343. data/vendor/gems/thrift/lib/erl/src/Makefile +0 -116
  344. data/vendor/gems/thrift/lib/erl/src/test_handler.erl +0 -26
  345. data/vendor/gems/thrift/lib/erl/src/test_service.erl +0 -29
  346. data/vendor/gems/thrift/lib/erl/src/thrift.app.src +0 -44
  347. data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +0 -1
  348. data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +0 -64
  349. data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +0 -325
  350. data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +0 -180
  351. data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +0 -384
  352. data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +0 -118
  353. data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +0 -87
  354. data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +0 -208
  355. data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +0 -199
  356. data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +0 -164
  357. data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +0 -188
  358. data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +0 -356
  359. data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +0 -183
  360. data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +0 -25
  361. data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +0 -249
  362. data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +0 -119
  363. data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +0 -57
  364. data/vendor/gems/thrift/lib/erl/vsn.mk +0 -1
  365. data/vendor/gems/thrift/lib/hs/README +0 -82
  366. data/vendor/gems/thrift/lib/hs/TODO +0 -2
  367. data/vendor/gems/thrift/lib/hs/Thrift.cabal +0 -20
  368. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +0 -147
  369. data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +0 -191
  370. data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +0 -65
  371. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +0 -58
  372. data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +0 -60
  373. data/vendor/gems/thrift/lib/hs/src/Thrift.hs +0 -111
  374. data/vendor/gems/thrift/lib/java/README +0 -43
  375. data/vendor/gems/thrift/lib/java/build.xml +0 -195
  376. data/vendor/gems/thrift/lib/java/ivy.xml +0 -8
  377. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +0 -171
  378. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +0 -123
  379. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +0 -66
  380. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +0 -102
  381. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +0 -46
  382. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +0 -94
  383. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +0 -45
  384. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +0 -30
  385. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +0 -32
  386. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +0 -39
  387. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +0 -110
  388. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +0 -69
  389. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +0 -42
  390. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +0 -29
  391. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +0 -31
  392. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +0 -29
  393. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +0 -31
  394. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +0 -128
  395. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +0 -331
  396. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +0 -741
  397. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +0 -48
  398. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +0 -927
  399. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +0 -38
  400. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +0 -40
  401. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +0 -48
  402. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +0 -31
  403. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +0 -146
  404. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +0 -81
  405. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +0 -30
  406. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +0 -158
  407. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +0 -42
  408. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +0 -384
  409. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +0 -36
  410. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +0 -40
  411. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +0 -304
  412. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +0 -772
  413. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +0 -126
  414. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +0 -145
  415. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +0 -271
  416. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +0 -126
  417. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +0 -157
  418. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +0 -159
  419. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +0 -98
  420. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +0 -160
  421. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +0 -31
  422. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +0 -213
  423. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +0 -31
  424. data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +0 -145
@@ -1,41 +0,0 @@
1
- /*
2
- * Licensed to the Apache Software Foundation (ASF) under one
3
- * or more contributor license agreements. See the NOTICE file
4
- * distributed with this work for additional information
5
- * regarding copyright ownership. The ASF licenses this file
6
- * to you under the Apache License, Version 2.0 (the
7
- * "License"); you may not use this file except in compliance
8
- * with the License. You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing,
13
- * software distributed under the License is distributed on an
14
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- * KIND, either express or implied. See the License for the
16
- * specific language governing permissions and limitations
17
- * under the License.
18
- */
19
-
20
- #ifndef _THRIFT_TRANSPORT_TSIMPLEFILETRANSPORT_H_
21
- #define _THRIFT_TRANSPORT_TSIMPLEFILETRANSPORT_H_ 1
22
-
23
- #include "TFDTransport.h"
24
-
25
- namespace apache { namespace thrift { namespace transport {
26
-
27
- /**
28
- * Dead-simple wrapper around a file.
29
- *
30
- * Writeable files are opened with O_CREAT and O_APPEND
31
- */
32
- class TSimpleFileTransport : public TFDTransport {
33
- public:
34
- TSimpleFileTransport(const std::string& path,
35
- bool read = true,
36
- bool write = false);
37
- };
38
-
39
- }}} // apache::thrift::transport
40
-
41
- #endif // _THRIFT_TRANSPORT_TSIMPLEFILETRANSPORT_H_
@@ -1,591 +0,0 @@
1
- /*
2
- * Licensed to the Apache Software Foundation (ASF) under one
3
- * or more contributor license agreements. See the NOTICE file
4
- * distributed with this work for additional information
5
- * regarding copyright ownership. The ASF licenses this file
6
- * to you under the Apache License, Version 2.0 (the
7
- * "License"); you may not use this file except in compliance
8
- * with the License. You may obtain a copy of the License at
9
- *
10
- * http://www.apache.org/licenses/LICENSE-2.0
11
- *
12
- * Unless required by applicable law or agreed to in writing,
13
- * software distributed under the License is distributed on an
14
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
- * KIND, either express or implied. See the License for the
16
- * specific language governing permissions and limitations
17
- * under the License.
18
- */
19
-
20
- #include <config.h>
21
- #include <cstring>
22
- #include <sstream>
23
- #include <sys/socket.h>
24
- #include <sys/poll.h>
25
- #include <sys/types.h>
26
- #include <arpa/inet.h>
27
- #include <netinet/in.h>
28
- #include <netinet/tcp.h>
29
- #include <netdb.h>
30
- #include <unistd.h>
31
- #include <errno.h>
32
- #include <fcntl.h>
33
-
34
- #include "concurrency/Monitor.h"
35
- #include "TSocket.h"
36
- #include "TTransportException.h"
37
-
38
- namespace apache { namespace thrift { namespace transport {
39
-
40
- using namespace std;
41
-
42
- // Global var to track total socket sys calls
43
- uint32_t g_socket_syscalls = 0;
44
-
45
- /**
46
- * TSocket implementation.
47
- *
48
- */
49
-
50
- TSocket::TSocket(string host, int port) :
51
- host_(host),
52
- port_(port),
53
- socket_(-1),
54
- connTimeout_(0),
55
- sendTimeout_(0),
56
- recvTimeout_(0),
57
- lingerOn_(1),
58
- lingerVal_(0),
59
- noDelay_(1),
60
- maxRecvRetries_(5) {
61
- recvTimeval_.tv_sec = (int)(recvTimeout_/1000);
62
- recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
63
- }
64
-
65
- TSocket::TSocket() :
66
- host_(""),
67
- port_(0),
68
- socket_(-1),
69
- connTimeout_(0),
70
- sendTimeout_(0),
71
- recvTimeout_(0),
72
- lingerOn_(1),
73
- lingerVal_(0),
74
- noDelay_(1),
75
- maxRecvRetries_(5) {
76
- recvTimeval_.tv_sec = (int)(recvTimeout_/1000);
77
- recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
78
- }
79
-
80
- TSocket::TSocket(int socket) :
81
- host_(""),
82
- port_(0),
83
- socket_(socket),
84
- connTimeout_(0),
85
- sendTimeout_(0),
86
- recvTimeout_(0),
87
- lingerOn_(1),
88
- lingerVal_(0),
89
- noDelay_(1),
90
- maxRecvRetries_(5) {
91
- recvTimeval_.tv_sec = (int)(recvTimeout_/1000);
92
- recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
93
- }
94
-
95
- TSocket::~TSocket() {
96
- close();
97
- }
98
-
99
- bool TSocket::isOpen() {
100
- return (socket_ >= 0);
101
- }
102
-
103
- bool TSocket::peek() {
104
- if (!isOpen()) {
105
- return false;
106
- }
107
- uint8_t buf;
108
- int r = recv(socket_, &buf, 1, MSG_PEEK);
109
- if (r == -1) {
110
- int errno_copy = errno;
111
- #if defined __FreeBSD__ || defined __MACH__
112
- /* shigin:
113
- * freebsd returns -1 and ECONNRESET if socket was closed by
114
- * the other side
115
- */
116
- if (errno_copy == ECONNRESET)
117
- {
118
- close();
119
- return false;
120
- }
121
- #endif
122
- GlobalOutput.perror("TSocket::peek() recv() " + getSocketInfo(), errno_copy);
123
- throw TTransportException(TTransportException::UNKNOWN, "recv()", errno_copy);
124
- }
125
- return (r > 0);
126
- }
127
-
128
- void TSocket::openConnection(struct addrinfo *res) {
129
- if (isOpen()) {
130
- throw TTransportException(TTransportException::ALREADY_OPEN);
131
- }
132
-
133
- socket_ = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
134
- if (socket_ == -1) {
135
- int errno_copy = errno;
136
- GlobalOutput.perror("TSocket::open() socket() " + getSocketInfo(), errno_copy);
137
- throw TTransportException(TTransportException::NOT_OPEN, "socket()", errno_copy);
138
- }
139
-
140
- // Send timeout
141
- if (sendTimeout_ > 0) {
142
- setSendTimeout(sendTimeout_);
143
- }
144
-
145
- // Recv timeout
146
- if (recvTimeout_ > 0) {
147
- setRecvTimeout(recvTimeout_);
148
- }
149
-
150
- // Linger
151
- setLinger(lingerOn_, lingerVal_);
152
-
153
- // No delay
154
- setNoDelay(noDelay_);
155
-
156
- // Set the socket to be non blocking for connect if a timeout exists
157
- int flags = fcntl(socket_, F_GETFL, 0);
158
- if (connTimeout_ > 0) {
159
- if (-1 == fcntl(socket_, F_SETFL, flags | O_NONBLOCK)) {
160
- int errno_copy = errno;
161
- GlobalOutput.perror("TSocket::open() fcntl() " + getSocketInfo(), errno_copy);
162
- throw TTransportException(TTransportException::NOT_OPEN, "fcntl() failed", errno_copy);
163
- }
164
- } else {
165
- if (-1 == fcntl(socket_, F_SETFL, flags & ~O_NONBLOCK)) {
166
- int errno_copy = errno;
167
- GlobalOutput.perror("TSocket::open() fcntl " + getSocketInfo(), errno_copy);
168
- throw TTransportException(TTransportException::NOT_OPEN, "fcntl() failed", errno_copy);
169
- }
170
- }
171
-
172
- // Connect the socket
173
- int ret = connect(socket_, res->ai_addr, res->ai_addrlen);
174
-
175
- // success case
176
- if (ret == 0) {
177
- goto done;
178
- }
179
-
180
- if (errno != EINPROGRESS) {
181
- int errno_copy = errno;
182
- GlobalOutput.perror("TSocket::open() connect() " + getSocketInfo(), errno_copy);
183
- throw TTransportException(TTransportException::NOT_OPEN, "connect() failed", errno_copy);
184
- }
185
-
186
-
187
- struct pollfd fds[1];
188
- std::memset(fds, 0 , sizeof(fds));
189
- fds[0].fd = socket_;
190
- fds[0].events = POLLOUT;
191
- ret = poll(fds, 1, connTimeout_);
192
-
193
- if (ret > 0) {
194
- // Ensure the socket is connected and that there are no errors set
195
- int val;
196
- socklen_t lon;
197
- lon = sizeof(int);
198
- int ret2 = getsockopt(socket_, SOL_SOCKET, SO_ERROR, (void *)&val, &lon);
199
- if (ret2 == -1) {
200
- int errno_copy = errno;
201
- GlobalOutput.perror("TSocket::open() getsockopt() " + getSocketInfo(), errno_copy);
202
- throw TTransportException(TTransportException::NOT_OPEN, "getsockopt()", errno_copy);
203
- }
204
- // no errors on socket, go to town
205
- if (val == 0) {
206
- goto done;
207
- }
208
- GlobalOutput.perror("TSocket::open() error on socket (after poll) " + getSocketInfo(), val);
209
- throw TTransportException(TTransportException::NOT_OPEN, "socket open() error", val);
210
- } else if (ret == 0) {
211
- // socket timed out
212
- string errStr = "TSocket::open() timed out " + getSocketInfo();
213
- GlobalOutput(errStr.c_str());
214
- throw TTransportException(TTransportException::NOT_OPEN, "open() timed out");
215
- } else {
216
- // error on poll()
217
- int errno_copy = errno;
218
- GlobalOutput.perror("TSocket::open() poll() " + getSocketInfo(), errno_copy);
219
- throw TTransportException(TTransportException::NOT_OPEN, "poll() failed", errno_copy);
220
- }
221
-
222
- done:
223
- // Set socket back to normal mode (blocking)
224
- fcntl(socket_, F_SETFL, flags);
225
- }
226
-
227
- void TSocket::open() {
228
- if (isOpen()) {
229
- throw TTransportException(TTransportException::ALREADY_OPEN);
230
- }
231
-
232
- // Validate port number
233
- if (port_ < 0 || port_ > 65536) {
234
- throw TTransportException(TTransportException::NOT_OPEN, "Specified port is invalid");
235
- }
236
-
237
- struct addrinfo hints, *res, *res0;
238
- res = NULL;
239
- res0 = NULL;
240
- int error;
241
- char port[sizeof("65536")];
242
- std::memset(&hints, 0, sizeof(hints));
243
- hints.ai_family = PF_UNSPEC;
244
- hints.ai_socktype = SOCK_STREAM;
245
- hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
246
- sprintf(port, "%d", port_);
247
-
248
- error = getaddrinfo(host_.c_str(), port, &hints, &res0);
249
-
250
- if (error) {
251
- string errStr = "TSocket::open() getaddrinfo() " + getSocketInfo() + string(gai_strerror(error));
252
- GlobalOutput(errStr.c_str());
253
- close();
254
- throw TTransportException(TTransportException::NOT_OPEN, "Could not resolve host for client socket.");
255
- }
256
-
257
- // Cycle through all the returned addresses until one
258
- // connects or push the exception up.
259
- for (res = res0; res; res = res->ai_next) {
260
- try {
261
- openConnection(res);
262
- break;
263
- } catch (TTransportException& ttx) {
264
- if (res->ai_next) {
265
- close();
266
- } else {
267
- close();
268
- freeaddrinfo(res0); // cleanup on failure
269
- throw;
270
- }
271
- }
272
- }
273
-
274
- // Free address structure memory
275
- freeaddrinfo(res0);
276
- }
277
-
278
- void TSocket::close() {
279
- if (socket_ >= 0) {
280
- shutdown(socket_, SHUT_RDWR);
281
- ::close(socket_);
282
- }
283
- socket_ = -1;
284
- }
285
-
286
- uint32_t TSocket::read(uint8_t* buf, uint32_t len) {
287
- if (socket_ < 0) {
288
- throw TTransportException(TTransportException::NOT_OPEN, "Called read on non-open socket");
289
- }
290
-
291
- int32_t retries = 0;
292
-
293
- // EAGAIN can be signalled both when a timeout has occurred and when
294
- // the system is out of resources (an awesome undocumented feature).
295
- // The following is an approximation of the time interval under which
296
- // EAGAIN is taken to indicate an out of resources error.
297
- uint32_t eagainThresholdMicros = 0;
298
- if (recvTimeout_) {
299
- // if a readTimeout is specified along with a max number of recv retries, then
300
- // the threshold will ensure that the read timeout is not exceeded even in the
301
- // case of resource errors
302
- eagainThresholdMicros = (recvTimeout_*1000)/ ((maxRecvRetries_>0) ? maxRecvRetries_ : 2);
303
- }
304
-
305
- try_again:
306
- // Read from the socket
307
- struct timeval begin;
308
- gettimeofday(&begin, NULL);
309
- int got = recv(socket_, buf, len, 0);
310
- int errno_copy = errno; //gettimeofday can change errno
311
- struct timeval end;
312
- gettimeofday(&end, NULL);
313
- uint32_t readElapsedMicros = (((end.tv_sec - begin.tv_sec) * 1000 * 1000)
314
- + (((uint64_t)(end.tv_usec - begin.tv_usec))));
315
- ++g_socket_syscalls;
316
-
317
- // Check for error on read
318
- if (got < 0) {
319
- if (errno_copy == EAGAIN) {
320
- // check if this is the lack of resources or timeout case
321
- if (!eagainThresholdMicros || (readElapsedMicros < eagainThresholdMicros)) {
322
- if (retries++ < maxRecvRetries_) {
323
- usleep(50);
324
- goto try_again;
325
- } else {
326
- throw TTransportException(TTransportException::TIMED_OUT,
327
- "EAGAIN (unavailable resources)");
328
- }
329
- } else {
330
- // infer that timeout has been hit
331
- throw TTransportException(TTransportException::TIMED_OUT,
332
- "EAGAIN (timed out)");
333
- }
334
- }
335
-
336
- // If interrupted, try again
337
- if (errno_copy == EINTR && retries++ < maxRecvRetries_) {
338
- goto try_again;
339
- }
340
-
341
- #if defined __FreeBSD__ || defined __MACH__
342
- if (errno_copy == ECONNRESET) {
343
- /* shigin: freebsd doesn't follow POSIX semantic of recv and fails with
344
- * ECONNRESET if peer performed shutdown
345
- */
346
- close();
347
- return 0;
348
- }
349
- #endif
350
-
351
- // Now it's not a try again case, but a real probblez
352
- GlobalOutput.perror("TSocket::read() recv() " + getSocketInfo(), errno_copy);
353
-
354
- // If we disconnect with no linger time
355
- if (errno_copy == ECONNRESET) {
356
- throw TTransportException(TTransportException::NOT_OPEN, "ECONNRESET");
357
- }
358
-
359
- // This ish isn't open
360
- if (errno_copy == ENOTCONN) {
361
- throw TTransportException(TTransportException::NOT_OPEN, "ENOTCONN");
362
- }
363
-
364
- // Timed out!
365
- if (errno_copy == ETIMEDOUT) {
366
- throw TTransportException(TTransportException::TIMED_OUT, "ETIMEDOUT");
367
- }
368
-
369
- // Some other error, whatevz
370
- throw TTransportException(TTransportException::UNKNOWN, "Unknown", errno_copy);
371
- }
372
-
373
- // The remote host has closed the socket
374
- if (got == 0) {
375
- close();
376
- return 0;
377
- }
378
-
379
- // Pack data into string
380
- return got;
381
- }
382
-
383
- void TSocket::write(const uint8_t* buf, uint32_t len) {
384
- if (socket_ < 0) {
385
- throw TTransportException(TTransportException::NOT_OPEN, "Called write on non-open socket");
386
- }
387
-
388
- uint32_t sent = 0;
389
-
390
- while (sent < len) {
391
-
392
- int flags = 0;
393
- #ifdef MSG_NOSIGNAL
394
- // Note the use of MSG_NOSIGNAL to suppress SIGPIPE errors, instead we
395
- // check for the EPIPE return condition and close the socket in that case
396
- flags |= MSG_NOSIGNAL;
397
- #endif // ifdef MSG_NOSIGNAL
398
-
399
- int b = send(socket_, buf + sent, len - sent, flags);
400
- ++g_socket_syscalls;
401
-
402
- // Fail on a send error
403
- if (b < 0) {
404
- int errno_copy = errno;
405
- GlobalOutput.perror("TSocket::write() send() " + getSocketInfo(), errno_copy);
406
-
407
- if (errno == EPIPE || errno == ECONNRESET || errno == ENOTCONN) {
408
- close();
409
- throw TTransportException(TTransportException::NOT_OPEN, "write() send()", errno_copy);
410
- }
411
-
412
- throw TTransportException(TTransportException::UNKNOWN, "write() send()", errno_copy);
413
- }
414
-
415
- // Fail on blocked send
416
- if (b == 0) {
417
- throw TTransportException(TTransportException::NOT_OPEN, "Socket send returned 0.");
418
- }
419
- sent += b;
420
- }
421
- }
422
-
423
- std::string TSocket::getHost() {
424
- return host_;
425
- }
426
-
427
- int TSocket::getPort() {
428
- return port_;
429
- }
430
-
431
- void TSocket::setHost(string host) {
432
- host_ = host;
433
- }
434
-
435
- void TSocket::setPort(int port) {
436
- port_ = port;
437
- }
438
-
439
- void TSocket::setLinger(bool on, int linger) {
440
- lingerOn_ = on;
441
- lingerVal_ = linger;
442
- if (socket_ < 0) {
443
- return;
444
- }
445
-
446
- struct linger l = {(lingerOn_ ? 1 : 0), lingerVal_};
447
- int ret = setsockopt(socket_, SOL_SOCKET, SO_LINGER, &l, sizeof(l));
448
- if (ret == -1) {
449
- int errno_copy = errno; // Copy errno because we're allocating memory.
450
- GlobalOutput.perror("TSocket::setLinger() setsockopt() " + getSocketInfo(), errno_copy);
451
- }
452
- }
453
-
454
- void TSocket::setNoDelay(bool noDelay) {
455
- noDelay_ = noDelay;
456
- if (socket_ < 0) {
457
- return;
458
- }
459
-
460
- // Set socket to NODELAY
461
- int v = noDelay_ ? 1 : 0;
462
- int ret = setsockopt(socket_, IPPROTO_TCP, TCP_NODELAY, &v, sizeof(v));
463
- if (ret == -1) {
464
- int errno_copy = errno; // Copy errno because we're allocating memory.
465
- GlobalOutput.perror("TSocket::setNoDelay() setsockopt() " + getSocketInfo(), errno_copy);
466
- }
467
- }
468
-
469
- void TSocket::setConnTimeout(int ms) {
470
- connTimeout_ = ms;
471
- }
472
-
473
- void TSocket::setRecvTimeout(int ms) {
474
- if (ms < 0) {
475
- char errBuf[512];
476
- sprintf(errBuf, "TSocket::setRecvTimeout with negative input: %d\n", ms);
477
- GlobalOutput(errBuf);
478
- return;
479
- }
480
- recvTimeout_ = ms;
481
-
482
- if (socket_ < 0) {
483
- return;
484
- }
485
-
486
- recvTimeval_.tv_sec = (int)(recvTimeout_/1000);
487
- recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
488
-
489
- // Copy because poll may modify
490
- struct timeval r = recvTimeval_;
491
- int ret = setsockopt(socket_, SOL_SOCKET, SO_RCVTIMEO, &r, sizeof(r));
492
- if (ret == -1) {
493
- int errno_copy = errno; // Copy errno because we're allocating memory.
494
- GlobalOutput.perror("TSocket::setRecvTimeout() setsockopt() " + getSocketInfo(), errno_copy);
495
- }
496
- }
497
-
498
- void TSocket::setSendTimeout(int ms) {
499
- if (ms < 0) {
500
- char errBuf[512];
501
- sprintf(errBuf, "TSocket::setSendTimeout with negative input: %d\n", ms);
502
- GlobalOutput(errBuf);
503
- return;
504
- }
505
- sendTimeout_ = ms;
506
-
507
- if (socket_ < 0) {
508
- return;
509
- }
510
-
511
- struct timeval s = {(int)(sendTimeout_/1000),
512
- (int)((sendTimeout_%1000)*1000)};
513
- int ret = setsockopt(socket_, SOL_SOCKET, SO_SNDTIMEO, &s, sizeof(s));
514
- if (ret == -1) {
515
- int errno_copy = errno; // Copy errno because we're allocating memory.
516
- GlobalOutput.perror("TSocket::setSendTimeout() setsockopt() " + getSocketInfo(), errno_copy);
517
- }
518
- }
519
-
520
- void TSocket::setMaxRecvRetries(int maxRecvRetries) {
521
- maxRecvRetries_ = maxRecvRetries;
522
- }
523
-
524
- string TSocket::getSocketInfo() {
525
- std::ostringstream oss;
526
- oss << "<Host: " << host_ << " Port: " << port_ << ">";
527
- return oss.str();
528
- }
529
-
530
- std::string TSocket::getPeerHost() {
531
- if (peerHost_.empty()) {
532
- struct sockaddr_storage addr;
533
- socklen_t addrLen = sizeof(addr);
534
-
535
- if (socket_ < 0) {
536
- return host_;
537
- }
538
-
539
- int rv = getpeername(socket_, (sockaddr*) &addr, &addrLen);
540
-
541
- if (rv != 0) {
542
- return peerHost_;
543
- }
544
-
545
- char clienthost[NI_MAXHOST];
546
- char clientservice[NI_MAXSERV];
547
-
548
- getnameinfo((sockaddr*) &addr, addrLen,
549
- clienthost, sizeof(clienthost),
550
- clientservice, sizeof(clientservice), 0);
551
-
552
- peerHost_ = clienthost;
553
- }
554
- return peerHost_;
555
- }
556
-
557
- std::string TSocket::getPeerAddress() {
558
- if (peerAddress_.empty()) {
559
- struct sockaddr_storage addr;
560
- socklen_t addrLen = sizeof(addr);
561
-
562
- if (socket_ < 0) {
563
- return peerAddress_;
564
- }
565
-
566
- int rv = getpeername(socket_, (sockaddr*) &addr, &addrLen);
567
-
568
- if (rv != 0) {
569
- return peerAddress_;
570
- }
571
-
572
- char clienthost[NI_MAXHOST];
573
- char clientservice[NI_MAXSERV];
574
-
575
- getnameinfo((sockaddr*) &addr, addrLen,
576
- clienthost, sizeof(clienthost),
577
- clientservice, sizeof(clientservice),
578
- NI_NUMERICHOST|NI_NUMERICSERV);
579
-
580
- peerAddress_ = clienthost;
581
- peerPort_ = std::atoi(clientservice);
582
- }
583
- return peerAddress_;
584
- }
585
-
586
- int TSocket::getPeerPort() {
587
- getPeerAddress();
588
- return peerPort_;
589
- }
590
-
591
- }}} // apache::thrift::transport