Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Iot credential usage to producer c samples #220

Merged
merged 3 commits into from
Dec 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,15 @@ For audio only, run `./kvsAudioOnlyStreamingSample <stream-name> <streaming_dura

This will stream the audio files from the `samples/aacSampleFrames` or `samples/alawSampleFrames` (as per the choice of audio codec in the last argument) respectively.

### Running with IoT credential provider

To run the samples with IoT credential provider:

1. Run the IoT thing generation script available under `scripts`: `source scripts/generate-iot-credential.sh`. For more information on IoT set up, visit [AWS KVS IoT Set up](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-iot.html)
2. Uncomment `#define IOT_CORE_ENABLE_CREDENTIALS 1` in the relevant sample
3. Build the changes: `make`
4. Run the sample using the instructions in previous section.

### Fragment metadata

`./kvsVideoOnlyRealtimeStreamingSample` is the only sample that has the [fragment metadata](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-meta.html) implemented out of the box.
Expand Down
50 changes: 36 additions & 14 deletions samples/KvsAudioOnlyStreamingSample.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <com/amazonaws/kinesis/video/cproducer/Include.h>
#include "Samples.h"

#define DEFAULT_RETENTION_PERIOD 2 * HUNDREDS_OF_NANOS_IN_AN_HOUR
#define DEFAULT_BUFFER_DURATION 120 * HUNDREDS_OF_NANOS_IN_A_SECOND
Expand All @@ -15,8 +15,7 @@

#define NUMBER_OF_AUDIO_FRAME_FILES 582

#define FILE_LOGGING_BUFFER_SIZE (100 * 1024)
#define MAX_NUMBER_OF_LOG_FILES 5
// #define IOT_CORE_ENABLE_CREDENTIALS 1

