Skip to content

Commit bf02bce

Browse files
authored
declare user agent string only once (#493)
The user-agent string was repeated at 5+ different places in the source code. I defined it as a constant in the `ControlPlaneRequest` struct where other similar constant have been defined and make sure the rest of the code only uses that constant. This should address #492
1 parent 0a75e0f commit bf02bce

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

Sources/AWSLambdaRuntime/ControlPlaneRequestEncoder.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ struct ControlPlaneRequestEncoder: _EmittingChannelHandler {
9393
extension String {
9494
static let CRLF: String = "\r\n"
9595

96-
static let userAgentHeader: String = "user-agent: Swift-Lambda/Unknown\r\n"
96+
static let userAgent = "Swift-Lambda/Unknown"
97+
static let userAgentHeader: String = "user-agent: \(userAgent)\r\n"
9798
static let unhandledErrorHeader: String = "lambda-runtime-function-error-type: Unhandled\r\n"
9899

99100
static let nextInvocationRequestLine: String =

Sources/AWSLambdaRuntime/LambdaRuntimeClient.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -458,16 +458,16 @@ private final class LambdaChannelHandler<Delegate: LambdaChannelHandlerDelegate>
458458
self.configuration = configuration
459459
self.defaultHeaders = [
460460
"host": "\(self.configuration.ip):\(self.configuration.port)",
461-
"user-agent": "Swift-Lambda/Unknown",
461+
"user-agent": .userAgent,
462462
]
463463
self.errorHeaders = [
464464
"host": "\(self.configuration.ip):\(self.configuration.port)",
465-
"user-agent": "Swift-Lambda/Unknown",
465+
"user-agent": .userAgent,
466466
"lambda-runtime-function-error-type": "Unhandled",
467467
]
468468
self.streamingHeaders = [
469469
"host": "\(self.configuration.ip):\(self.configuration.port)",
470-
"user-agent": "Swift-Lambda/Unknown",
470+
"user-agent": .userAgent,
471471
"transfer-encoding": "chunked",
472472
]
473473
}
@@ -638,7 +638,7 @@ private final class LambdaChannelHandler<Delegate: LambdaChannelHandlerDelegate>
638638
if byteBuffer?.readableBytes ?? 0 < 6_000_000 {
639639
[
640640
"host": "\(self.configuration.ip):\(self.configuration.port)",
641-
"user-agent": "Swift-Lambda/Unknown",
641+
"user-agent": .userAgent,
642642
"content-length": "\(byteBuffer?.readableBytes ?? 0)",
643643
]
644644
} else {

Tests/AWSLambdaRuntimeCoreTests/ControlPlaneRequestEncoderTests.swift

+5-5
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ final class ControlPlaneRequestEncoderTests: XCTestCase {
4949
XCTAssertEqual(request?.head.uri, "/2018-06-01/runtime/invocation/next")
5050
XCTAssertEqual(request?.head.version, .http1_1)
5151
XCTAssertEqual(request?.head.headers["host"], [self.host])
52-
XCTAssertEqual(request?.head.headers["user-agent"], ["Swift-Lambda/Unknown"])
52+
XCTAssertEqual(request?.head.headers["user-agent"], [.userAgent])
5353

5454
XCTAssertNil(try self.server.readInbound(as: NIOHTTPServerRequestFull.self))
5555
}
@@ -64,7 +64,7 @@ final class ControlPlaneRequestEncoderTests: XCTestCase {
6464
XCTAssertEqual(request?.head.uri, "/2018-06-01/runtime/invocation/\(requestID)/response")
6565
XCTAssertEqual(request?.head.version, .http1_1)
6666
XCTAssertEqual(request?.head.headers["host"], [self.host])
67-
XCTAssertEqual(request?.head.headers["user-agent"], ["Swift-Lambda/Unknown"])
67+
XCTAssertEqual(request?.head.headers["user-agent"], [.userAgent])
6868
XCTAssertEqual(request?.head.headers["content-length"], ["0"])
6969

7070
XCTAssertNil(try self.server.readInbound(as: NIOHTTPServerRequestFull.self))
@@ -82,7 +82,7 @@ final class ControlPlaneRequestEncoderTests: XCTestCase {
8282
XCTAssertEqual(request?.head.uri, "/2018-06-01/runtime/invocation/\(requestID)/response")
8383
XCTAssertEqual(request?.head.version, .http1_1)
8484
XCTAssertEqual(request?.head.headers["host"], [self.host])
85-
XCTAssertEqual(request?.head.headers["user-agent"], ["Swift-Lambda/Unknown"])
85+
XCTAssertEqual(request?.head.headers["user-agent"], [.userAgent])
8686
XCTAssertEqual(request?.head.headers["content-length"], ["\(payload.readableBytes)"])
8787
XCTAssertEqual(request?.body, payload)
8888

@@ -100,7 +100,7 @@ final class ControlPlaneRequestEncoderTests: XCTestCase {
100100
XCTAssertEqual(request?.head.uri, "/2018-06-01/runtime/invocation/\(requestID)/error")
101101
XCTAssertEqual(request?.head.version, .http1_1)
102102
XCTAssertEqual(request?.head.headers["host"], [self.host])
103-
XCTAssertEqual(request?.head.headers["user-agent"], ["Swift-Lambda/Unknown"])
103+
XCTAssertEqual(request?.head.headers["user-agent"], [.userAgent])
104104
XCTAssertEqual(request?.head.headers["lambda-runtime-function-error-type"], ["Unhandled"])
105105
let expectedBody = #"{"errorType":"SomeError","errorMessage":"An error happened"}"#
106106

@@ -123,7 +123,7 @@ final class ControlPlaneRequestEncoderTests: XCTestCase {
123123
XCTAssertEqual(request?.head.uri, "/2018-06-01/runtime/init/error")
124124
XCTAssertEqual(request?.head.version, .http1_1)
125125
XCTAssertEqual(request?.head.headers["host"], [self.host])
126-
XCTAssertEqual(request?.head.headers["user-agent"], ["Swift-Lambda/Unknown"])
126+
XCTAssertEqual(request?.head.headers["user-agent"], [.userAgent])
127127
XCTAssertEqual(request?.head.headers["lambda-runtime-function-error-type"], ["Unhandled"])
128128
let expectedBody = #"{"errorType":"StartupError","errorMessage":"Urgh! Startup failed. 😨"}"#
129129
XCTAssertEqual(request?.head.headers["content-length"], ["\(expectedBody.utf8.count)"])

0 commit comments

Comments
 (0)