diff --git a/src/cJSON/cJSON.c b/src/cJSON/cJSON.c index 38e9f6154..2feac1598 100644 --- a/src/cJSON/cJSON.c +++ b/src/cJSON/cJSON.c @@ -124,7 +124,7 @@ CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item) CJSON_PUBLIC(const char*) cJSON_Version(void) { static char version[15]; - sprintf(version, "%i.%i.%i", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH); + snprintf(version, sizeof(version), "%i.%i.%i", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH); return version; } @@ -569,22 +569,22 @@ static cJSON_bool print_number(const cJSON * const item, printbuffer * const out /* This checks for NaN and Infinity */ if (isnan(d) || isinf(d)) { - length = sprintf((char*)number_buffer, "null"); + length = snprintf((char*)number_buffer, sizeof(number_buffer), "null"); } else if(d == (double)item->valueint) { - length = sprintf((char*)number_buffer, "%d", item->valueint); + length = snprintf((char*)number_buffer, sizeof(number_buffer), "%d", item->valueint); } else { /* Try 15 decimal places of precision to avoid nonsignificant nonzero digits */ - length = sprintf((char*)number_buffer, "%1.15g", d); + length = snprintf((char*)number_buffer, sizeof(number_buffer), "%1.15g", d); /* Check whether the original double can be recovered */ if ((sscanf((char*)number_buffer, "%lg", &test) != 1) || !compare_double((double)test, d)) { /* If not, print with 17 decimal places of precision */ - length = sprintf((char*)number_buffer, "%1.17g", d); + length = snprintf((char*)number_buffer, sizeof(number_buffer), "%1.17g", d); } } @@ -1017,7 +1017,7 @@ static cJSON_bool print_string_ptr(const unsigned char * const input, printbuffe break; default: /* escape and print as unicode codepoint */ - sprintf((char*)output_pointer, "u%04x", *input_pointer); + snprintf((char*)output_pointer, sizeof(output_pointer), "u%04x", *input_pointer); output_pointer += 4; break; } diff --git a/src/cmnds/cmd_channels.c b/src/cmnds/cmd_channels.c index 66976a785..ed4278f07 100644 --- a/src/cmnds/cmd_channels.c +++ b/src/cmnds/cmd_channels.c @@ -158,7 +158,7 @@ static int CMD_GetReadings(const void *context, const char *cmd, const char *arg e = DRV_GetReading(OBK_CONSUMPTION_TOTAL); elh = DRV_GetReading(OBK_CONSUMPTION_LAST_HOUR); - sprintf(tmp, "%f %f %f %f %f",v,c,p,e,elh); + snprintf(tmp, sizeof(tmp), "%f %f %f %f %f",v,c,p,e,elh); if(cmdFlags & COMMAND_FLAG_SOURCE_TCP) { ADDLOG_INFO(LOG_FEATURE_RAW, tmp); diff --git a/src/cmnds/cmd_newLEDDriver.c b/src/cmnds/cmd_newLEDDriver.c index d306c6928..e8172b1c5 100644 --- a/src/cmnds/cmd_newLEDDriver.c +++ b/src/cmnds/cmd_newLEDDriver.c @@ -215,7 +215,7 @@ static OBK_Publish_Result sendColorChange() { c[1] = (byte)(baseColors[1]); c[2] = (byte)(baseColors[2]); - sprintf(s,"%02X%02X%02X",c[0],c[1],c[2]); + snprintf(s, sizeof(s), "%02X%02X%02X",c[0],c[1],c[2]); return MQTT_PublishMain_StringString_DeDuped(DEDUP_LED_BASECOLOR_RGB,DEDUP_EXPIRE_TIME,"led_basecolor_rgb",s, 0); } @@ -226,7 +226,7 @@ void LED_GetBaseColorString(char * s) { c[1] = (byte)(baseColors[1]); c[2] = (byte)(baseColors[2]); - sprintf(s,"%02X%02X%02X",c[0],c[1],c[2]); + sprintf(s, "%02X%02X%02X",c[0],c[1],c[2]); } static void sendFinalColor() { char s[16]; @@ -240,7 +240,7 @@ static void sendFinalColor() { c[1] = (byte)(finalColors[1]); c[2] = (byte)(finalColors[2]); - sprintf(s,"%02X%02X%02X",c[0],c[1],c[2]); + snprintf(s, sizeof(s),"%02X%02X%02X",c[0],c[1],c[2]); MQTT_PublishMain_StringString_DeDuped(DEDUP_LED_FINALCOLOR_RGB,DEDUP_EXPIRE_TIME,"led_finalcolor_rgb",s, 0); } diff --git a/src/driver/drv_bl0937.c b/src/driver/drv_bl0937.c index 3f0848a5e..9bcdfa5ec 100644 --- a/src/driver/drv_bl0937.c +++ b/src/driver/drv_bl0937.c @@ -60,7 +60,7 @@ int BL0937_PowerSet(const void *context, const char *cmd, const char *args, int { char dbg[128]; - sprintf(dbg,"PowerSet: you gave %f, set ref to %f\n", realPower, BL0937_PREF); + snprintf(dbg, sizeof(dbg),"PowerSet: you gave %f, set ref to %f\n", realPower, BL0937_PREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } return 0; @@ -119,7 +119,7 @@ int BL0937_VoltageSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; - sprintf(dbg,"VoltageSet: you gave %f, set ref to %f\n", realV, BL0937_VREF); + snprintf(dbg, sizeof(dbg),"VoltageSet: you gave %f, set ref to %f\n", realV, BL0937_VREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } @@ -140,7 +140,7 @@ int BL0937_CurrentSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; - sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, BL0937_CREF); + snprintf(dbg, sizeof(dbg),"CurrentSet: you gave %f, set ref to %f\n", realI, BL0937_CREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } return 0; @@ -203,7 +203,7 @@ void BL0937_RunFrame() { #if 0 { char dbg[128]; - sprintf(dbg,"Voltage %f, current %f, power %f\n", final_v, final_c, final_p); + snprintf(dbg, sizeof(dbg),"Voltage %f, current %f, power %f\n", final_v, final_c, final_p); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } #endif diff --git a/src/driver/drv_bl0942.c b/src/driver/drv_bl0942.c index 82f7be73d..73e012f42 100644 --- a/src/driver/drv_bl0942.c +++ b/src/driver/drv_bl0942.c @@ -74,7 +74,7 @@ int BL0942_TryToGetNextBL0942Packet() { char buffer2[32]; buffer_for_log[0] = 0; for(i = 0; i < BL0942_PACKET_LEN; i++) { - sprintf(buffer2,"%02X ",UART_GetNextByte(i)); + snprintf(buffer2, sizeof(buffer2), "%02X ",UART_GetNextByte(i)); strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log)); } addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,"BL0942 received: %s\n", buffer_for_log); @@ -111,7 +111,7 @@ int BL0942_TryToGetNextBL0942Packet() { { char res[128]; // V=245.107925,I=109.921143,P=0.035618 - sprintf(res,"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]); + snprintf(res, sizeof(res),"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,res ); } #endif @@ -141,7 +141,7 @@ int BL0942_PowerSet(const void *context, const char *cmd, const char *args, int { char dbg[128]; - sprintf(dbg,"PowerSet: you gave %f, set ref to %f\n", realPower, BL0942_PREF); + snprintf(dbg, sizeof(dbg),"PowerSet: you gave %f, set ref to %f\n", realPower, BL0942_PREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } return 0; @@ -200,7 +200,7 @@ int BL0942_VoltageSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; - sprintf(dbg,"VoltageSet: you gave %f, set ref to %f\n", realV, BL0942_UREF); + snprintf(dbg, sizeof(dbg),"VoltageSet: you gave %f, set ref to %f\n", realV, BL0942_UREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } @@ -221,7 +221,7 @@ int BL0942_CurrentSet(const void *context, const char *cmd, const char *args, in { char dbg[128]; - sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, BL0942_IREF); + snprintf(dbg, sizeof(dbg),"CurrentSet: you gave %f, set ref to %f\n", realI, BL0942_IREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } return 0; diff --git a/src/driver/drv_cse7766.c b/src/driver/drv_cse7766.c index c87e4d5a2..6f2cd7849 100644 --- a/src/driver/drv_cse7766.c +++ b/src/driver/drv_cse7766.c @@ -73,7 +73,7 @@ int CSE7766_TryToGetNextCSE7766Packet() { char buffer2[32]; buffer_for_log[0] = 0; for(i = 0; i < CSE7766_PACKET_LEN; i++) { - sprintf(buffer2,"%02X ",UART_GetNextByte(i)); + snprintf(buffer2, sizeof(buffer2), "%02X ",UART_GetNextByte(i)); strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log)); } addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,"CSE7766 received: %s\n", buffer_for_log); @@ -188,7 +188,7 @@ int CSE7766_TryToGetNextCSE7766Packet() { { char res[128]; // V=245.107925,I=109.921143,P=0.035618 - sprintf(res,"V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]); + snprintf(res, sizeof(res), "V=%f,I=%f,P=%f\n",lastReadings[OBK_VOLTAGE],lastReadings[OBK_CURRENT],lastReadings[OBK_POWER]); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,res ); } #endif @@ -213,7 +213,7 @@ int CSE7766_PowerSet(const void *context, const char *cmd, const char *args, int { char dbg[128]; - sprintf(dbg,"PowerSet: you gave %f, set ref to %f\n", realPower, CSE7766_PREF); + snprintf(dbg, sizeof(dbg),"PowerSet: you gave %f, set ref to %f\n", realPower, CSE7766_PREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } return 0; @@ -272,7 +272,7 @@ int CSE7766_VoltageSet(const void *context, const char *cmd, const char *args, i { char dbg[128]; - sprintf(dbg,"VoltageSet: you gave %f, set ref to %f\n", realV, CSE7766_UREF); + snprintf(dbg, sizeof(dbg),"VoltageSet: you gave %f, set ref to %f\n", realV, CSE7766_UREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } @@ -293,7 +293,7 @@ int CSE7766_CurrentSet(const void *context, const char *cmd, const char *args, i { char dbg[128]; - sprintf(dbg,"CurrentSet: you gave %f, set ref to %f\n", realI, CSE7766_IREF); + snprintf(dbg, sizeof(dbg),"CurrentSet: you gave %f, set ref to %f\n", realI, CSE7766_IREF); addLogAdv(LOG_INFO, LOG_FEATURE_ENERGYMETER,dbg); } return 0; diff --git a/src/driver/drv_ir.cpp b/src/driver/drv_ir.cpp index 73811f208..9248016d9 100644 --- a/src/driver/drv_ir.cpp +++ b/src/driver/drv_ir.cpp @@ -599,9 +599,9 @@ extern "C" void DRV_IR_RunFrame(){ if (publishrepeats || !repeat){ if (ourReceiver->decodedIRData.protocol == UNKNOWN){ - sprintf(out, "IR_%s 0x%X %d", name, ourReceiver->decodedIRData.decodedRawData, repeat); + snprintf(out, sizeof(out), "IR_%s 0x%X %d", name, ourReceiver->decodedIRData.decodedRawData, repeat); } else { - sprintf(out, "IR_%s 0x%X 0x%X %d", name, ourReceiver->decodedIRData.address, ourReceiver->decodedIRData.command, repeat); + snprintf(out, sizeof(out), "IR_%s 0x%X 0x%X %d", name, ourReceiver->decodedIRData.address, ourReceiver->decodedIRData.command, repeat); } //ADDLOG_INFO(LOG_FEATURE_IR, (char *)"IR MQTT publish %s", out); @@ -613,7 +613,7 @@ extern "C" void DRV_IR_RunFrame(){ } } if(ourReceiver->decodedIRData.protocol != UNKNOWN) { - sprintf(out, "%X", ourReceiver->decodedIRData.command); + snprintf(out, sizeof(out), "%X", ourReceiver->decodedIRData.command); int tgType = 0; switch(ourReceiver->decodedIRData.protocol) { diff --git a/src/driver/drv_tuyaMCU.c b/src/driver/drv_tuyaMCU.c index e80ae6500..f2af1a251 100644 --- a/src/driver/drv_tuyaMCU.c +++ b/src/driver/drv_tuyaMCU.c @@ -221,7 +221,7 @@ int UART_TryToGetNextTuyaPacket(byte *out, int maxSize) { if(a != 0x55 || b != 0xAA) { UART_ConsumeBytes(1); if(c_garbage_consumed + 2 < sizeof(printfSkipDebug)) { - sprintf(buffer2,"%02X ",a); + snprintf(buffer2, sizeof(buffer2),"%02X ",a); strcat_safe(printfSkipDebug,buffer2,sizeof(printfSkipDebug)); } c_garbage_consumed++; @@ -993,7 +993,7 @@ void TuyaMCU_RunFrame() { if(len > 0) { buffer_for_log[0] = 0; for(i = 0; i < len; i++) { - sprintf(buffer2,"%02X ",data[i]); + snprintf(buffer2, sizeof(buffer2),"%02X ",data[i]); strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log)); } addLogAdv(LOG_INFO, LOG_FEATURE_TUYAMCU,"TUYAMCU received: %s\n", buffer_for_log); @@ -1001,7 +1001,7 @@ void TuyaMCU_RunFrame() { // redo sprintf without spaces buffer_for_log[0] = 0; for(i = 0; i < len; i++) { - sprintf(buffer2,"%02X",data[i]); + snprintf(buffer2, sizeof(buffer2),"%02X",data[i]); strcat_safe(buffer_for_log,buffer2,sizeof(buffer_for_log)); } // fire string event, as we already have it sprintfed diff --git a/src/hal/w800/hal_wifi_w800.c b/src/hal/w800/hal_wifi_w800.c index 14f0c698e..80d22eeb7 100644 --- a/src/hal/w800/hal_wifi_w800.c +++ b/src/hal/w800/hal_wifi_w800.c @@ -76,7 +76,7 @@ void HAL_PrintNetworkInfo() struct netif* netif = tls_get_netif(); MEMCPY(mac, &netif->hwaddr[0], ETH_ALEN); - sprintf(macstr, MACSTR, MAC2STR(mac)); + snprintf(macstr, sizeof(macstr), MACSTR, MAC2STR(mac)); tls_wifi_get_current_bss(&bss); diff --git a/src/httpclient/http_client.c b/src/httpclient/http_client.c index 81bf0b937..a2f9701d2 100644 --- a/src/httpclient/http_client.c +++ b/src/httpclient/http_client.c @@ -259,7 +259,7 @@ int httpclient_send_auth(httpclient_t *client, char *send_buf, int *send_idx) char base64buff[HTTPCLIENT_AUTHB_SIZE + 3]; httpclient_get_info(client, send_buf, send_idx, "Authorization: Basic ", 0); - sprintf(base64buff, "%s:%s", client->auth_user, client->auth_password); + snprintf(base64buff, sizeof(base64buff), "%s:%s", client->auth_user, client->auth_password); ADDLOG_DEBUG(LOG_FEATURE_HTTP_CLIENT, "bAuth: %s", base64buff) ; httpclient_base64enc(b_auth, base64buff); b_auth[os_strlen(b_auth) + 1] = '\0'; diff --git a/src/httpclient/utils_net.c b/src/httpclient/utils_net.c index 1d3c3b863..76e4bfc2d 100644 --- a/src/httpclient/utils_net.c +++ b/src/httpclient/utils_net.c @@ -23,7 +23,7 @@ uintptr_t HAL_TCP_Establish(const char *host, uint16_t port) hints.ai_family = AF_INET; //only IPv4 hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; - sprintf(service, "%u", port); + snprintf(service, sizeof(service), "%u", port); if ((rc = getaddrinfo(host, service, &hints, &addrInfoList)) != 0) { ADDLOG_ERROR(LOG_FEATURE_HTTP_CLIENT,"getaddrinfo error"); diff --git a/src/httpserver/new_http.c b/src/httpserver/new_http.c index b3404b6c6..67bf29912 100644 --- a/src/httpserver/new_http.c +++ b/src/httpserver/new_http.c @@ -199,9 +199,9 @@ void http_html_end(http_request_t* request) { WiFI_GetMacAddress((char*)mac); - sprintf(upTimeStr, "
Device MAC: %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); + snprintf(upTimeStr, sizeof(upTimeStr), "
Device MAC: %02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); poststr(request, upTimeStr); - sprintf(upTimeStr, "
Short name: %s, Chipset %s", CFG_GetShortDeviceName(), PLATFORM_MCU_NAME); + snprintf(upTimeStr, sizeof(upTimeStr), "
Short name: %s, Chipset %s", CFG_GetShortDeviceName(), PLATFORM_MCU_NAME); poststr(request, upTimeStr); poststr(request, htmlBodyEnd); diff --git a/src/httpserver/rest_interface.c b/src/httpserver/rest_interface.c index fc1536f1b..417fef6f5 100644 --- a/src/httpserver/rest_interface.c +++ b/src/httpserver/rest_interface.c @@ -698,7 +698,7 @@ static int http_rest_post_logconfig(http_request_t* request) { else { ADDLOG_ERROR(LOG_FEATURE_API, "Unexpected key: %.*s", t[i].end - t[i].start, json_str + t[i].start); - sprintf(tmp, "Unexpected key: %.*s\n", t[i].end - t[i].start, + snprintf(tmp, sizeof(tmp), "Unexpected key: %.*s\n", t[i].end - t[i].start, json_str + t[i].start); poststr(request, tmp); } diff --git a/src/mqtt/new_mqtt.c b/src/mqtt/new_mqtt.c index 0d8a0975c..17fecfca2 100644 --- a/src/mqtt/new_mqtt.c +++ b/src/mqtt/new_mqtt.c @@ -712,7 +712,7 @@ static void mqtt_connection_cb(mqtt_client_t* client, void* arg, mqtt_connection clientId = CFG_GetMQTTClientId(); - sprintf(tmp, "%s/connected", clientId); + snprintf(tmp, sizeof(tmp), "%s/connected", clientId); err = mqtt_publish(client, tmp, "online", strlen("online"), 2, true, mqtt_pub_request_cb, 0); if (err != ERR_OK) { addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "Publish err: %d\n", err); @@ -755,7 +755,7 @@ static void MQTT_do_connect(mqtt_client_t* client) if (!mqtt_host[0]) { addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "mqtt_host empty, not starting mqtt\r\n"); - sprintf(mqtt_status_message, "mqtt_host empty, not starting mqtt"); + snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_host empty, not starting mqtt"); return; } @@ -795,7 +795,7 @@ static void MQTT_do_connect(mqtt_client_t* client) } else { addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "mqtt_host resolves no addresses?\r\n"); - sprintf(mqtt_status_message, "mqtt_host resolves no addresses?"); + snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_host resolves no addresses?"); return; } @@ -815,7 +815,7 @@ static void MQTT_do_connect(mqtt_client_t* client) if (res != ERR_OK) { addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "Connect error in mqtt_client_connect - code: %d (%s)\n", res, get_error_name(res)); - sprintf(mqtt_status_message, "mqtt_client_connect connect failed"); + snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_client_connect connect failed"); if (res == ERR_ISCONN) { mqtt_disconnect(mqtt_client); @@ -827,7 +827,7 @@ static void MQTT_do_connect(mqtt_client_t* client) } else { addLogAdv(LOG_INFO, LOG_FEATURE_MQTT, "mqtt_host %s not found by gethostbyname\r\n", mqtt_host); - sprintf(mqtt_status_message, "mqtt_host %s not found by gethostbyname", mqtt_host); + snprintf(mqtt_status_message, sizeof(mqtt_status_message), "mqtt_host %s not found by gethostbyname", mqtt_host); } } @@ -920,14 +920,14 @@ void MQTT_init() clientId = CFG_GetMQTTClientId(); // register the main set channel callback - sprintf(cbtopicbase, "%s/", clientId); - sprintf(cbtopicsub, "%s/+/set", clientId); + snprintf(cbtopicbase, sizeof(cbtopicbase), "%s/", clientId); + snprintf(cbtopicsub, sizeof(cbtopicsub), "%s/+/set", clientId); // note: this may REPLACE an existing entry with the same ID. ID 1 !!! MQTT_RegisterCallback(cbtopicbase, cbtopicsub, 1, channelSet); // register the TAS cmnd callback - sprintf(cbtopicbase, "cmnd/%s/", clientId); - sprintf(cbtopicsub, "cmnd/%s/+", clientId); + snprintf(cbtopicbase, sizeof(cbtopicbase), "cmnd/%s/", clientId); + snprintf(cbtopicsub, sizeof(cbtopicsub), "cmnd/%s/+", clientId); // note: this may REPLACE an existing entry with the same ID. ID 2 !!! MQTT_RegisterCallback(cbtopicbase, cbtopicsub, 2, tasCmnd); diff --git a/src/new_cfg.c b/src/new_cfg.c index c79119dc4..7d7c82030 100644 --- a/src/new_cfg.c +++ b/src/new_cfg.c @@ -135,8 +135,8 @@ void CFG_SetDefaultConfig() { memcpy(g_cfg.mac,mac,6); strcpy(g_cfg.webappRoot, "https://openbekeniot.github.io/webapp/"); // Long unique device name, like OpenBK7231T_AABBCCDD - sprintf(g_cfg.longDeviceName,DEVICENAME_PREFIX_FULL"_%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]); - sprintf(g_cfg.shortDeviceName,DEVICENAME_PREFIX_SHORT"%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]); + snprintf(g_cfg.longDeviceName, sizeof(g_cfg.longDeviceName), DEVICENAME_PREFIX_FULL"_%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]); + snprintf(g_cfg.shortDeviceName, sizeof(g_cfg.shortDeviceName), DEVICENAME_PREFIX_SHORT"%02X%02X%02X%02X",mac[2],mac[3],mac[4],mac[5]); strcpy_safe(g_cfg.mqtt_clientId, g_cfg.shortDeviceName, sizeof(g_cfg.mqtt_clientId)); strcpy(g_cfg.ntpServer, "217.147.223.78"); //bart.nexellent.net