From eebd7a53fddfc90656d52883bffdc13224c016a7 Mon Sep 17 00:00:00 2001 From: Carsten Patzke <carsten.patzke@desy.de> Date: Wed, 8 Apr 2020 16:33:50 +0200 Subject: [PATCH] [RDS] Removed source_id exposure to the client --- .../src/receiver_data_server/rds_net_server.h | 5 ++--- .../receiver_data_server_request_handler.cpp | 4 ++-- receiver/src/receiver_data_server/tcp_server.cpp | 11 +++++------ receiver/src/receiver_data_server/tcp_server.h | 5 ++--- .../receiver_dataserver_mocking.h | 15 +++++++-------- .../receiver_data_server/test_request_handler.cpp | 2 -- .../receiver_data_server/test_tcp_server.cpp | 8 ++++---- 7 files changed, 22 insertions(+), 28 deletions(-) diff --git a/receiver/src/receiver_data_server/rds_net_server.h b/receiver/src/receiver_data_server/rds_net_server.h index 7465a5838..57dd22a14 100644 --- a/receiver/src/receiver_data_server/rds_net_server.h +++ b/receiver/src/receiver_data_server/rds_net_server.h @@ -10,11 +10,10 @@ namespace asapo { class RdsNetServer { public: virtual GenericRequests GetNewRequests(Error* err) const noexcept = 0; - virtual Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + virtual Error SendResponse(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response) const noexcept = 0; virtual Error - SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, - const GenericNetworkResponse* response, + SendResponseAndSlotData(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response, const CacheMeta* cache_slot) const noexcept = 0; virtual void HandleAfterError(uint64_t source_id) const noexcept = 0; virtual ~RdsNetServer() = default; diff --git a/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp b/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp index c064a9772..af648156d 100644 --- a/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp +++ b/receiver/src/receiver_data_server/receiver_data_server_request_handler.cpp @@ -19,7 +19,7 @@ Error ReceiverDataServerRequestHandler::SendResponse(const ReceiverDataServerReq GenericNetworkResponse response{}; response.op_code = kOpcodeGetBufferData; response.error_code = code; - return server_->SendResponse(request, request->source_id, &response); + return server_->SendResponse(request, &response); } Error ReceiverDataServerRequestHandler::SendResponseAndSlotData(const ReceiverDataServerRequest* request, @@ -27,7 +27,7 @@ Error ReceiverDataServerRequestHandler::SendResponseAndSlotData(const ReceiverDa GenericNetworkResponse response{}; response.op_code = kOpcodeGetBufferData; response.error_code = kNetErrorNoError; - return server_->SendResponseAndSlotData(request, request->source_id, &response, + return server_->SendResponseAndSlotData(request, &response, meta); } diff --git a/receiver/src/receiver_data_server/tcp_server.cpp b/receiver/src/receiver_data_server/tcp_server.cpp index 6dd04c636..02c4c67a4 100644 --- a/receiver/src/receiver_data_server/tcp_server.cpp +++ b/receiver/src/receiver_data_server/tcp_server.cpp @@ -94,10 +94,10 @@ void TcpServer::HandleAfterError(uint64_t source_id) const noexcept { CloseSocket(source_id); } -Error TcpServer::SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, +Error TcpServer::SendResponse(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response) const noexcept { Error err; - io__->Send(source_id, response, sizeof(*response), &err); + io__->Send(request->source_id, response, sizeof(*response), &err); if (err) { log__->Error("cannot send to consumer" + err->Explain()); } @@ -105,17 +105,16 @@ Error TcpServer::SendResponse(const ReceiverDataServerRequest* request, uint64_t } Error -TcpServer::SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, - const GenericNetworkResponse* response, +TcpServer::SendResponseAndSlotData(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response, const CacheMeta* cache_slot) const noexcept { Error err; - err = SendResponse(nullptr, source_id, response); + err = SendResponse(request, response); if (err) { return err; } - io__->Send(source_id, cache_slot->addr, cache_slot->size, &err); + io__->Send(request->source_id, cache_slot->addr, cache_slot->size, &err); if (err) { log__->Error("cannot send slot to worker" + err->Explain()); } diff --git a/receiver/src/receiver_data_server/tcp_server.h b/receiver/src/receiver_data_server/tcp_server.h index c7caf5ecc..9f0f4fe34 100644 --- a/receiver/src/receiver_data_server/tcp_server.h +++ b/receiver/src/receiver_data_server/tcp_server.h @@ -14,10 +14,9 @@ class TcpServer : public RdsNetServer { explicit TcpServer(std::string address); ~TcpServer() override; GenericRequests GetNewRequests(Error* err) const noexcept override ; - Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + Error SendResponse(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response) const noexcept override; - Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, - const GenericNetworkResponse* response, + Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response, const CacheMeta* cache_slot) const noexcept override; void HandleAfterError(uint64_t source_id) const noexcept override; std::unique_ptr<IO> io__; diff --git a/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h b/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h index dc8c1ef9e..33df3e793 100644 --- a/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h +++ b/receiver/unittests/receiver_data_server/receiver_dataserver_mocking.h @@ -27,20 +27,19 @@ class MockNetServer : public RdsNetServer { MOCK_CONST_METHOD1(GetNewRequests_t, std::vector<ReceiverDataServerRequest> (ErrorInterface** error)); - Error SendResponse(const ReceiverDataServerRequest* request, uint64_t source_id, + Error SendResponse(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response) const noexcept override { - return Error{SendResponse_t(request, source_id, response)}; + return Error{SendResponse_t(request, response)}; }; - MOCK_CONST_METHOD3(SendResponse_t, ErrorInterface * (const ReceiverDataServerRequest* request, uint64_t source_id, + MOCK_CONST_METHOD2(SendResponse_t, ErrorInterface * (const ReceiverDataServerRequest* request, const GenericNetworkResponse* response)); - Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, uint64_t source_id, - const GenericNetworkResponse* response, + Error SendResponseAndSlotData(const ReceiverDataServerRequest* request, const GenericNetworkResponse* response, const CacheMeta* cache_slot) const noexcept override { - return Error{SendResponseAndSlotData_t(request, source_id, response, cache_slot)}; + return Error{SendResponseAndSlotData_t(request, response, cache_slot)}; }; - MOCK_CONST_METHOD4(SendResponseAndSlotData_t, ErrorInterface * (const ReceiverDataServerRequest* request, - uint64_t source_id, const GenericNetworkResponse* response, + MOCK_CONST_METHOD3(SendResponseAndSlotData_t, ErrorInterface * (const ReceiverDataServerRequest* request, + const GenericNetworkResponse* response, const CacheMeta* cache_slot)); void HandleAfterError(uint64_t source_id) const noexcept override { diff --git a/receiver/unittests/receiver_data_server/test_request_handler.cpp b/receiver/unittests/receiver_data_server/test_request_handler.cpp index 613aaf477..95bf5fdf0 100644 --- a/receiver/unittests/receiver_data_server/test_request_handler.cpp +++ b/receiver/unittests/receiver_data_server/test_request_handler.cpp @@ -88,7 +88,6 @@ void RequestHandlerTests::MockGetSlotAndUnlockIt(bool return_without_error) { void RequestHandlerTests::MockSendResponse(asapo::NetworkErrorCode expected_response_code, bool return_without_error) { EXPECT_CALL(mock_net, SendResponse_t( &request, - expected_source_id, M_CheckResponse(asapo::kOpcodeGetBufferData, expected_response_code, "") )).WillOnce( Return(return_without_error ? nullptr : asapo::IOErrorTemplates::kUnknownIOError.Generate().release()) @@ -99,7 +98,6 @@ void RequestHandlerTests::MockSendResponseAndSlotData(asapo::NetworkErrorCode ex bool return_without_error) { EXPECT_CALL(mock_net, SendResponseAndSlotData_t( &request, - expected_source_id, M_CheckResponse(asapo::kOpcodeGetBufferData, expected_response_code, ""), &expected_meta )).WillOnce( diff --git a/receiver/unittests/receiver_data_server/test_tcp_server.cpp b/receiver/unittests/receiver_data_server/test_tcp_server.cpp index 40b1a4a82..3ae9dbe73 100644 --- a/receiver/unittests/receiver_data_server/test_tcp_server.cpp +++ b/receiver/unittests/receiver_data_server/test_tcp_server.cpp @@ -247,7 +247,7 @@ TEST_F(TCPServerTests, SendResponse) { EXPECT_CALL(mock_logger, Error(HasSubstr("cannot send"))); - auto err = tcp_server.SendResponse(&expectedRequest, 30, &tmp); + auto err = tcp_server.SendResponse(&expectedRequest, &tmp); ASSERT_THAT(err, Ne(nullptr)); } @@ -270,7 +270,7 @@ TEST_F(TCPServerTests, SendResponseAndSlotData_SendResponseError) { )); EXPECT_CALL(mock_logger, Error(HasSubstr("cannot send"))); - auto err = tcp_server.SendResponseAndSlotData(&expectedRequest, 30, &tmp, &expectedMeta); + auto err = tcp_server.SendResponseAndSlotData(&expectedRequest, &tmp, &expectedMeta); ASSERT_THAT(err, Ne(nullptr)); } @@ -296,7 +296,7 @@ TEST_F(TCPServerTests, SendResponseAndSlotData_SendDataError) { EXPECT_CALL(mock_logger, Error(HasSubstr("cannot send"))); - auto err = tcp_server.SendResponseAndSlotData(&expectedRequest, 30, &tmp, &expectedMeta); + auto err = tcp_server.SendResponseAndSlotData(&expectedRequest, &tmp, &expectedMeta); ASSERT_THAT(err, Ne(nullptr)); } @@ -316,7 +316,7 @@ TEST_F(TCPServerTests, SendResponseAndSlotData_Ok) { EXPECT_CALL(mock_io, Send_t(30, expectedMeta.addr, expectedMeta.size, _)) .WillOnce(Return(expectedMeta.size)); - auto err = tcp_server.SendResponseAndSlotData(&expectedRequest, 30, &tmp, &expectedMeta); + auto err = tcp_server.SendResponseAndSlotData(&expectedRequest, &tmp, &expectedMeta); ASSERT_THAT(err, Eq(nullptr)); } -- GitLab