|
23 | 23 | #include "aws_iot_mqtt_client.h"
|
24 | 24 | #include "aws_iot_tests_unit_mock_tls_params.h"
|
25 | 25 | #include "aws_iot_tests_unit_helper_functions.h"
|
| 26 | +#include "aws_iot_version.h" |
| 27 | + |
| 28 | +#if !DISABLE_METRICS |
| 29 | +#define SDK_METRICS_LEN 25 |
| 30 | +#define SDK_METRICS_TEMPLATE "?SDK=C&Version=%d.%d.%d" |
| 31 | +static char pUsernameTemp[SDK_METRICS_LEN] = {0}; |
| 32 | +#endif |
26 | 33 |
|
27 | 34 | #define CONNACK_SUBACK_PACKET_SIZE 9
|
28 | 35 | #define PUBACK_PACKET_SIZE 4
|
@@ -402,7 +409,11 @@ bool isConnectTxBufFlagCorrect(IoT_Client_Connect_Params *settings, ConnectBuffe
|
402 | 409 | bool ret = true;
|
403 | 410 | int i;
|
404 | 411 | unsigned char myByte[8]; // Construct our own connect flag byte according to the settings
|
| 412 | +#if !DISABLE_METRICS |
| 413 | + myByte[0] = (unsigned char) (1); // User Name Flag |
| 414 | +#else |
405 | 415 | myByte[0] = (unsigned char) (settings->pUsername == NULL ? 0 : 1); // User Name Flag
|
| 416 | +#endif |
406 | 417 | myByte[1] = (unsigned char) (settings->pPassword == NULL ? 0 : 1); // Password Flag
|
407 | 418 | myByte[2] = 0; // Will Retain
|
408 | 419 | // QoS
|
@@ -433,7 +444,15 @@ bool isConnectTxBufPayloadCorrect(IoT_Client_Connect_Params *settings, unsigned
|
433 | 444 | unsigned int ClientIDLen = (unsigned int) strlen(settings->pClientID);
|
434 | 445 | unsigned int WillTopicLen = (unsigned int) strlen(settings->will.pTopicName);
|
435 | 446 | unsigned int WillMsgLen = (unsigned int) strlen(settings->will.pMessage);
|
| 447 | +#if !DISABLE_METRICS |
| 448 | + if (0 == strlen(pUsernameTemp)) { |
| 449 | + snprintf(pUsernameTemp, SDK_METRICS_LEN, SDK_METRICS_TEMPLATE, |
| 450 | + VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); |
| 451 | + } |
| 452 | + unsigned int UsernameLen = (unsigned int)strlen(pUsernameTemp); |
| 453 | +#else |
436 | 454 | unsigned int UsernameLen = (unsigned int) settings->usernameLen;
|
| 455 | +#endif |
437 | 456 | unsigned int PasswordLen = (unsigned int) settings->passwordLen;
|
438 | 457 | unsigned int myPayloadLen = ClientIDLen + 2 + WillTopicLen + 2 + WillMsgLen + UsernameLen + 2 + PasswordLen;
|
439 | 458 | char *myPayload = (char *) malloc(sizeof(char) * (myPayloadLen + 1)); // reserve 1 byte for '\0'
|
@@ -468,12 +487,20 @@ bool isConnectTxBufPayloadCorrect(IoT_Client_Connect_Params *settings, unsigned
|
468 | 487 | }
|
469 | 488 | }
|
470 | 489 | // Username
|
| 490 | +#if !DISABLE_METRICS |
| 491 | + for(i = 0; i < strlen(pUsernameTemp); i++) |
| 492 | + { |
| 493 | + *op = pUsernameTemp[i]; |
| 494 | + op++; |
| 495 | + } |
| 496 | +#else |
471 | 497 | if(NULL != settings->pUsername) {
|
472 | 498 | for(i = 0; i < UsernameLen; i++) {
|
473 | 499 | *op = settings->pUsername[i];
|
474 | 500 | op++;
|
475 | 501 | }
|
476 | 502 | }
|
| 503 | +#endif |
477 | 504 | // PasswordLen + Password
|
478 | 505 | if(NULL != settings->pPassword) {
|
479 | 506 | *op = (char) (PasswordLen & 0x0FF00); // MSB
|
|
0 commit comments