diff options
author | Tor Brede Vekterli <vekterli@oath.com> | 2018-09-17 13:30:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-17 13:30:52 +0200 |
commit | a940b388669b3ad3cc364c6f6ce638919ee76676 (patch) | |
tree | fc590a900ba0e5d240091086c4891c2d59be0ca1 | |
parent | cbfa37a64fd7d5fa39783682c09bb4247c6ad2a2 (diff) | |
parent | 8874dd8e3df66058143d0382ee80f539c3ed6b23 (diff) |
Merge pull request #6973 from vespa-engine/havardpe/process-pending-data-before-reading-more
Havardpe/process pending data before reading more
4 files changed, 13 insertions, 9 deletions
diff --git a/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp b/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp index 59ca9d4ccc0..31aec84afd5 100644 --- a/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp +++ b/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp @@ -119,7 +119,7 @@ void perform_test(size_t thread_id, Client &client, Result &result) { CryptoEngine::SP null_crypto = std::make_shared<NullCryptoEngine>(); CryptoEngine::SP xor_crypto = std::make_shared<XorCryptoEngine>(); -// CryptoEngine::SP tls_crypto = std::make_shared<vespalib::TlsCryptoEngine>(vespalib::test::make_tls_options_for_testing()); +CryptoEngine::SP tls_crypto = std::make_shared<vespalib::TlsCryptoEngine>(vespalib::test::make_tls_options_for_testing()); TEST_MT_FFF("parallel rpc with 1/1 transport threads and 128 user threads (no encryption)", 128, Server(null_crypto, 1), Client(null_crypto, 1, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } @@ -127,8 +127,8 @@ TEST_MT_FFF("parallel rpc with 1/1 transport threads and 128 user threads (no en TEST_MT_FFF("parallel rpc with 1/1 transport threads and 128 user threads (xor encryption)", 128, Server(xor_crypto, 1), Client(xor_crypto, 1, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } -// TEST_MT_FFF("parallel rpc with 1/1 transport threads and 128 user threads (tls encryption)", -// 128, Server(tls_crypto, 1), Client(tls_crypto, 1, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } +TEST_MT_FFF("parallel rpc with 1/1 transport threads and 128 user threads (tls encryption)", + 128, Server(tls_crypto, 1), Client(tls_crypto, 1, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } TEST_MT_FFF("parallel rpc with 8/8 transport threads and 128 user threads (no encryption)", 128, Server(null_crypto, 8), Client(null_crypto, 8, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } @@ -136,7 +136,7 @@ TEST_MT_FFF("parallel rpc with 8/8 transport threads and 128 user threads (no en TEST_MT_FFF("parallel rpc with 8/8 transport threads and 128 user threads (xor encryption)", 128, Server(xor_crypto, 8), Client(xor_crypto, 8, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } -// TEST_MT_FFF("parallel rpc with 8/8 transport threads and 128 user threads (tls encryption)", -// 128, Server(tls_crypto, 8), Client(tls_crypto, 8, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } +TEST_MT_FFF("parallel rpc with 8/8 transport threads and 128 user threads (tls encryption)", + 128, Server(tls_crypto, 8), Client(tls_crypto, 8, f1), Result(num_threads)) { perform_test(thread_id, f2, f3); } TEST_MAIN() { TEST_RUN_ALL(); } diff --git a/fnet/src/tests/frt/rpc/CMakeLists.txt b/fnet/src/tests/frt/rpc/CMakeLists.txt index 4c1883ee7bd..2bacd37686a 100644 --- a/fnet/src/tests/frt/rpc/CMakeLists.txt +++ b/fnet/src/tests/frt/rpc/CMakeLists.txt @@ -7,7 +7,7 @@ vespa_add_executable(fnet_invoke_test_app TEST ) vespa_add_test(NAME fnet_invoke_test_app COMMAND fnet_invoke_test_app) vespa_add_test(NAME fnet_invoke_test_app_xor COMMAND fnet_invoke_test_app ENVIRONMENT "CRYPTOENGINE=xor") -# vespa_add_test(NAME fnet_invoke_test_app_tls COMMAND fnet_invoke_test_app ENVIRONMENT "CRYPTOENGINE=tls") +vespa_add_test(NAME fnet_invoke_test_app_tls COMMAND fnet_invoke_test_app ENVIRONMENT "CRYPTOENGINE=tls") vespa_add_executable(fnet_detach_return_invoke_test_app TEST SOURCES detach_return_invoke.cpp @@ -23,7 +23,7 @@ vespa_add_executable(fnet_session_test_app TEST ) vespa_add_test(NAME fnet_session_test_app COMMAND fnet_session_test_app) vespa_add_test(NAME fnet_session_test_app_xor COMMAND fnet_session_test_app ENVIRONMENT "CRYPTOENGINE=xor") -# vespa_add_test(NAME fnet_session_test_app_tls COMMAND fnet_session_test_app ENVIRONMENT "CRYPTOENGINE=tls") +vespa_add_test(NAME fnet_session_test_app_tls COMMAND fnet_session_test_app ENVIRONMENT "CRYPTOENGINE=tls") vespa_add_executable(fnet_sharedblob_test_app TEST SOURCES sharedblob.cpp diff --git a/vespalib/src/vespa/vespalib/net/crypto_engine.cpp b/vespalib/src/vespa/vespalib/net/crypto_engine.cpp index ec225311b60..254a9b213ba 100644 --- a/vespalib/src/vespa/vespalib/net/crypto_engine.cpp +++ b/vespalib/src/vespa/vespalib/net/crypto_engine.cpp @@ -112,7 +112,7 @@ public: } size_t min_read_buffer_size() const override { return 1; } ssize_t read(char *buf, size_t len) override { - if (_input.obtain().size < CHUNK_SIZE) { + if (_input.obtain().size == 0) { auto dst = _input.reserve(CHUNK_SIZE); ssize_t res = _socket.read(dst.data, dst.size); if (res > 0) { diff --git a/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp b/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp index f8fa4ab2b53..494919f449f 100644 --- a/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp +++ b/vespalib/src/vespa/vespalib/net/tls/crypto_codec_adapter.cpp @@ -85,11 +85,15 @@ CryptoCodecAdapter::handshake() ssize_t CryptoCodecAdapter::read(char *buf, size_t len) { + auto drain_res = drain(buf, len); + if (drain_res != 0) { + return drain_res; + } auto fill_res = fill_input(); if (fill_res <= 0) { return fill_res; } - auto drain_res = drain(buf, len); + drain_res = drain(buf, len); if (drain_res != 0) { return drain_res; } |