aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event
diff options
context:
space:
mode:
authordakovalkov <dakovalkov@yandex-team.com>2023-12-03 13:33:55 +0300
committerdakovalkov <dakovalkov@yandex-team.com>2023-12-03 14:04:39 +0300
commit2a718325637e5302334b6d0a6430f63168f8dbb3 (patch)
tree64be81080b7df9ec1d86d053a0c394ae53fcf1fe /contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event
parente0d94a470142d95c3007e9c5d80380994940664a (diff)
downloadydb-2a718325637e5302334b6d0a6430f63168f8dbb3.tar.gz
Update contrib/libs/aws-sdk-cpp to 1.11.37
Diffstat (limited to 'contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event')
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp8
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp101
2 files changed, 54 insertions, 55 deletions
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp
index f70a6c88f6..053ff938d4 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp
@@ -72,9 +72,7 @@ namespace Aws
assert(handler);
if (!handler)
{
- AWS_LOGSTREAM_ERROR(EVENT_STREAM_DECODER_CLASS_TAG, "Payload received, but decoder encountered internal errors before."
- "ErrorCode: " << EventStreamErrorsMapper::GetNameForError(handler->GetInternalError()) << ", "
- "ErrorMessage: " << handler->GetEventPayloadAsString());
+ AWS_LOGSTREAM_ERROR(EVENT_STREAM_DECODER_CLASS_TAG, "Payload received, but handler is null.");
return;
}
handler->WriteMessageEventPayload(static_cast<unsigned char*>(payload->buffer), payload->len);
@@ -129,9 +127,7 @@ namespace Aws
assert(handler);
if (!handler)
{
- AWS_LOGSTREAM_ERROR(EVENT_STREAM_DECODER_CLASS_TAG, "Payload received, but decoder encountered internal errors before."
- "ErrorCode: " << EventStreamErrorsMapper::GetNameForError(handler->GetInternalError()) << ", "
- "ErrorMessage: " << handler->GetEventPayloadAsString());
+ AWS_LOGSTREAM_ERROR(EVENT_STREAM_DECODER_CLASS_TAG, "Header received, but handler is null.");
return;
}
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp
index ef7104e839..750bf9e1e6 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp
@@ -80,80 +80,83 @@ namespace Aws
Aws::Vector<unsigned char> EventStreamEncoder::EncodeAndSign(const Aws::Utils::Event::Message& msg)
{
- aws_event_stream_message encoded = Encode(msg);
- aws_event_stream_message signedMessage = Sign(&encoded);
+ Aws::Vector<unsigned char> outputBits;
- const auto signedMessageLength = signedMessage.message_buffer ? aws_event_stream_message_total_length(&signedMessage) : 0;
+ aws_event_stream_message encoded;
+ if (InitEncodedStruct(msg, &encoded))
+ {
+ aws_event_stream_message signedMessage;
+ if (InitSignedStruct(&encoded, &signedMessage))
+ {
+ // success!
+ const auto signedMessageBuffer = aws_event_stream_message_buffer(&signedMessage);
+ const auto signedMessageLength = aws_event_stream_message_total_length(&signedMessage);
+ outputBits.reserve(signedMessageLength);
+ outputBits.insert(outputBits.end(), signedMessageBuffer, signedMessageBuffer + signedMessageLength);
+
+ aws_event_stream_message_clean_up(&signedMessage);
+ }
+ aws_event_stream_message_clean_up(&encoded);
+ }
- Aws::Vector<unsigned char> outputBits(signedMessage.message_buffer, signedMessage.message_buffer + signedMessageLength);
- aws_event_stream_message_clean_up(&encoded);
- aws_event_stream_message_clean_up(&signedMessage);
return outputBits;
}
- aws_event_stream_message EventStreamEncoder::Encode(const Aws::Utils::Event::Message& msg)
+ bool EventStreamEncoder::InitEncodedStruct(const Aws::Utils::Event::Message& msg, aws_event_stream_message* encoded)
{
+ bool success = false;
+
aws_array_list headers;
EncodeHeaders(msg, &headers);
- aws_byte_buf payload;
- payload.len = msg.GetEventPayload().size();
- // this const_cast is OK because aws_byte_buf will only be "read from" by the following functions.
- payload.buffer = const_cast<uint8_t*>(msg.GetEventPayload().data());
- payload.capacity = 0;
- payload.allocator = nullptr;
+ aws_byte_buf payload = aws_byte_buf_from_array(msg.GetEventPayload().data(), msg.GetEventPayload().size());
- aws_event_stream_message encoded;
- if(aws_event_stream_message_init(&encoded, get_aws_allocator(), &headers, &payload) == AWS_OP_ERR)
+ if(aws_event_stream_message_init(encoded, get_aws_allocator(), &headers, &payload) == AWS_OP_SUCCESS)
+ {
+ success = true;
+ }
+ else
{
AWS_LOGSTREAM_ERROR(TAG, "Error creating event-stream message from payload.");
- aws_event_stream_headers_list_cleanup(&headers);
- // GCC 4.9.4 issues a warning with -Wextra if we simply do
- // return {};
- aws_event_stream_message empty{nullptr, nullptr, 0};
- return empty;
}
+
aws_event_stream_headers_list_cleanup(&headers);
- return encoded;
+ return success;
}
- aws_event_stream_message EventStreamEncoder::Sign(aws_event_stream_message* msg)
+ bool EventStreamEncoder::InitSignedStruct(const aws_event_stream_message* msg, aws_event_stream_message* signedmsg)
{
- const auto msglen = msg->message_buffer ? aws_event_stream_message_total_length(msg) : 0;
+ bool success = false;
+
+ const auto msgbuf = aws_event_stream_message_buffer(msg);
+ const auto msglen = aws_event_stream_message_total_length(msg);
Event::Message signedMessage;
- signedMessage.WriteEventPayload(msg->message_buffer, msglen);
+ signedMessage.WriteEventPayload(msgbuf, msglen);
assert(m_signer);
- if (!m_signer->SignEventMessage(signedMessage, m_signatureSeed))
+ if (m_signer->SignEventMessage(signedMessage, m_signatureSeed))
{
- AWS_LOGSTREAM_ERROR(TAG, "Failed to sign event message frame.");
- // GCC 4.9.4 issues a warning with -Wextra if we simply do
- // return {};
- aws_event_stream_message empty{nullptr, nullptr, 0};
- return empty;
- }
-
- aws_array_list headers;
- EncodeHeaders(signedMessage, &headers);
+ aws_array_list headers;
+ EncodeHeaders(signedMessage, &headers);
- aws_byte_buf payload;
- payload.len = signedMessage.GetEventPayload().size();
- payload.buffer = signedMessage.GetEventPayload().data();
- payload.capacity = 0;
- payload.allocator = nullptr;
+ aws_byte_buf payload = aws_byte_buf_from_array(signedMessage.GetEventPayload().data(), signedMessage.GetEventPayload().size());
- aws_event_stream_message signedmsg;
- if(aws_event_stream_message_init(&signedmsg, get_aws_allocator(), &headers, &payload))
- {
- AWS_LOGSTREAM_ERROR(TAG, "Error creating event-stream message from payload.");
+ if(aws_event_stream_message_init(signedmsg, get_aws_allocator(), &headers, &payload) == AWS_OP_SUCCESS)
+ {
+ success = true;
+ }
+ else
+ {
+ AWS_LOGSTREAM_ERROR(TAG, "Error creating event-stream message from payload.");
+ }
aws_event_stream_headers_list_cleanup(&headers);
- // GCC 4.9.4 issues a warning with -Wextra if we simply do
- // return {};
- aws_event_stream_message empty{nullptr, nullptr, 0};
- return empty;
}
- aws_event_stream_headers_list_cleanup(&headers);
- return signedmsg;
+ else
+ {
+ AWS_LOGSTREAM_ERROR(TAG, "Failed to sign event message frame.");
+ }
+
+ return success;
}
} // namespace Event