Skip to content

Commit 93503a5

Browse files
committed
Feature ID tracking for CBOR
Removed magic strings "smithy-protocol" and "rpc-v2-cbor" and placed into Aws::Http::SMITHY_PROTOCOL_HEADER & Aws::RPC_V2_CBOR
1 parent e226d7b commit 93503a5

File tree

6 files changed

+11
-2
lines changed

6 files changed

+11
-2
lines changed

src/aws-cpp-sdk-core/include/aws/core/AmazonSerializableWebServiceRequest.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ namespace Aws
2121
static const char AMZN_XML_CONTENT_TYPE[] = "application/xml";
2222
static const char AMZN_EVENTSTREAM_CONTENT_TYPE[] = "application/vnd.amazon.eventstream";
2323
static const char CBOR_CONTENT_TYPE[] = "application/cbor";
24+
static const char RPC_V2_CBOR[] = "rpc-v2-cbor";
2425

2526
/**
2627
* High-level abstraction over AWS requests. GetBody() calls SerializePayload() and uses a stringbuf under the hood.

src/aws-cpp-sdk-core/include/aws/core/client/UserAgent.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ enum class UserAgentFeature {
4242
CREDENTIALS_SSO,
4343
CREDENTIALS_SSO_LEGACY,
4444
CREDENTIALS_PROFILE_SOURCE_PROFILE,
45+
PROTOCOL_RPC_V2_CBOR,
4546
};
4647

4748
class AWS_CORE_API UserAgent {

src/aws-cpp-sdk-core/include/aws/core/http/HttpRequest.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ namespace Aws
5959
extern AWS_CORE_API const char AWS_TRAILER_HEADER[];
6060
extern AWS_CORE_API const char SDK_INVOCATION_ID_HEADER[];
6161
extern AWS_CORE_API const char SDK_REQUEST_HEADER[];
62+
extern AWS_CORE_API const char SMITHY_PROTOCOL_HEADER[];
6263
extern AWS_CORE_API const char X_AMZN_TRACE_ID_HEADER[];
6364
extern AWS_CORE_API const char CHUNKED_VALUE[];
6465
extern AWS_CORE_API const char AWS_CHUNKED_VALUE[];

src/aws-cpp-sdk-core/source/client/AWSClient.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -927,6 +927,11 @@ void AWSClient::BuildHttpRequest(const Aws::AmazonWebServiceRequest& request, co
927927
}
928928
}
929929

930+
if (httpRequest->HasHeader(Aws::Http::SMITHY_PROTOCOL_HEADER))
931+
{
932+
request.AddUserAgentFeature(Aws::Client::UserAgentFeature::PROTOCOL_RPC_V2_CBOR);
933+
}
934+
930935
// Pass along handlers for processing data sent/received in bytes
931936
httpRequest->SetHeadersReceivedEventHandler(request.GetHeadersReceivedEventHandler());
932937
httpRequest->SetDataReceivedEventHandler(request.GetDataReceivedEventHandler());

src/aws-cpp-sdk-core/source/http/HttpRequest.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ namespace Aws
3737
const char AWS_TRAILER_HEADER[] = "x-amz-trailer";
3838
const char SDK_INVOCATION_ID_HEADER[] = "amz-sdk-invocation-id";
3939
const char SDK_REQUEST_HEADER[] = "amz-sdk-request";
40+
const char SMITHY_PROTOCOL_HEADER[] = "smithy-protocol";
4041
const char CHUNKED_VALUE[] = "chunked";
4142
const char AWS_CHUNKED_VALUE[] = "aws-chunked";
4243
const char X_AMZN_TRACE_ID_HEADER[] = "X-Amzn-Trace-Id";

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/CborCppClientGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,15 @@ protected SdkFileEntry generateModelSourceFile(ServiceModel serviceModel, Map.En
122122
HashMap<String, String> headersMap = new HashMap<>(10);
123123
headersMap.put("Aws::Http::CONTENT_TYPE_HEADER", "Aws::AMZN_EVENTSTREAM_CONTENT_TYPE");
124124
headersMap.put("Aws::Http::ACCEPT_HEADER", "Aws::AMZN_EVENTSTREAM_CONTENT_TYPE");
125-
headersMap.put("\"smithy-protocol\"", "\"rpc-v2-cbor\"");
125+
headersMap.put("Aws::Http::SMITHY_PROTOCOL_HEADER", "Aws::RPC_V2_CBOR");
126126
context.put("requestSpecificHeaders", headersMap);
127127
}
128128
template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/StreamRequestSource.vm", StandardCharsets.UTF_8.name());
129129
}
130130
else if (shape.isRequest()) {
131131
Map<String, String> cborSpecificHeaders = new HashMap<>();
132132
cborSpecificHeaders.put("Aws::Http::ACCEPT_HEADER", "Aws::CBOR_CONTENT_TYPE");
133-
cborSpecificHeaders.put("\"smithy-protocol\"", "\"rpc-v2-cbor\"");
133+
cborSpecificHeaders.put("Aws::Http::SMITHY_PROTOCOL_HEADER", "Aws::RPC_V2_CBOR");
134134
if(shape.hasMembers()){
135135
cborSpecificHeaders.put("Aws::Http::CONTENT_TYPE_HEADER", "Aws::CBOR_CONTENT_TYPE");
136136
}

0 commit comments

Comments
 (0)