Demo using MBED TLS

Dependencies:   EthernetInterface NTPClient iothub_amqp_transport iothub_client mbed-rtos mbed

Fork of iothub_client_sample_amqp by Azure IoT

Committer:
markrad
Date:
Thu Jan 05 00:20:03 2017 +0000
Revision:
58:f50b97b08851
Sample using MBED TLS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
markrad 58:f50b97b08851 1 // Copyright (c) Microsoft. All rights reserved.
markrad 58:f50b97b08851 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
markrad 58:f50b97b08851 3
markrad 58:f50b97b08851 4 #include <cstdlib>
markrad 58:f50b97b08851 5 #ifdef _CRTDBG_MAP_ALLOC
markrad 58:f50b97b08851 6 #include <crtdbg.h>
markrad 58:f50b97b08851 7 #endif
markrad 58:f50b97b08851 8
markrad 58:f50b97b08851 9 #include "azure_c_shared_utility/lock.h"
markrad 58:f50b97b08851 10 #include "azure_c_shared_utility/xlogging.h"
markrad 58:f50b97b08851 11 #include "rtos.h"
markrad 58:f50b97b08851 12
markrad 58:f50b97b08851 13 DEFINE_ENUM_STRINGS(LOCK_RESULT, LOCK_RESULT_VALUES);
markrad 58:f50b97b08851 14
markrad 58:f50b97b08851 15 /*Tests_SRS_LOCK_99_002:[ This API on success will return a valid lock handle which should be a non NULL value]*/
markrad 58:f50b97b08851 16 LOCK_HANDLE Lock_Init(void)
markrad 58:f50b97b08851 17 {
markrad 58:f50b97b08851 18 Mutex* lock_mtx = new Mutex();
markrad 58:f50b97b08851 19
markrad 58:f50b97b08851 20 return (LOCK_HANDLE)lock_mtx;
markrad 58:f50b97b08851 21 }
markrad 58:f50b97b08851 22
markrad 58:f50b97b08851 23
markrad 58:f50b97b08851 24 LOCK_RESULT Lock(LOCK_HANDLE handle)
markrad 58:f50b97b08851 25 {
markrad 58:f50b97b08851 26 LOCK_RESULT result;
markrad 58:f50b97b08851 27 if (handle == NULL)
markrad 58:f50b97b08851 28 {
markrad 58:f50b97b08851 29 /*Tests_SRS_LOCK_99_007:[ This API on NULL handle passed returns LOCK_ERROR]*/
markrad 58:f50b97b08851 30 result = LOCK_ERROR;
markrad 58:f50b97b08851 31 LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
markrad 58:f50b97b08851 32 }
markrad 58:f50b97b08851 33 else
markrad 58:f50b97b08851 34 {
markrad 58:f50b97b08851 35 Mutex* lock_mtx = (Mutex*)handle;
markrad 58:f50b97b08851 36 if (lock_mtx->lock() == osOK)
markrad 58:f50b97b08851 37 {
markrad 58:f50b97b08851 38 /*Tests_SRS_LOCK_99_005:[ This API on success should return LOCK_OK]*/
markrad 58:f50b97b08851 39 result = LOCK_OK;
markrad 58:f50b97b08851 40 }
markrad 58:f50b97b08851 41 else
markrad 58:f50b97b08851 42 {
markrad 58:f50b97b08851 43 /*Tests_SRS_LOCK_99_006:[ This API on error should return LOCK_ERROR]*/
markrad 58:f50b97b08851 44 result = LOCK_ERROR;
markrad 58:f50b97b08851 45 LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
markrad 58:f50b97b08851 46 }
markrad 58:f50b97b08851 47 }
markrad 58:f50b97b08851 48 return result;
markrad 58:f50b97b08851 49 }
markrad 58:f50b97b08851 50 LOCK_RESULT Unlock(LOCK_HANDLE handle)
markrad 58:f50b97b08851 51 {
markrad 58:f50b97b08851 52 LOCK_RESULT result;
markrad 58:f50b97b08851 53 if (handle == NULL)
markrad 58:f50b97b08851 54 {
markrad 58:f50b97b08851 55 /*Tests_SRS_LOCK_99_011:[ This API on NULL handle passed returns LOCK_ERROR]*/
markrad 58:f50b97b08851 56 result = LOCK_ERROR;
markrad 58:f50b97b08851 57 LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
markrad 58:f50b97b08851 58 }
markrad 58:f50b97b08851 59 else
markrad 58:f50b97b08851 60 {
markrad 58:f50b97b08851 61 Mutex* lock_mtx = (Mutex*)handle;
markrad 58:f50b97b08851 62 if (lock_mtx->unlock() == osOK)
markrad 58:f50b97b08851 63 {
markrad 58:f50b97b08851 64 /*Tests_SRS_LOCK_99_009:[ This API on success should return LOCK_OK]*/
markrad 58:f50b97b08851 65 result = LOCK_OK;
markrad 58:f50b97b08851 66 }
markrad 58:f50b97b08851 67 else
markrad 58:f50b97b08851 68 {
markrad 58:f50b97b08851 69 /*Tests_SRS_LOCK_99_010:[ This API on error should return LOCK_ERROR]*/
markrad 58:f50b97b08851 70 result = LOCK_ERROR;
markrad 58:f50b97b08851 71 LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
markrad 58:f50b97b08851 72 }
markrad 58:f50b97b08851 73 }
markrad 58:f50b97b08851 74 return result;
markrad 58:f50b97b08851 75 }
markrad 58:f50b97b08851 76
markrad 58:f50b97b08851 77 LOCK_RESULT Lock_Deinit(LOCK_HANDLE handle)
markrad 58:f50b97b08851 78 {
markrad 58:f50b97b08851 79 LOCK_RESULT result=LOCK_OK ;
markrad 58:f50b97b08851 80 if (NULL == handle)
markrad 58:f50b97b08851 81 {
markrad 58:f50b97b08851 82 /*Tests_SRS_LOCK_99_013:[ This API on NULL handle passed returns LOCK_ERROR]*/
markrad 58:f50b97b08851 83 result = LOCK_ERROR;
markrad 58:f50b97b08851 84 LogError("(result = %s)", ENUM_TO_STRING(LOCK_RESULT, result));
markrad 58:f50b97b08851 85 }
markrad 58:f50b97b08851 86 else
markrad 58:f50b97b08851 87 {
markrad 58:f50b97b08851 88 /*Tests_SRS_LOCK_99_012:[ This API frees the memory pointed by handle]*/
markrad 58:f50b97b08851 89 Mutex* lock_mtx = (Mutex*)handle;
markrad 58:f50b97b08851 90 delete lock_mtx;
markrad 58:f50b97b08851 91 }
markrad 58:f50b97b08851 92
markrad 58:f50b97b08851 93 return result;
markrad 58:f50b97b08851 94 }