Skip to content

Commit fa419e3

Browse files
committed
refactor(agent): Use macro removed defines
Use a macro to determine class. Remove all previously defined strings and lengths.
1 parent 7d9c4c0 commit fa419e3

File tree

2 files changed

+14
-33
lines changed

2 files changed

+14
-33
lines changed

agent/lib_aws_sdk_php.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,30 +106,30 @@ void nr_lib_aws_sdk_php_sqs_handle(nr_segment_t* segment,
106106
return;
107107
}
108108

109-
/* Determine if we instrument this command. */
110-
#define COMMAND_IS(CMD) \
109+
#define AWS_COMMAND_IS(CMD) \
111110
(command_name_len == (sizeof(CMD) - 1) && nr_streq(CMD, command_name_string))
112111

113112
/* Determine if we instrument this command. */
114-
if (COMMAND_IS("sendMessageBatch")) {
113+
if (AWS_COMMAND_IS("sendMessageBatch")) {
115114
message_params.message_action = NR_SPANKIND_PRODUCER;
116-
} else if (COMMAND_IS("sendMessage")) {
115+
} else if (AWS_COMMAND_IS("sendMessage")) {
117116
message_params.message_action = NR_SPANKIND_PRODUCER;
118-
} else if (COMMAND_IS("receiveMessage")) {
117+
} else if (AWS_COMMAND_IS("receiveMessage")) {
119118
message_params.message_action = NR_SPANKIND_CONSUMER;
120119
} else {
121120
/* Nothing to do here so exit. */
122121
return;
123122
}
124-
#undef IS_COMMAND
123+
#undef IS_AWS_COMMAND
125124

126125
cloud_attrs.aws_operation = command_name_string;
127126

128127
command_arg_value = nr_lib_aws_sdk_php_get_command_arg_value(
129128
AWS_SDK_PHP_SQSCLIENT_QUEUEURL_ARG, NR_EXECUTE_ORIG_ARGS);
130129

131130
/*
132-
* nr_lib_aws_sdk_php_sqs_parse_queueurl requires a modifiable string to populate message_params and cloud_attrs.
131+
* nr_lib_aws_sdk_php_sqs_parse_queueurl requires a modifiable string to
132+
* populate message_params and cloud_attrs.
133133
*/
134134
nr_lib_aws_sdk_php_sqs_parse_queueurl(command_arg_value, &message_params,
135135
&cloud_attrs);
@@ -368,15 +368,18 @@ NR_PHP_WRAPPER(nr_aws_client_call) {
368368
command_name_string = Z_STRVAL_P(command_name);
369369
klass_len = nr_php_class_entry_name_length(class_entry);
370370

371-
if (klass_len == AWS_SDK_PHP_SQSCLIENT_CLASS_LEN
372-
&& nr_striendswith(klass, klass_len,
373-
AWS_SDK_PHP_SQSCLIENT_CLASS_SHORT,
374-
AWS_SDK_PHP_SQSCLIENT_CLASS_SHORT_LEN)) {
371+
#define AWS_CLASS_IS(KLASS, SHORT_KLASS) \
372+
(klass_len == (sizeof(KLASS) - 1) \
373+
&& nr_striendswith(klass, klass_len, SHORT_KLASS, sizeof(SHORT_KLASS) - 1))
374+
375+
if AWS_CLASS_IS ("Aws\\Sqs\\SqsClient", "SqsClient") {
375376
nr_lib_aws_sdk_php_sqs_handle(auto_segment, command_name_string,
376377
Z_STRLEN_P(command_name),
377378
NR_EXECUTE_ORIG_ARGS);
378379
}
379380

381+
#undef AWS_CLASS_IS
382+
380383
if (NR_SEGMENT_CUSTOM == auto_segment->type) {
381384
/*
382385
* We need to end the segment that we started in the 'before' wrapper if

agent/lib_aws_sdk_php.h

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,35 +13,13 @@
1313
/* SQS */
1414
#define SQS_LIBRARY_NAME "SQS"
1515
#define AWS_SQS_MESSAGING_SERVICE "aws_sqs"
16-
#define AWS_SDK_PHP_SQSCLIENT_CLASS "Aws\\Sqs\\SqsClient"
17-
#define AWS_SDK_PHP_SQSCLIENT_CLASS_LEN sizeof(AWS_SDK_PHP_SQSCLIENT_CLASS) - 1
18-
#define AWS_SDK_PHP_SQSCLIENT_CLASS_SHORT "SqsClient"
19-
#define AWS_SDK_PHP_SQSCLIENT_CLASS_SHORT_LEN \
20-
sizeof(AWS_SDK_PHP_SQSCLIENT_CLASS_SHORT) - 1
2116
#define AWS_SDK_PHP_SQSCLIENT_QUEUEURL_ARG "QueueUrl"
2217
#define AWS_QUEUEURL_LEN_MAX 512
23-
#define AWS_SQS_SEND_MESSAGE_COMMAND "sendMessage"
24-
#define AWS_SQS_SEND_MESSAGE_COMMAND_LEN \
25-
sizeof(AWS_SQS_SEND_MESSAGE_COMMAND) - 1
26-
#define AWS_SQS_SEND_MESSAGE_BATCH_COMMAND "sendMessageBatch"
27-
#define AWS_SQS_SEND_MESSAGE_BATCH_COMMAND_LEN \
28-
sizeof(AWS_SQS_SEND_MESSAGE_BATCH_COMMAND) - 1
29-
#define AWS_SQS_RECEIVE_MESSAGE_COMMAND "receiveMessage"
30-
#define AWS_SQS_RECEIVE_MESSAGE_COMMAND_LEN \
31-
sizeof(AWS_SQS_RECEIVE_MESSAGE_COMMAND) - 1
3218
#define AWS_QUEUEURL_PREFIX "https://sqs."
3319
#define AWS_QUEUEURL_PREFIX_LEN sizeof(AWS_QUEUEURL_PREFIX) - 1
3420
#define AWS_QUEUEURL_AWS_POSTFIX "amazonaws.com/"
3521
#define AWS_QUEUEURL_AWS_POSTFIX_LEN sizeof(AWS_QUEUEURL_AWS_POSTFIX) - 1
3622

37-
/* DynamoDb */
38-
#define AWS_SDK_PHP_DYNAMODBCLIENT_CLASS "Aws\\DynamoDb\\DynamoDbClient"
39-
#define AWS_SDK_PHP_DYNAMODBCLIENT_CLASS_LEN \
40-
sizeof(AWS_SDK_PHP_DYNAMODBCLIENT_CLASS) - 1
41-
#define AWS_SDK_PHP_DYNAMODBCLIENT_CLASS_SHORT "DynamoDbClient"
42-
#define AWS_SDK_PHP_DYNAMODBCLIENT_CLASS_SHORT_LEN \
43-
sizeof(AWS_SDK_PHP_DYNAMODBCLIENT_CLASS_SHORT) - 1
44-
4523
#endif /* PHP 8.1+ */
4624

4725
#define PHP_AWS_SDK_SERVICE_NAME_METRIC_PREFIX \

0 commit comments

Comments
 (0)