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.
- data/VERSION.yml +1 -1
- data/bin/cloud-compile +6 -1
- data/config/jeweler.rb +1 -3
- data/lib/cloud_providers/cloud_provider_instance.rb +11 -1
- data/lib/dependency_resolvers/chef/resources/chef_recipe.rb +51 -0
- data/lib/dependency_resolvers/chef.rb +12 -3
- data/lib/mixins/callbacks.rb +6 -2
- data/lib/poolparty/plugins/apache2/passenger_site.rb +2 -2
- data/test/fixtures/chef/recipes/sudo/attributes/sudoers.rb +30 -0
- data/test/fixtures/chef/recipes/sudo/recipes/default.rb +33 -0
- data/test/fixtures/chef/recipes/sudo/templates/default/sudoers.erb +22 -0
- data/test/lib/dependency_resolvers/chef/resources/chef_recipe_test.rb +21 -0
- data/test/lib/dependency_resolvers/chef_test.rb +8 -1
- data/vendor/gems/thrift/CHANGELOG +1 -0
- data/vendor/gems/thrift/Makefile.am +25 -6
- data/vendor/gems/thrift/Manifest +81 -0
- data/vendor/gems/thrift/README +17 -111
- data/vendor/gems/thrift/Rakefile +104 -0
- data/vendor/gems/thrift/{lib/hs/Setup.lhs → benchmark/Benchmark.thrift} +5 -4
- data/vendor/gems/thrift/benchmark/benchmark.rb +271 -0
- data/vendor/gems/thrift/benchmark/client.rb +74 -0
- data/vendor/gems/thrift/benchmark/server.rb +82 -0
- data/vendor/gems/thrift/benchmark/thin_server.rb +44 -0
- data/vendor/gems/thrift/ext/binary_protocol_accelerated.c +474 -0
- data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.m → ext/binary_protocol_accelerated.h} +1 -4
- data/vendor/gems/thrift/ext/compact_protocol.c +665 -0
- data/vendor/gems/thrift/{lib/cocoa/src/protocol/TProtocolException.h → ext/compact_protocol.h} +1 -6
- data/vendor/gems/thrift/ext/constants.h +95 -0
- data/vendor/gems/thrift/{contrib/fb303/Makefile.am → ext/extconf.rb} +8 -13
- data/vendor/gems/thrift/{compiler/cpp/src/platform.h → ext/macros.h} +18 -13
- data/vendor/gems/thrift/ext/memory_buffer.c +76 -0
- data/vendor/gems/thrift/{lib/csharp/src/Protocol/TMessageType.cs → ext/memory_buffer.h} +2 -13
- data/vendor/gems/thrift/ext/protocol.c +185 -0
- data/vendor/gems/thrift/{lib/csharp/src/TProcessor.cs → ext/protocol.h} +2 -11
- data/vendor/gems/thrift/ext/struct.c +606 -0
- data/vendor/gems/thrift/ext/struct.h +67 -0
- data/vendor/gems/thrift/ext/thrift_native.c +194 -0
- data/vendor/gems/thrift/lib/thrift/client.rb +62 -0
- data/vendor/gems/thrift/{contrib/fb303/py/fb303_scripts/__init__.py → lib/thrift/core_ext/fixnum.rb} +13 -4
- data/vendor/gems/thrift/{contrib/fb303/global_footer.mk → lib/thrift/core_ext.rb} +4 -2
- data/vendor/gems/thrift/lib/thrift/exceptions.rb +82 -0
- data/vendor/gems/thrift/lib/thrift/processor.rb +57 -0
- data/vendor/gems/thrift/lib/thrift/protocol/base_protocol.rb +290 -0
- data/vendor/gems/thrift/lib/thrift/protocol/binary_protocol.rb +225 -0
- data/vendor/gems/thrift/{cleanup.sh → lib/thrift/protocol/binary_protocol_accelerated.rb} +19 -42
- data/vendor/gems/thrift/lib/thrift/protocol/compact_protocol.rb +422 -0
- data/vendor/gems/thrift/lib/thrift/serializer/deserializer.rb +33 -0
- data/vendor/gems/thrift/{bootstrap.sh → lib/thrift/serializer/serializer.rb} +17 -18
- data/vendor/gems/thrift/lib/thrift/server/base_server.rb +31 -0
- data/vendor/gems/thrift/lib/thrift/server/mongrel_http_server.rb +58 -0
- data/vendor/gems/thrift/lib/thrift/server/nonblocking_server.rb +296 -0
- data/vendor/gems/thrift/lib/thrift/server/simple_server.rb +43 -0
- data/vendor/gems/thrift/lib/thrift/server/thread_pool_server.rb +75 -0
- data/vendor/gems/thrift/lib/thrift/server/threaded_server.rb +47 -0
- data/vendor/gems/thrift/lib/thrift/struct.rb +298 -0
- data/vendor/gems/thrift/{contrib/fb303/bootstrap.sh → lib/thrift/thrift_native.rb} +5 -7
- data/vendor/gems/thrift/lib/{erl/Makefile → thrift/transport/base_server_transport.rb} +20 -20
- data/vendor/gems/thrift/lib/thrift/transport/base_transport.rb +70 -0
- data/vendor/gems/thrift/lib/thrift/transport/buffered_transport.rb +77 -0
- data/vendor/gems/thrift/lib/thrift/transport/framed_transport.rb +90 -0
- data/vendor/gems/thrift/lib/thrift/transport/http_client_transport.rb +45 -0
- data/vendor/gems/thrift/lib/thrift/transport/io_stream_transport.rb +39 -0
- data/vendor/gems/thrift/lib/thrift/transport/memory_buffer_transport.rb +96 -0
- data/vendor/gems/thrift/lib/thrift/transport/server_socket.rb +63 -0
- data/vendor/gems/thrift/lib/thrift/transport/socket.rb +136 -0
- data/vendor/gems/thrift/lib/{java/Makefile.am → thrift/transport/unix_server_socket.rb} +39 -17
- data/vendor/gems/thrift/{contrib/fb303/global_header.mk → lib/thrift/transport/unix_socket.rb} +23 -21
- data/vendor/gems/thrift/lib/thrift/types.rb +101 -0
- data/vendor/gems/thrift/lib/thrift.rb +59 -0
- data/vendor/gems/thrift/script/proto_benchmark.rb +121 -0
- data/vendor/gems/thrift/{lib/Makefile.am → script/read_struct.rb} +24 -36
- data/vendor/gems/thrift/{contrib/fb303/py/setup.py → script/write_struct.rb} +8 -5
- data/vendor/gems/thrift/setup.rb +1585 -0
- data/vendor/gems/thrift/spec/ThriftSpec.thrift +84 -0
- data/vendor/gems/thrift/spec/base_protocol_spec.rb +160 -0
- data/vendor/gems/thrift/spec/base_transport_spec.rb +351 -0
- data/vendor/gems/thrift/{contrib/fb303/py/Makefile.am → spec/binary_protocol_accelerated_spec.rb} +22 -25
- data/vendor/gems/thrift/spec/binary_protocol_spec.rb +63 -0
- data/vendor/gems/thrift/spec/binary_protocol_spec_shared.rb +375 -0
- data/vendor/gems/thrift/spec/client_spec.rb +100 -0
- data/vendor/gems/thrift/spec/compact_protocol_spec.rb +117 -0
- data/vendor/gems/thrift/spec/exception_spec.rb +142 -0
- data/vendor/gems/thrift/spec/http_client_spec.rb +49 -0
- data/vendor/gems/thrift/spec/mongrel_http_server_spec.rb +117 -0
- data/vendor/gems/thrift/spec/nonblocking_server_spec.rb +265 -0
- data/vendor/gems/thrift/spec/processor_spec.rb +83 -0
- data/vendor/gems/thrift/spec/serializer_spec.rb +69 -0
- data/vendor/gems/thrift/spec/server_socket_spec.rb +80 -0
- data/vendor/gems/thrift/spec/server_spec.rb +160 -0
- data/vendor/gems/thrift/spec/socket_spec.rb +61 -0
- data/vendor/gems/thrift/spec/socket_spec_shared.rb +104 -0
- data/vendor/gems/thrift/spec/spec_helper.rb +60 -0
- data/vendor/gems/thrift/spec/struct_spec.rb +252 -0
- data/vendor/gems/thrift/spec/types_spec.rb +116 -0
- data/vendor/gems/thrift/spec/unix_socket_spec.rb +108 -0
- data/vendor/gems/trollop/FAQ.txt +84 -0
- data/vendor/gems/trollop/History.txt +101 -0
- data/vendor/gems/trollop/Manifest.txt +7 -0
- data/vendor/gems/trollop/README.txt +40 -0
- data/vendor/gems/trollop/Rakefile +36 -0
- data/vendor/gems/trollop/lib/trollop.rb +739 -0
- data/vendor/gems/trollop/release-script.txt +13 -0
- data/vendor/gems/trollop/test/test_trollop.rb +1048 -0
- data/vendor/gems/trollop/www/index.html +172 -0
- metadata +123 -347
- data/vendor/gems/thrift/CHANGES +0 -35
- data/vendor/gems/thrift/CONTRIBUTORS +0 -77
- data/vendor/gems/thrift/DISCLAIMER +0 -6
- data/vendor/gems/thrift/LICENSE +0 -202
- data/vendor/gems/thrift/NEWS +0 -79
- data/vendor/gems/thrift/NOTICE +0 -26
- data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +0 -198
- data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +0 -107
- data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +0 -194
- data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +0 -173
- data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +0 -127
- data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +0 -39
- data/vendor/gems/thrift/compiler/cpp/Makefile.am +0 -136
- data/vendor/gems/thrift/compiler/cpp/README +0 -39
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +0 -2331
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +0 -3003
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +0 -1700
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +0 -932
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +0 -173
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +0 -321
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +0 -1445
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +0 -637
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +0 -3069
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +0 -1673
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +0 -77
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +0 -1812
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +0 -2281
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +0 -2310
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +0 -1114
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +0 -1071
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +0 -354
- data/vendor/gems/thrift/compiler/cpp/src/globals.h +0 -117
- data/vendor/gems/thrift/compiler/cpp/src/main.cc +0 -1207
- data/vendor/gems/thrift/compiler/cpp/src/main.h +0 -103
- data/vendor/gems/thrift/compiler/cpp/src/md5.c +0 -381
- data/vendor/gems/thrift/compiler/cpp/src/md5.h +0 -91
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +0 -137
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +0 -59
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +0 -121
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +0 -56
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +0 -51
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +0 -59
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +0 -64
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +0 -150
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +0 -93
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +0 -56
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +0 -64
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +0 -223
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +0 -86
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +0 -68
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +0 -55
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +0 -127
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +0 -176
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +0 -70
- data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +0 -303
- data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +0 -1140
- data/vendor/gems/thrift/configure.ac +0 -255
- data/vendor/gems/thrift/contrib/fb303/LICENSE +0 -16
- data/vendor/gems/thrift/contrib/fb303/README +0 -37
- data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +0 -258
- data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +0 -198
- data/vendor/gems/thrift/contrib/fb303/configure.ac +0 -115
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +0 -124
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +0 -103
- data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +0 -84
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +0 -481
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +0 -215
- data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +0 -112
- data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +0 -103
- data/vendor/gems/thrift/contrib/fb303/java/build.xml +0 -84
- data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +0 -89
- data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +0 -82
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +0 -195
- data/vendor/gems/thrift/contrib/thrift.el +0 -126
- data/vendor/gems/thrift/contrib/thrift.spec +0 -206
- data/vendor/gems/thrift/contrib/thrift.vim +0 -91
- data/vendor/gems/thrift/contrib/thrift_dump.cpp +0 -91
- data/vendor/gems/thrift/doc/lgpl-2.1.txt +0 -504
- data/vendor/gems/thrift/doc/otp-base-license.txt +0 -20
- data/vendor/gems/thrift/doc/thrift.bnf +0 -96
- data/vendor/gems/thrift/doc/thrift.tex +0 -1057
- data/vendor/gems/thrift/lib/cocoa/README +0 -21
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +0 -44
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +0 -130
- data/vendor/gems/thrift/lib/cocoa/src/TException.h +0 -34
- data/vendor/gems/thrift/lib/cocoa/src/TException.m +0 -64
- data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +0 -29
- data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +0 -27
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +0 -27
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +0 -51
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +0 -51
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +0 -477
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +0 -148
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +0 -29
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +0 -29
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +0 -104
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +0 -50
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +0 -153
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +0 -42
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +0 -159
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +0 -35
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +0 -91
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +0 -38
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +0 -89
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +0 -32
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +0 -58
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +0 -36
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +0 -30
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +0 -43
- data/vendor/gems/thrift/lib/cpp/Makefile.am +0 -158
- data/vendor/gems/thrift/lib/cpp/README +0 -67
- data/vendor/gems/thrift/lib/cpp/src/TLogging.h +0 -163
- data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +0 -53
- data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +0 -96
- data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +0 -148
- data/vendor/gems/thrift/lib/cpp/src/Thrift.h +0 -191
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +0 -60
- data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +0 -77
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +0 -137
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +0 -84
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +0 -160
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +0 -114
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +0 -314
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +0 -130
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +0 -125
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +0 -493
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +0 -169
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +0 -284
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +0 -122
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +0 -55
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +0 -100
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +0 -155
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +0 -354
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +0 -379
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +0 -155
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +0 -122
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +0 -77
- data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +0 -264
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +0 -79
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +0 -42
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +0 -394
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +0 -254
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +0 -736
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +0 -279
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +0 -346
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +0 -225
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +0 -762
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +0 -253
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +0 -998
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +0 -340
- data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +0 -304
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +0 -438
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +0 -104
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +0 -187
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +0 -750
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +0 -435
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +0 -38
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +0 -213
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +0 -118
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +0 -70
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +0 -217
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +0 -79
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +0 -243
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +0 -74
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +0 -370
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +0 -667
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +0 -77
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +0 -73
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +0 -953
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +0 -442
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +0 -348
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +0 -111
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +0 -368
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +0 -76
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +0 -92
- data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +0 -96
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +0 -54
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +0 -41
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +0 -591
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +0 -242
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +0 -235
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +0 -191
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +0 -224
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +0 -31
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +0 -117
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +0 -178
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +0 -287
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +0 -299
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +0 -219
- data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +0 -30
- data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +0 -30
- data/vendor/gems/thrift/lib/cpp/thrift.pc.in +0 -29
- data/vendor/gems/thrift/lib/csharp/Makefile.am +0 -70
- data/vendor/gems/thrift/lib/csharp/README +0 -26
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +0 -55
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +0 -242
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +0 -62
- data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +0 -142
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +0 -34
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +0 -392
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +0 -58
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +0 -50
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +0 -58
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +0 -58
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +0 -87
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +0 -61
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +0 -29
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +0 -94
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +0 -50
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +0 -42
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +0 -40
- data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +0 -135
- data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +0 -148
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +0 -186
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +0 -234
- data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +0 -131
- data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +0 -73
- data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +0 -35
- data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +0 -100
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +0 -157
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +0 -39
- data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +0 -144
- data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +0 -103
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +0 -66
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +0 -64
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +0 -38
- data/vendor/gems/thrift/lib/erl/README +0 -56
- data/vendor/gems/thrift/lib/erl/build/beamver +0 -59
- data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +0 -15
- data/vendor/gems/thrift/lib/erl/build/colors.mk +0 -24
- data/vendor/gems/thrift/lib/erl/build/docs.mk +0 -12
- data/vendor/gems/thrift/lib/erl/build/mime.types +0 -98
- data/vendor/gems/thrift/lib/erl/build/otp.mk +0 -146
- data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +0 -85
- data/vendor/gems/thrift/lib/erl/build/raw_test.mk +0 -29
- data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +0 -54
- data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +0 -31
- data/vendor/gems/thrift/lib/erl/src/Makefile +0 -116
- data/vendor/gems/thrift/lib/erl/src/test_handler.erl +0 -26
- data/vendor/gems/thrift/lib/erl/src/test_service.erl +0 -29
- data/vendor/gems/thrift/lib/erl/src/thrift.app.src +0 -44
- data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +0 -1
- data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +0 -64
- data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +0 -325
- data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +0 -180
- data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +0 -384
- data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +0 -118
- data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +0 -87
- data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +0 -208
- data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +0 -199
- data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +0 -164
- data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +0 -188
- data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +0 -356
- data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +0 -183
- data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +0 -25
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +0 -249
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +0 -119
- data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +0 -57
- data/vendor/gems/thrift/lib/erl/vsn.mk +0 -1
- data/vendor/gems/thrift/lib/hs/README +0 -82
- data/vendor/gems/thrift/lib/hs/TODO +0 -2
- data/vendor/gems/thrift/lib/hs/Thrift.cabal +0 -20
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +0 -147
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +0 -191
- data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +0 -65
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +0 -58
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +0 -60
- data/vendor/gems/thrift/lib/hs/src/Thrift.hs +0 -111
- data/vendor/gems/thrift/lib/java/README +0 -43
- data/vendor/gems/thrift/lib/java/build.xml +0 -195
- data/vendor/gems/thrift/lib/java/ivy.xml +0 -8
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +0 -171
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +0 -123
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +0 -66
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +0 -102
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +0 -46
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +0 -94
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +0 -45
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +0 -30
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +0 -32
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +0 -39
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +0 -110
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +0 -69
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +0 -42
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +0 -29
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +0 -29
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +0 -128
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +0 -331
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +0 -741
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +0 -48
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +0 -927
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +0 -38
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +0 -40
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +0 -48
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +0 -146
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +0 -81
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +0 -30
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +0 -158
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +0 -42
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +0 -384
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +0 -36
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +0 -40
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +0 -304
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +0 -772
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +0 -126
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +0 -145
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +0 -271
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +0 -126
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +0 -157
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +0 -159
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +0 -98
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +0 -160
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +0 -31
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +0 -213
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +0 -31
- 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
|