typedef struct {
PBYTE buffer;
Expand Down Expand Up @@ -110,21 +109,32 @@ INT32 main(INT32 argc, CHAR* argv[])

STRNCPY(audioCodec, AUDIO_CODEC_NAME_AAC, STRLEN(AUDIO_CODEC_NAME_AAC)); // aac audio by default

if (argc >= 5) {
if (!STRCMP(argv[2], AUDIO_CODEC_NAME_ALAW)) {
STRNCPY(audioCodec, AUDIO_CODEC_NAME_ALAW, STRLEN(AUDIO_CODEC_NAME_ALAW));
}
}
#ifdef IOT_CORE_ENABLE_CREDENTIALS
PCHAR pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias, pIotCoreThingName;
CHK_ERR((pIotCoreCredentialEndpoint = GETENV(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_CREDENTIAL_ENDPOINT must be set");
CHK_ERR((pIotCoreCert = GETENV(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set");
CHK_ERR((pIotCorePrivateKey = GETENV(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set");
CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreThingName = GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set");
#else
if (argc < 2) {
printf("Usage: AWS_ACCESS_KEY_ID=SAMPLEKEY AWS_SECRET_ACCESS_KEY=SAMPLESECRET %s <stream_name> <duration_in_seconds> <frame_files_path>\n",
argv[0]);
CHK(FALSE, STATUS_INVALID_ARG);
}

if ((accessKey = getenv(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = getenv(SECRET_KEY_ENV_VAR)) == NULL) {
if ((accessKey = GETENV(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = GETENV(SECRET_KEY_ENV_VAR)) == NULL) {
printf("Error missing credentials\n");
CHK(FALSE, STATUS_INVALID_ARG);
}
sessionToken = GETENV(SESSION_TOKEN_ENV_VAR);
#endif

if (argc >= 5) {
if (!STRCMP(argv[2], AUDIO_CODEC_NAME_ALAW)) {
STRNCPY(audioCodec, AUDIO_CODEC_NAME_ALAW, STRLEN(AUDIO_CODEC_NAME_ALAW));
}
}

MEMSET(data.sampleDir, 0x00, MAX_PATH_LEN + 1);
if (argc < 4) {
Expand All @@ -146,10 +156,16 @@ INT32 main(INT32 argc, CHAR* argv[])
}
printf("Done loading audio frames.\n");

cacertPath = getenv(CACERT_PATH_ENV_VAR);
sessionToken = getenv(SESSION_TOKEN_ENV_VAR);
cacertPath = GETENV(CACERT_PATH_ENV_VAR);
sessionToken = GETENV(SESSION_TOKEN_ENV_VAR);

#ifdef IOT_CORE_ENABLE_CREDENTIALS
streamName = pIotCoreThingName;
#else
streamName = argv[1];
if ((region = getenv(DEFAULT_REGION_ENV_VAR)) == NULL) {
#endif

if ((region = GETENV(DEFAULT_REGION_ENV_VAR)) == NULL) {
region = (PCHAR) DEFAULT_AWS_REGION;
}

Expand Down Expand Up @@ -202,10 +218,16 @@ INT32 main(INT32 argc, CHAR* argv[])

data.startTime = GETTIME();
data.firstFrame = TRUE;

#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_STATUS(createDefaultCallbacksProviderWithIotCertificate(pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, cacertPath,
pIotCoreRoleAlias, pIotCoreThingName, region, NULL, NULL, &pClientCallbacks));
#else
CHK_STATUS(createDefaultCallbacksProviderWithAwsCredentials(accessKey, secretKey, sessionToken, MAX_UINT64, region, cacertPath, NULL, NULL,
&pClientCallbacks));
#endif

if (NULL != getenv(ENABLE_FILE_LOGGING)) {
if (NULL != GETENV(ENABLE_FILE_LOGGING)) {
if ((retStatus = addFileLoggerPlatformCallbacksProvider(pClientCallbacks, FILE_LOGGING_BUFFER_SIZE, MAX_NUMBER_OF_LOG_FILES,
(PCHAR) FILE_LOGGER_LOG_FILE_DIRECTORY_PATH, TRUE) != STATUS_SUCCESS)) {
printf("File logging enable option failed with 0x%08x error code\n", retStatus);
Expand Down
56 changes: 38 additions & 18 deletions samples/KvsAudioVideoStreamingSample.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <com/amazonaws/kinesis/video/cproducer/Include.h>
#include "Samples.h"

#define DEFAULT_RETENTION_PERIOD 2 * HUNDREDS_OF_NANOS_IN_AN_HOUR
#define DEFAULT_BUFFER_DURATION 120 * HUNDREDS_OF_NANOS_IN_A_SECOND
Expand All @@ -22,8 +22,7 @@
#define NUMBER_OF_VIDEO_FRAME_FILES 403
#define NUMBER_OF_AUDIO_FRAME_FILES 582

#define FILE_LOGGING_BUFFER_SIZE (100 * 1024)
#define MAX_NUMBER_OF_LOG_FILES 5
// #define IOT_CORE_ENABLE_CREDENTIALS 1

UINT8 gEventsEnabled = 0;

Expand Down Expand Up @@ -195,6 +194,28 @@ INT32 main(INT32 argc, CHAR* argv[])
STRNCPY(audioCodec, AUDIO_CODEC_NAME_AAC, STRLEN(AUDIO_CODEC_NAME_AAC)); // aac audio by default
STRNCPY(videoCodec, VIDEO_CODEC_NAME_H264, STRLEN(VIDEO_CODEC_NAME_H264)); // h264 video by default

#ifdef IOT_CORE_ENABLE_CREDENTIALS
PCHAR pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias, pIotCoreThingName;
CHK_ERR((pIotCoreCredentialEndpoint = GETENV(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_CREDENTIAL_ENDPOINT must be set");
CHK_ERR((pIotCoreCert = GETENV(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set");
CHK_ERR((pIotCorePrivateKey = GETENV(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set");
CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreThingName = GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set");
#else
if (argc < 2) {
printf("Usage: AWS_ACCESS_KEY_ID=SAMPLEKEY AWS_SECRET_ACCESS_KEY=SAMPLESECRET %s <stream_name> <duration_in_seconds> <frame_files_path> "
"[audio_codec] [video_codec] [events_enabled]\n",
argv[0]);
CHK(FALSE, STATUS_INVALID_ARG);
}
if ((accessKey = GETENV(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = GETENV(SECRET_KEY_ENV_VAR)) == NULL) {
printf("Error missing credentials\n");
CHK(FALSE, STATUS_INVALID_ARG);
}
sessionToken = GETENV(SESSION_TOKEN_ENV_VAR);
#endif

if (argc == 7) {
if (!STRCMP(argv[6], "1")) {
gEventsEnabled = 1;
Expand All @@ -209,17 +230,6 @@ INT32 main(INT32 argc, CHAR* argv[])
videoCodecID = VIDEO_CODEC_ID_H265;
}
}
if (argc < 2) {
printf("Usage: AWS_ACCESS_KEY_ID=SAMPLEKEY AWS_SECRET_ACCESS_KEY=SAMPLESECRET %s <stream_name> <duration_in_seconds> <frame_files_path> "
"[audio_codec] [video_codec] [events_enabled]\n",
argv[0]);
CHK(FALSE, STATUS_INVALID_ARG);
}

if ((accessKey = getenv(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = getenv(SECRET_KEY_ENV_VAR)) == NULL) {
printf("Error missing credentials\n");
CHK(FALSE, STATUS_INVALID_ARG);
}

MEMSET(data.sampleDir, 0x00, MAX_PATH_LEN + 1);
if (argc < 4) {
Expand Down Expand Up @@ -251,10 +261,15 @@ INT32 main(INT32 argc, CHAR* argv[])
}
printf("Done loading video frames.\n");

cacertPath = getenv(CACERT_PATH_ENV_VAR);
sessionToken = getenv(SESSION_TOKEN_ENV_VAR);
cacertPath = GETENV(CACERT_PATH_ENV_VAR);

#ifdef IOT_CORE_ENABLE_CREDENTIALS
streamName = pIotCoreThingName;
#else
streamName = argv[1];
if ((region = getenv(DEFAULT_REGION_ENV_VAR)) == NULL) {
#endif

if ((region = GETENV(DEFAULT_REGION_ENV_VAR)) == NULL) {
region = (PCHAR) DEFAULT_AWS_REGION;
}

Expand Down Expand Up @@ -309,10 +324,15 @@ INT32 main(INT32 argc, CHAR* argv[])

data.startTime = GETTIME();
data.firstFrame = TRUE;
#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_STATUS(createDefaultCallbacksProviderWithIotCertificate(pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, cacertPath,
pIotCoreRoleAlias, pIotCoreThingName, region, NULL, NULL, &pClientCallbacks));
#else
CHK_STATUS(createDefaultCallbacksProviderWithAwsCredentials(accessKey, secretKey, sessionToken, MAX_UINT64, region, cacertPath, NULL, NULL,
&pClientCallbacks));
#endif

if (NULL != getenv(ENABLE_FILE_LOGGING)) {
if (NULL != GETENV(ENABLE_FILE_LOGGING)) {
if ((retStatus = addFileLoggerPlatformCallbacksProvider(pClientCallbacks, FILE_LOGGING_BUFFER_SIZE, MAX_NUMBER_OF_LOG_FILES,
(PCHAR) FILE_LOGGER_LOG_FILE_DIRECTORY_PATH, TRUE) != STATUS_SUCCESS)) {
printf("File logging enable option failed with 0x%08x error code\n", retStatus);
Expand Down
39 changes: 30 additions & 9 deletions samples/KvsVideoOnlyOfflineStreamingSample.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <com/amazonaws/kinesis/video/cproducer/Include.h>
#include "Samples.h"

#define DEFAULT_RETENTION_PERIOD 2 * HUNDREDS_OF_NANOS_IN_AN_HOUR
#define DEFAULT_BUFFER_DURATION 120 * HUNDREDS_OF_NANOS_IN_A_SECOND
Expand All @@ -14,8 +14,8 @@

#define NUMBER_OF_FRAME_FILES 403

#define FILE_LOGGING_BUFFER_SIZE (100 * 1024)
#define MAX_NUMBER_OF_LOG_FILES 5
// #define IOT_CORE_ENABLE_CREDENTIALS 1

STATUS readFrameData(PFrame pFrame, PCHAR frameFilePath, PCHAR videoCodec)
{
STATUS retStatus = STATUS_SUCCESS;
Expand Down Expand Up @@ -66,17 +66,27 @@ INT32 main(INT32 argc, CHAR* argv[])
STRNCPY(videoCodec, VIDEO_CODEC_NAME_H264, STRLEN(VIDEO_CODEC_NAME_H264)); // h264 video by default
VIDEO_CODEC_ID videoCodecID = VIDEO_CODEC_ID_H264;

#ifdef IOT_CORE_ENABLE_CREDENTIALS
PCHAR pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias, pIotCoreThingName;
CHK_ERR((pIotCoreCredentialEndpoint = GETENV(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_CREDENTIAL_ENDPOINT must be set");
CHK_ERR((pIotCoreCert = GETENV(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set");
CHK_ERR((pIotCorePrivateKey = GETENV(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set");
CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreThingName = GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set");
#else
if (argc < 2) {
DLOGE("Usage: AWS_ACCESS_KEY_ID=SAMPLEKEY AWS_SECRET_ACCESS_KEY=SAMPLESECRET %s <stream_name> <codec> <duration_in_seconds> "
"<frame_files_path>\n",
argv[0]);
CHK(FALSE, STATUS_INVALID_ARG);
}

if ((accessKey = getenv(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = getenv(SECRET_KEY_ENV_VAR)) == NULL) {
if ((accessKey = GETENV(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = GETENV(SECRET_KEY_ENV_VAR)) == NULL) {
DLOGE("Error missing credentials");
CHK(FALSE, STATUS_INVALID_ARG);
}
sessionToken = GETENV(SESSION_TOKEN_ENV_VAR);
#endif

MEMSET(frameFilePath, 0x00, MAX_PATH_LEN + 1);
if (argc < 5) {
Expand All @@ -85,10 +95,15 @@ INT32 main(INT32 argc, CHAR* argv[])
STRNCPY(frameFilePath, argv[4], MAX_PATH_LEN);
}

cacertPath = getenv(CACERT_PATH_ENV_VAR);
sessionToken = getenv(SESSION_TOKEN_ENV_VAR);
cacertPath = GETENV(CACERT_PATH_ENV_VAR);

#ifdef IOT_CORE_ENABLE_CREDENTIALS
streamName = pIotCoreThingName;
#else
streamName = argv[1];
if ((region = getenv(DEFAULT_REGION_ENV_VAR)) == NULL) {
#endif

if ((region = GETENV(DEFAULT_REGION_ENV_VAR)) == NULL) {
region = (PCHAR) DEFAULT_AWS_REGION;
}

Expand Down Expand Up @@ -119,10 +134,16 @@ INT32 main(INT32 argc, CHAR* argv[])
// adjust members of pStreamInfo here if needed

startTime = GETTIME();

#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_STATUS(createDefaultCallbacksProviderWithIotCertificate(pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, cacertPath,
pIotCoreRoleAlias, pIotCoreThingName, region, NULL, NULL, &pClientCallbacks));
#else
CHK_STATUS(createDefaultCallbacksProviderWithAwsCredentials(accessKey, secretKey, sessionToken, MAX_UINT64, region, cacertPath, NULL, NULL,
&pClientCallbacks));
#endif

if (NULL != getenv(ENABLE_FILE_LOGGING)) {
if (NULL != GETENV(ENABLE_FILE_LOGGING)) {
if ((retStatus = addFileLoggerPlatformCallbacksProvider(pClientCallbacks, FILE_LOGGING_BUFFER_SIZE, MAX_NUMBER_OF_LOG_FILES,
(PCHAR) FILE_LOGGER_LOG_FILE_DIRECTORY_PATH, TRUE) != STATUS_SUCCESS)) {
printf("File logging enable option failed with 0x%08x error code\n", retStatus);
Expand Down
45 changes: 36 additions & 9 deletions samples/KvsVideoOnlyRealtimeStreamingSample.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <com/amazonaws/kinesis/video/cproducer/Include.h>
#include "Samples.h"

#define DEFAULT_RETENTION_PERIOD 2 * HUNDREDS_OF_NANOS_IN_AN_HOUR
#define DEFAULT_BUFFER_DURATION 120 * HUNDREDS_OF_NANOS_IN_A_SECOND
Expand All @@ -17,8 +17,8 @@

#define NUMBER_OF_FRAME_FILES 403

#define FILE_LOGGING_BUFFER_SIZE (100 * 1024)
#define MAX_NUMBER_OF_LOG_FILES 5
// #define IOT_CORE_ENABLE_CREDENTIALS 1

STATUS readFrameData(PFrame pFrame, PCHAR frameFilePath, PCHAR videoCodec)
{
STATUS retStatus = STATUS_SUCCESS;
Expand Down Expand Up @@ -72,22 +72,43 @@ INT32 main(INT32 argc, CHAR* argv[])
STRNCPY(videoCodec, VIDEO_CODEC_NAME_H264, STRLEN(VIDEO_CODEC_NAME_H264)); // h264 video by default
VIDEO_CODEC_ID videoCodecID = VIDEO_CODEC_ID_H264;

#ifdef IOT_CORE_ENABLE_CREDENTIALS
PCHAR pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias, pIotCoreThingName;
CHK_ERR((pIotCoreCredentialEndpoint = GETENV(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_CREDENTIAL_ENDPOINT must be set");
CHK_ERR((pIotCoreCert = GETENV(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set");
CHK_ERR((pIotCorePrivateKey = GETENV(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set");
CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreThingName = GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set");
#else
if (argc < 2) {
DLOGE("Usage: AWS_ACCESS_KEY_ID=SAMPLEKEY AWS_SECRET_ACCESS_KEY=SAMPLESECRET %s <stream_name>"
"<codec> <duration_in_seconds> <frame_files_path> [num_metadata = 10]\n",
argv[0]);
CHK(FALSE, STATUS_INVALID_ARG);
}

if ((accessKey = getenv(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = getenv(SECRET_KEY_ENV_VAR)) == NULL) {
if ((accessKey = GETENV(ACCESS_KEY_ENV_VAR)) == NULL || (secretKey = GETENV(SECRET_KEY_ENV_VAR)) == NULL) {
DLOGE("Error missing credentials");
CHK(FALSE, STATUS_INVALID_ARG);
}
sessionToken = GETENV(SESSION_TOKEN_ENV_VAR);
#endif

cacertPath = getenv(CACERT_PATH_ENV_VAR);
sessionToken = getenv(SESSION_TOKEN_ENV_VAR);
MEMSET(frameFilePath, 0x00, MAX_PATH_LEN + 1);
if (argc < 5) {
STRCPY(frameFilePath, (PCHAR) "../samples/");
} else {
STRNCPY(frameFilePath, argv[4], MAX_PATH_LEN);
}

cacertPath = GETENV(CACERT_PATH_ENV_VAR);
#ifdef IOT_CORE_ENABLE_CREDENTIALS
streamName = pIotCoreThingName;
#else
streamName = argv[1];
if ((region = getenv(DEFAULT_REGION_ENV_VAR)) == NULL) {
#endif
if ((region = GETENV(DEFAULT_REGION_ENV_VAR)) == NULL) {
region = (PCHAR) DEFAULT_AWS_REGION;
}

Expand Down Expand Up @@ -131,10 +152,16 @@ INT32 main(INT32 argc, CHAR* argv[])
// adjust members of pStreamInfo here if needed

startTime = GETTIME();

#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_STATUS(createDefaultCallbacksProviderWithIotCertificate(pIotCoreCredentialEndpoint, pIotCoreCert, pIotCorePrivateKey, cacertPath,
pIotCoreRoleAlias, pIotCoreThingName, region, NULL, NULL, &pClientCallbacks));
#else
CHK_STATUS(createDefaultCallbacksProviderWithAwsCredentials(accessKey, secretKey, sessionToken, MAX_UINT64, region, cacertPath, NULL, NULL,
&pClientCallbacks));
#endif

if (NULL != getenv(ENABLE_FILE_LOGGING)) {
if (NULL != GETENV(ENABLE_FILE_LOGGING)) {
if ((retStatus = addFileLoggerPlatformCallbacksProvider(pClientCallbacks, FILE_LOGGING_BUFFER_SIZE, MAX_NUMBER_OF_LOG_FILES,
(PCHAR) FILE_LOGGER_LOG_FILE_DIRECTORY_PATH, TRUE) != STATUS_SUCCESS)) {
printf("File logging enable option failed with 0x%08x error code\n", retStatus);
Expand Down
Loading