update qcloud sdk

1. iot-hub sdk update to 3.2.0
2. iot-explorer update to 3.1.1
This commit is contained in:
daishengdong
2020-05-07 11:11:04 +08:00
parent c8e39739d3
commit 3e631cd96a
594 changed files with 47287 additions and 44165 deletions

View File

@@ -60,7 +60,7 @@ char *json_get_next_object(int type, char *str, char **key, int *key_len,
char JsonMark[JSTYPEMAX][2] = { { '\"', '\"' }, { '{', '}' }, { '[', ']' }, { '0', ' ' } };
int iMarkDepth = 0, iValueType = JSNONE, iNameLen = 0, iValueLen = 0;
char *p_cName = 0, *p_cValue = 0, *p_cPos = str;
char lastchr = ' ';
char lastchr = ' ';
if (type == JSOBJECT) {
/* Get Key */
@@ -81,7 +81,7 @@ char *json_get_next_object(int type, char *str, char **key, int *key_len,
while (p_cPos && *p_cPos) {
if (*p_cPos == '"') {
iValueType = JSSTRING;
lastchr = *p_cPos;
lastchr = *p_cPos;
p_cValue = ++p_cPos;
break;
} else if (*p_cPos == '{') {
@@ -99,12 +99,12 @@ char *json_get_next_object(int type, char *str, char **key, int *key_len,
} else if (*p_cPos == 't' || *p_cPos == 'T' || *p_cPos == 'f' || *p_cPos == 'F') {
iValueType = JSBOOLEAN;
p_cValue = p_cPos;
break;
}else if (*p_cPos == 'n' || *p_cPos == 'N') {
break;
} else if (*p_cPos == 'n' || *p_cPos == 'N') {
iValueType = JSNULL;
p_cValue = p_cPos;
break;
}
}
p_cPos++;
}
while (p_cPos && *p_cPos && iValueType > JSNONE) {
@@ -125,40 +125,38 @@ char *json_get_next_object(int type, char *str, char **key, int *key_len,
break;
}
} else if (iValueType == JSNULL) { //support null/NULL
int nlen = strlen(p_cValue);
if ((*p_cValue == 'n' || *p_cValue == 'N') && nlen >= 4
int nlen = strlen(p_cValue);
if ((*p_cValue == 'n' || *p_cValue == 'N') && nlen >= 4
&& (!strncmp(p_cValue, "null", 4)
|| !strncmp(p_cValue, "NULL", 4))) {
iValueLen = 4;
p_cPos = p_cValue + iValueLen;
break;
}
}
else if (iValueType == JSNUMBER) {
}
} else if (iValueType == JSNUMBER) {
//if (*p_cPos < '0' || *p_cPos > '9') {
if ((*p_cPos < '0' || *p_cPos > '9')&&(*p_cPos != '.')) { //support float
if ((*p_cPos < '0' || *p_cPos > '9') && (*p_cPos != '.')) { //support float
iValueLen = p_cPos - p_cValue;
break;
}
}
else if (*p_cPos == JsonMark[iValueType][1]) {
} else if (*p_cPos == JsonMark[iValueType][1]) {
if (iMarkDepth == 0) {
iValueLen = p_cPos - p_cValue + (iValueType == JSSTRING ? 0 : 1);
p_cPos++;
if((iValueType == JSSTRING) && (lastchr == '\\')){
lastchr = *p_cPos;
continue;
}else{
break;
}
iValueLen = p_cPos - p_cValue + (iValueType == JSSTRING ? 0 : 1);
p_cPos++;
if ((iValueType == JSSTRING) && (lastchr == '\\')) {
lastchr = *p_cPos;
continue;
} else {
break;
}
} else {
iMarkDepth--;
}
} else if (*p_cPos == JsonMark[iValueType][0]) {
iMarkDepth++;
}
lastchr = *p_cPos;
lastchr = *p_cPos;
p_cPos++;
}
@@ -233,7 +231,7 @@ int json_get_value_by_name_cb(char *p_cName, int iNameLen, char *p_cValue, int i
#endif
if ((iNameLen == p_stNameValue->nLen) && !strncmp(p_cName, p_stNameValue->pN, p_stNameValue->nLen)) {
p_stNameValue->pV = p_cValue;
p_stNameValue->vLen = iValueLen;
p_stNameValue->vType = iValueType;
@@ -256,9 +254,9 @@ char *json_get_value_by_name(char *p_cJsonStr, int iStrLen, char *p_cName, int *
}
if (p_iValueType) {
*p_iValueType = stNV.vType;
if(JSNULL == stNV.vType){
stNV.pV = NULL;
}
if (JSNULL == stNV.vType) {
stNV.pV = NULL;
}
}
}
return stNV.pV;

View File

@@ -91,9 +91,6 @@ list_head_t *LITE_json_keys_of(char *src, char *prefix)
json_key_t *entry = NULL;
entry = HAL_Malloc(sizeof(json_key_t));
if (NULL == entry) {
return NULL;
}
memset(entry, 0, sizeof(json_key_t));
entry->key = LITE_format_string("%s%.*s", prefix, klen, key);
list_add_tail(&entry->list, &keylist);
@@ -112,9 +109,6 @@ list_head_t *LITE_json_keys_of(char *src, char *prefix)
json_key_t *entry = NULL;
entry = HAL_Malloc(sizeof(json_key_t));
if (NULL == entry) {
return NULL;
}
memset(entry, 0, sizeof(json_key_t));
list_add_tail(&entry->list, &keylist);
@@ -138,88 +132,94 @@ void LITE_json_keys_release(list_head_t *keylist)
}
static void _strip_transfer(char *src)
static void _strip_transfer(char *src)
{
char *end = src + strlen(src)+ 1;
while(*src != '\0')
{
if(*src == '\\')
{
memmove(src, src+1, end - src);
end--;
}
src++;
}
}
char *end = src + strlen(src) + 1;
while (*src != '\0') {
if (*src == '\\') {
memmove(src, src + 1, end - src);
end--;
}
src++;
}
}
char * LITE_json_string_value_strip_transfer(char *key, char *src)
{
char * str = LITE_json_value_of(key, src);
char * str = LITE_json_value_of(key, src);
if(NULL != str){
_strip_transfer(str);
}
return str;
if (NULL != str) {
_strip_transfer(str);
}
return str;
}
int LITE_get_int32(int32_t *value, char *src) {
return (sscanf(src, "%" SCNi32, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_int32(int32_t *value, char *src)
{
return (sscanf(src, "%" SCNi32, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_int16(int16_t *value, char *src) {
return (sscanf(src, "%" SCNi16, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_int16(int16_t *value, char *src)
{
return (sscanf(src, "%" SCNi16, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_int8(int8_t *value, char *src) {
return (sscanf(src, "%" SCNi8, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_int8(int8_t *value, char *src)
{
return (sscanf(src, "%" SCNi8, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_uint32(uint32_t *value, char *src) {
return (sscanf(src, "%" SCNu32, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_uint32(uint32_t *value, char *src)
{
return (sscanf(src, "%" SCNu32, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_uint16(uint16_t *value, char *src) {
return (sscanf(src, "%" SCNu16, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_uint16(uint16_t *value, char *src)
{
return (sscanf(src, "%" SCNu16, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_uint8(uint8_t *value, char *src) {
return (sscanf(src, "%" SCNu8, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_uint8(uint8_t *value, char *src)
{
return (sscanf(src, "%" SCNu8, value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_float(float *value, char *src) {
return (sscanf(src, "%f", value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_float(float *value, char *src)
{
return (sscanf(src, "%f", value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_double(double *value, char *src) {
return (sscanf(src, "%lf", value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
int LITE_get_double(double *value, char *src)
{
return (sscanf(src, "%lf", value) == 1) ? QCLOUD_RET_SUCCESS : QCLOUD_ERR_FAILURE;
}
int LITE_get_boolean(bool *value, char *src) {
if (!strcmp(src, "false")) {
*value = false;
}
else {
*value = true;
}
int LITE_get_boolean(bool *value, char *src)
{
if (!strcmp(src, "false")) {
*value = false;
} else {
*value = true;
}
return QCLOUD_RET_SUCCESS;
return QCLOUD_RET_SUCCESS;
}
int LITE_get_string(int8_t *value, char *src, uint16_t max_len) {
int rc;
if(NULL != strncpy((char *)value, src, max_len)){
value[Min(strlen(src), max_len)] = '\0';
rc = QCLOUD_RET_SUCCESS;
}else{
rc = QCLOUD_ERR_FAILURE;
}
return rc;
int LITE_get_string(int8_t *value, char *src, uint16_t max_len)
{
int rc;
if (NULL != strncpy((char *)value, src, max_len)) {
value[Min(strlen(src), max_len)] = '\0';
rc = QCLOUD_RET_SUCCESS;
} else {
rc = QCLOUD_ERR_FAILURE;
}
return rc;
}

View File

@@ -18,6 +18,8 @@ extern "C" {
#endif
#include "qcloud_iot_ca.h"
#include "qcloud_iot_import.h"
#include <stdlib.h>
@@ -49,6 +51,8 @@ static const char *iot_ca_crt = \
"-----END CERTIFICATE-----"
};
#ifdef OTA_USE_HTTPS
static const char *iot_https_ca_crt = \
{
"-----BEGIN CERTIFICATE-----\r\n"
@@ -101,17 +105,21 @@ static const char *iot_https_ca_crt = \
};
#endif
const char *iot_ca_get() {
#endif
const char *iot_ca_get()
{
#ifndef AUTH_WITH_NOTLS
return iot_ca_crt;
return iot_ca_crt;
#else
return NULL;
#endif
}
const char *iot_https_ca_get() {
#ifndef AUTH_WITH_NOTLS
return iot_https_ca_crt;
const char *iot_https_ca_get()
{
#if ((!defined(AUTH_WITH_NOTLS)) && (defined OTA_USE_HTTPS))
return iot_https_ca_crt;
#else
return NULL;
#endif

View File

@@ -25,39 +25,37 @@ extern "C" {
static DeviceInfo sg_device_info;
static bool sg_devinfo_initialized;
int iot_device_info_init()
int iot_device_info_init()
{
if (sg_devinfo_initialized) {
Log_e("device info has been initialized.");
return 0;
}
if (sg_devinfo_initialized) {
Log_e("device info has been initialized.");
return 0;
}
memset(&sg_device_info, 0x0, sizeof(DeviceInfo));
sg_devinfo_initialized = true;
return QCLOUD_RET_SUCCESS;
memset(&sg_device_info, 0x0, sizeof(DeviceInfo));
sg_devinfo_initialized = true;
return QCLOUD_RET_SUCCESS;
}
int iot_device_info_set(const char *product_id, const char *device_name)
{
int iot_device_info_set(const char *product_id, const char *device_name)
{
memset(&sg_device_info, 0x0, sizeof(DeviceInfo));
if ((MAX_SIZE_OF_PRODUCT_ID) < strlen(product_id))
{
Log_e("product name(%s) length:(%lu) exceeding limitation", product_id, strlen(product_id));
return QCLOUD_ERR_FAILURE;
}
if ((MAX_SIZE_OF_DEVICE_NAME) < strlen(device_name))
{
Log_e("device name(%s) length:(%lu) exceeding limitation", device_name, strlen(device_name));
return QCLOUD_ERR_FAILURE;
}
memset(&sg_device_info, 0x0, sizeof(DeviceInfo));
if ((MAX_SIZE_OF_PRODUCT_ID) < strlen(product_id)) {
Log_e("product name(%s) length:(%lu) exceeding limitation", product_id, strlen(product_id));
return QCLOUD_ERR_FAILURE;
}
if ((MAX_SIZE_OF_DEVICE_NAME) < strlen(device_name)) {
Log_e("device name(%s) length:(%lu) exceeding limitation", device_name, strlen(device_name));
return QCLOUD_ERR_FAILURE;
}
strncpy(sg_device_info.product_id, product_id, MAX_SIZE_OF_PRODUCT_ID);
strncpy(sg_device_info.device_name, device_name, MAX_SIZE_OF_DEVICE_NAME);
strncpy(sg_device_info.product_id, product_id, MAX_SIZE_OF_PRODUCT_ID);
strncpy(sg_device_info.device_name, device_name, MAX_SIZE_OF_DEVICE_NAME);
/* construct device-id(@product_id+@device_name) */
memset(sg_device_info.client_id, 0x0, MAX_SIZE_OF_CLIENT_ID);
/* construct device-id(@product_id+@device_name) */
memset(sg_device_info.client_id, 0x0, MAX_SIZE_OF_CLIENT_ID);
int ret = HAL_Snprintf(sg_device_info.client_id, MAX_SIZE_OF_CLIENT_ID, "%s%s", product_id, device_name);
if ((ret < 0) || (ret >= MAX_SIZE_OF_CLIENT_ID)) {
Log_e("set device info failed");
@@ -65,7 +63,7 @@ int iot_device_info_set(const char *product_id, const char *device_name)
}
Log_i("SDK_Ver: %s, Product_ID: %s, Device_Name: %s", QCLOUD_IOT_DEVICE_SDK_VERSION, product_id, device_name);
return QCLOUD_RET_SUCCESS;
return QCLOUD_RET_SUCCESS;
}
DeviceInfo* iot_device_info_get(void)

View File

@@ -29,7 +29,7 @@ static char *level_str[] = {
"DIS", "ERR", "WRN", "INF", "DBG"
};
static LogMessageHandler sg_log_message_handler= NULL;
static LogMessageHandler sg_log_message_handler = NULL;
LOG_LEVEL g_log_print_level = eLOG_INFO;
@@ -46,35 +46,37 @@ static const char *_get_filename(const char *p)
#else
char ch = '/';
#endif
const char *q = strrchr(p,ch);
if(q == NULL)
{
const char *q = strrchr(p, ch);
if (q == NULL) {
q = p;
}
else
{
} else {
q++;
}
return q;
}
void IOT_Log_Set_Level(LOG_LEVEL logLevel) {
void IOT_Log_Set_Level(LOG_LEVEL logLevel)
{
g_log_print_level = logLevel;
}
LOG_LEVEL IOT_Log_Get_Level() {
LOG_LEVEL IOT_Log_Get_Level()
{
return g_log_print_level;
}
void IOT_Log_Set_MessageHandler(LogMessageHandler handler) {
sg_log_message_handler = handler;
void IOT_Log_Set_MessageHandler(LogMessageHandler handler)
{
sg_log_message_handler = handler;
}
void IOT_Log_Set_Upload_Level(LOG_LEVEL logLevel) {
void IOT_Log_Set_Upload_Level(LOG_LEVEL logLevel)
{
g_log_upload_level = logLevel;
}
LOG_LEVEL IOT_Log_Get_Upload_Level() {
LOG_LEVEL IOT_Log_Get_Upload_Level()
{
return g_log_upload_level;
}
@@ -91,7 +93,7 @@ void IOT_Log_Fini_Uploader(void)
{
#ifdef LOG_UPLOAD
fini_log_uploader();
return;
return;
#else
return ;
#endif
@@ -108,16 +110,16 @@ int IOT_Log_Upload(bool force_upload)
void IOT_Log_Gen(const char *file, const char *func, const int line, const int level, const char *fmt, ...)
{
if (level > g_log_print_level && level > g_log_upload_level) {
return;
}
if (level > g_log_print_level && level > g_log_upload_level) {
return;
}
/* format log content */
const char *file_name = _get_filename(file);
const char *file_name = _get_filename(file);
char sg_text_buf[MAX_LOG_MSG_LEN + 1];
char *tmp_buf = sg_text_buf;
char *o = tmp_buf;
char sg_text_buf[MAX_LOG_MSG_LEN + 1];
char *tmp_buf = sg_text_buf;
char *o = tmp_buf;
memset(tmp_buf, 0, sizeof(sg_text_buf));
o += HAL_Snprintf(o, sizeof(sg_text_buf), "%s|%s|%s|%s(%d): ", level_str[level], HAL_Timer_current(), file_name, func, line);
@@ -138,9 +140,9 @@ void IOT_Log_Gen(const char *file, const char *func, const int line, const int l
if (level <= g_log_print_level) {
/* customer defined log print handler */
if (sg_log_message_handler != NULL && sg_log_message_handler(tmp_buf)) {
return;
}
if (sg_log_message_handler != NULL && sg_log_message_handler(tmp_buf)) {
return;
}
/* default log handler: print to console */
HAL_Printf("%s", tmp_buf);

View File

@@ -35,9 +35,6 @@ char *LITE_format_string(const char *fmt, ...)
va_start(ap, fmt);
tmp = HAL_Malloc(TEMP_STRING_MAXLEN);
if (NULL == tmp) {
return NULL;
}
memset(tmp, 0, TEMP_STRING_MAXLEN);
rc = HAL_Vsnprintf(tmp, TEMP_STRING_MAXLEN, fmt, ap);
va_end(ap);
@@ -60,12 +57,9 @@ char *LITE_format_nstring(const int len, const char *fmt, ...)
int rc = -1;
va_start(ap, fmt);
tmp = HAL_Malloc(len+2);
if (NULL == tmp) {
return NULL;
}
memset(tmp, 0, len+2);
rc = HAL_Vsnprintf(tmp, len+1, fmt, ap);
tmp = HAL_Malloc(len + 2);
memset(tmp, 0, len + 2);
rc = HAL_Vsnprintf(tmp, len + 1, fmt, ap);
va_end(ap);
LITE_ASSERT(tmp);
LITE_ASSERT(rc < 1024);
@@ -176,3 +170,17 @@ void LITE_replace_substr(char originalString[], char key[], char swap[])
}
}
}
void LITE_str_strip_char(char *src, char destCh)
{
char *end = src + strlen(src) + 1;
while (*src != '\0') {
if (*src == destCh) {
memmove(src, src + 1, end - src);
end--;
}
src++;
}
}

View File

@@ -16,14 +16,13 @@
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stdlib.h>
#include "utils_base64.h"
static const unsigned char base64_enc_map[64] =
{
static const unsigned char base64_enc_map[64] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
@@ -33,8 +32,7 @@ static const unsigned char base64_enc_map[64] =
'8', '9', '+', '/'
};
static const unsigned char base64_dec_map[128] =
{
static const unsigned char base64_dec_map[128] = {
127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
@@ -49,155 +47,144 @@ static const unsigned char base64_dec_map[128] =
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 127, 127, 127, 127, 127
};
#define BASE64_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */
int qcloud_iot_utils_base64encode( unsigned char *dst, size_t dlen, size_t *olen,
const unsigned char *src, size_t slen )
const unsigned char *src, size_t slen )
{
size_t i, n;
unsigned char *p;
if( slen == 0 )
{
if ( slen == 0 ) {
*olen = 0;
return( 0 );
return ( 0 );
}
n = slen / 3 + ( slen % 3 != 0 );
if( n > ( BASE64_SIZE_T_MAX - 1 ) / 4 )
{
if ( n > ( BASE64_SIZE_T_MAX - 1 ) / 4 ) {
*olen = BASE64_SIZE_T_MAX;
return( QCLOUD_ERR_FAILURE );
return ( QCLOUD_ERR_FAILURE );
}
n *= 4;
if( ( dlen < n + 1 ) || ( NULL == dst ) )
{
if ( ( dlen < n + 1 ) || ( NULL == dst ) ) {
*olen = n + 1;
return( QCLOUD_ERR_FAILURE );
return ( QCLOUD_ERR_FAILURE );
}
n = ( slen / 3 ) * 3;
int C1, C2, C3;
for( i = 0, p = dst; i < n; i += 3 )
{
for ( i = 0, p = dst; i < n; i += 3 ) {
C1 = *src++;
C2 = *src++;
C3 = *src++;
*p++ = base64_enc_map[(C1 >> 2) & 0x3F];
*p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F];
*p++ = base64_enc_map[(((C2 & 15) << 2) + (C3 >> 6)) & 0x3F];
*p++ = base64_enc_map[C3 & 0x3F];
}
if( i < slen )
{
if ( i < slen ) {
C1 = *src++;
C2 = ( ( i + 1 ) < slen ) ? *src++ : 0;
*p++ = base64_enc_map[(C1 >> 2) & 0x3F];
*p++ = base64_enc_map[(((C1 & 3) << 4) + (C2 >> 4)) & 0x3F];
if( ( i + 1 ) < slen )
if ( ( i + 1 ) < slen )
*p++ = base64_enc_map[((C2 & 15) << 2) & 0x3F];
else *p++ = '=';
*p++ = '=';
}
*olen = p - dst;
*p = 0;
return( 0 );
return ( 0 );
}
int qcloud_iot_utils_base64decode( unsigned char *dst, size_t dlen, size_t *olen,
const unsigned char *src, size_t slen )
const unsigned char *src, size_t slen )
{
size_t i, n;
uint32_t j, x;
unsigned char *p;
/* First pass: check for validity and get output length */
for( i = n = j = 0; i < slen; i++ )
{
for ( i = n = j = 0; i < slen; i++ ) {
/* Skip spaces before checking for EOL */
x = 0;
while( i < slen && src[i] == ' ' )
{
while ( i < slen && src[i] == ' ' ) {
++i;
++x;
}
/* Spaces at end of buffer are OK */
if( i == slen )
if ( i == slen )
break;
if( ( slen - i ) >= 2 &&
src[i] == '\r' && src[i + 1] == '\n' )
if ( ( slen - i ) >= 2 &&
src[i] == '\r' && src[i + 1] == '\n' )
continue;
if( src[i] == '\n' )
if ( src[i] == '\n' )
continue;
/* Space inside a line is an error */
if( x != 0 )
return( QCLOUD_ERR_FAILURE );
if( src[i] == '=' && ++j > 2 )
return( QCLOUD_ERR_FAILURE );
if( src[i] > 127 || base64_dec_map[src[i]] == 127 )
return( QCLOUD_ERR_FAILURE );
if( base64_dec_map[src[i]] < 64 && j != 0 )
return( QCLOUD_ERR_FAILURE );
if ( x != 0 )
return ( QCLOUD_ERR_FAILURE );
if ( src[i] == '=' && ++j > 2 )
return ( QCLOUD_ERR_FAILURE );
if ( src[i] > 127 || base64_dec_map[src[i]] == 127 )
return ( QCLOUD_ERR_FAILURE );
if ( base64_dec_map[src[i]] < 64 && j != 0 )
return ( QCLOUD_ERR_FAILURE );
n++;
}
if( n == 0 )
{
if ( n == 0 ) {
*olen = 0;
return( 0 );
return ( 0 );
}
n = ( ( n * 6 ) + 7 ) >> 3;
n -= j;
if( dst == NULL || dlen < n )
{
if ( dst == NULL || dlen < n ) {
*olen = n;
return( QCLOUD_ERR_FAILURE );
return ( QCLOUD_ERR_FAILURE );
}
for( j = 3, n = x = 0, p = dst; i > 0; i--, src++ )
{
if( *src == '\r' || *src == '\n' || *src == ' ' )
for ( j = 3, n = x = 0, p = dst; i > 0; i--, src++ ) {
if ( *src == '\r' || *src == '\n' || *src == ' ' )
continue;
j -= ( base64_dec_map[*src] == 64 );
x = ( x << 6 ) | ( base64_dec_map[*src] & 0x3F );
if( ++n == 4 )
{
if ( ++n == 4 ) {
n = 0;
if( j > 0 ) *p++ = (unsigned char)( x >> 16 );
if( j > 1 ) *p++ = (unsigned char)( x >> 8 );
if( j > 2 ) *p++ = (unsigned char)( x );
if ( j > 0 ) *p++ = (unsigned char)( x >> 16 );
if ( j > 1 ) *p++ = (unsigned char)( x >> 8 );
if ( j > 2 ) *p++ = (unsigned char)( x );
}
}
*olen = p - dst;
return( 0 );
return ( 0 );
}
#ifdef __cplusplus
}
#endif

View File

@@ -22,12 +22,12 @@
#include "qcloud_iot_import.h"
#include "utils_getopt.h"
static int utils_opterr = 1; /* if error message should be printed */
static int utils_optind = 1; /* index into parent argv vector */
static int utils_optopt; /* character checked for validity */
static int utils_optreset = 1; /* reset getopt */
static int utils_opterr = 1; /* if error message should be printed */
static int utils_optind = 1; /* index into parent argv vector */
static int utils_optopt; /* character checked for validity */
static int utils_optreset = 1; /* reset getopt */
char* utils_optarg; /* argument associated with option */
char* utils_optarg; /* argument associated with option */
int utils_getopt(int nargc, char* const* nargv, const char* options)
{
@@ -36,67 +36,63 @@ int utils_getopt(int nargc, char* const* nargv, const char* options)
#define BADARG (int)':'
#define EMSG ""
static char* place = EMSG; /* option letter processing */
const char* oli; /* option letter list index */
static char* place = EMSG; /* option letter processing */
const char* oli; /* option letter list index */
if (utils_optreset || !*place) /* update scanning pointer */
{
utils_optreset = 0;
if (utils_optind >= nargc || *(place = nargv[utils_optind]) != '-')
{
utils_optind = 1;
utils_optreset = 1;
place = EMSG;
return (-1);
}
if (utils_optreset || !*place) { /* update scanning pointer */
utils_optreset = 0;
place++;
}
if (utils_optind >= nargc || *(place = nargv[utils_optind]) != '-') {
utils_optind = 1;
utils_optreset = 1;
place = EMSG;
return (-1);
}
/* option letter okay? */
if ((utils_optopt = (int)*place++) == (int)':' ||
!(oli = strchr(options, utils_optopt))) {
/*
* if the user didn't specify '-' as an option,
* assume it means -1.
*/
if (utils_optopt == (int)'-')
return (-1);
place++;
}
if (!*place)
++utils_optind;
/* option letter okay? */
if ((utils_optopt = (int) * place++) == (int)':' ||
!(oli = strchr(options, utils_optopt))) {
/*
* if the user didn't specify '-' as an option,
* assume it means -1.
*/
if (utils_optopt == (int)'-')
return (-1);
if (utils_opterr && *options != ':')
HAL_Printf("illegal option - %c\n", utils_optopt);
if (!*place)
++utils_optind;
return (BADCH);
}
if (utils_opterr && *options != ':')
HAL_Printf("illegal option - %c\n", utils_optopt);
if (*++oli != ':') { /* don't need argument */
utils_optarg = NULL;
if (!*place)
++utils_optind;
}
else
{ /* need an argument */
if (*place) /* no white space */
utils_optarg = place;
else if (nargc <= ++utils_optind) { /* no arg */
place = EMSG;
if (*options == ':')
return (BADARG);
if (utils_opterr)
HAL_Printf("option requires an argument - %c\n", utils_optopt);
return (BADCH);
}
else /* white space */
utils_optarg = nargv[utils_optind];
return (BADCH);
}
place = EMSG;
++utils_optind;
}
if (*++oli != ':') { /* don't need argument */
utils_optarg = NULL;
if (!*place)
++utils_optind;
} else {
/* need an argument */
if (*place) /* no white space */
utils_optarg = place;
else if (nargc <= ++utils_optind) { /* no arg */
place = EMSG;
if (*options == ':')
return (BADARG);
if (utils_opterr)
HAL_Printf("option requires an argument - %c\n", utils_optopt);
return (BADCH);
} else /* white space */
utils_optarg = nargv[utils_optind];
/* dump back option letter */
return (utils_optopt);
place = EMSG;
++utils_optind;
}
/* dump back option letter */
return (utils_optopt);
}

View File

@@ -26,13 +26,13 @@
void utils_hmac_md5(const char *msg, int msg_len, char *digest, const char *key, int key_len)
{
if((NULL == msg) || (NULL == digest) || (NULL == key)) {
if ((NULL == msg) || (NULL == digest) || (NULL == key)) {
Log_e("parameter is Null,failed!");
return;
}
if(key_len > KEY_IOPAD_SIZE) {
Log_e("key_len > size(%d) of array",KEY_IOPAD_SIZE);
if (key_len > KEY_IOPAD_SIZE) {
Log_e("key_len > size(%d) of array", KEY_IOPAD_SIZE);
return;
}
@@ -76,13 +76,13 @@ void utils_hmac_md5(const char *msg, int msg_len, char *digest, const char *key,
void utils_hmac_sha1(const char *msg, int msg_len, char *digest, const char *key, int key_len)
{
if((NULL == msg) || (NULL == digest) || (NULL == key)) {
if ((NULL == msg) || (NULL == digest) || (NULL == key)) {
Log_e("parameter is Null,failed!");
return;
}
if(key_len > KEY_IOPAD_SIZE) {
Log_e("key_len > size(%d) of array",KEY_IOPAD_SIZE);
if (key_len > KEY_IOPAD_SIZE) {
Log_e("key_len > size(%d) of array", KEY_IOPAD_SIZE);
return;
}

View File

@@ -274,7 +274,6 @@ ListNode *list_iterator_next(ListIterator *self)
void list_iterator_destroy(ListIterator *self)
{
HAL_Free(self);
self = NULL;
}
/*

View File

@@ -19,13 +19,13 @@
int ring_buff_init(sRingbuff* ring_buff, char* buff, uint32_t size )
{
ring_buff->buffer = buff;
ring_buff->buffer = buff;
ring_buff->size = size;
ring_buff->readpoint = 0;
ring_buff->writepoint = 0;
memset(ring_buff->buffer, 0, ring_buff->size);
ring_buff->full = false;
memset(ring_buff->buffer, 0, ring_buff->size);
ring_buff->full = false;
return RINGBUFF_OK;
}
@@ -33,74 +33,59 @@ int ring_buff_flush(sRingbuff* ring_buff)
{
ring_buff->readpoint = 0;
ring_buff->writepoint = 0;
memset(ring_buff->buffer, 0, ring_buff->size);
ring_buff->full = false;
memset(ring_buff->buffer, 0, ring_buff->size);
ring_buff->full = false;
return RINGBUFF_OK;
}
int ring_buff_push_data(sRingbuff* ring_buff, uint8_t *pData, int len)
{
int i;
if(len > ring_buff->size)
{
return RINGBUFF_TOO_SHORT;
}
int i;
for(i = 0; i < len; i++)
{
if(((ring_buff->writepoint + 1) % ring_buff->size) == ring_buff->readpoint)
{
ring_buff->full = true;
return RINGBUFF_FULL;
}
else
{
if(ring_buff->writepoint < (ring_buff->size - 1))
{
ring_buff->writepoint ++;
}
else
{
ring_buff->writepoint = 0;
}
ring_buff->buffer[ring_buff->writepoint] = pData[i];
}
}
if (len > ring_buff->size) {
return RINGBUFF_TOO_SHORT;
}
return RINGBUFF_OK;
for (i = 0; i < len; i++) {
if (((ring_buff->writepoint + 1) % ring_buff->size) == ring_buff->readpoint) {
ring_buff->full = true;
return RINGBUFF_FULL;
} else {
if (ring_buff->writepoint < (ring_buff->size - 1)) {
ring_buff->writepoint ++;
} else {
ring_buff->writepoint = 0;
}
ring_buff->buffer[ring_buff->writepoint] = pData[i];
}
}
return RINGBUFF_OK;
}
int ring_buff_pop_data(sRingbuff* ring_buff, uint8_t *pData, int len)
{
int i;
int i;
if(len > ring_buff->size)
{
return RINGBUFF_TOO_SHORT;
}
if (len > ring_buff->size) {
return RINGBUFF_TOO_SHORT;
}
for(i = 0; i < len; i++)
{
if(ring_buff->writepoint == ring_buff->readpoint)
{
break;
}
else
{
if(ring_buff->readpoint == (ring_buff->size - 1))
{
ring_buff->readpoint = 0;
}
for (i = 0; i < len; i++) {
if (ring_buff->writepoint == ring_buff->readpoint) {
break;
} else {
if (ring_buff->readpoint == (ring_buff->size - 1)) {
ring_buff->readpoint = 0;
}
else
{
ring_buff->readpoint++;
}
pData[i] = ring_buff->buffer[ring_buff->readpoint];
}
}
return i;
else {
ring_buff->readpoint++;
}
pData[i] = ring_buff->buffer[ring_buff->readpoint];
}
}
return i;
}

View File

@@ -16,29 +16,34 @@
#ifdef __cplusplus
extern "C" {
#endif
#include "utils_timer.h"
bool expired(Timer *timer) {
bool expired(Timer *timer)
{
return HAL_Timer_expired(timer);
}
void countdown_ms(Timer *timer, unsigned int timeout_ms) {
void countdown_ms(Timer *timer, unsigned int timeout_ms)
{
HAL_Timer_countdown_ms(timer, timeout_ms);
}
void countdown(Timer *timer, unsigned int timeout) {
void countdown(Timer *timer, unsigned int timeout)
{
HAL_Timer_countdown(timer, timeout);
}
int left_ms(Timer *timer) {
int left_ms(Timer *timer)
{
return HAL_Timer_remain(timer);
}
void InitTimer(Timer *timer) {
void InitTimer(Timer *timer)
{
HAL_Timer_init(timer);
}
#ifdef __cplusplus
}
#endif