Changeset 399
- Timestamp:
- Jun 5, 2019, 2:23:55 PM (5 years ago)
- Location:
- azure_iot_hub/trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/app_iothub_client/src/client.c
r396 r399 218 218 printf("failure to set option \"MinimumPollingTime\"\r\n"); 219 219 } 220 221 bool traceOn = 1; 222 if (IoTHubClient_LL_SetOption(iotHubClientHandle, OPTION_LOG_TRACE, &traceOn) != IOTHUB_CLIENT_OK) 223 { 224 printf("failure to set option \"log trace on\"\r\n"); 225 } 220 226 #endif 221 227 #ifdef SET_TRUSTED_CERT_IN_SAMPLES … … 241 247 do 242 248 { 243 //(void)printf("iterator: [%d], callbackCounter: [%d]. \r\n", iterator, callbackCounter); 244 245 if (iterator < MESSAGE_COUNT && (iterator <= callbackCounter)) 249 if ((iterator < MESSAGE_COUNT) && (iterator <= callbackCounter)) 246 250 { 247 251 temperature = minTemperature + (rand() % 10); … … 265 269 } 266 270 267 (void)IoTHubMessage_SetContentTypeSystemProperty(messages[iterator].messageHandle, "application/json"); 268 (void)IoTHubMessage_SetContentEncodingSystemProperty(messages[iterator].messageHandle, "utf-8"); 271 if (proto == 0) { 272 (void)IoTHubMessage_SetContentTypeSystemProperty(messages[iterator].messageHandle, "application/json"); 273 (void)IoTHubMessage_SetContentEncodingSystemProperty(messages[iterator].messageHandle, "utf-8"); 274 } 269 275 270 276 if (IoTHubClient_LL_SendEventAsync(iotHubClientHandle, messages[iterator].messageHandle, SendConfirmationCallback, &messages[iterator]) != IOTHUB_CLIENT_OK) … … 277 283 } 278 284 } 285 iterator++; 279 286 } 280 287 281 288 IoTHubClient_LL_DoWork(iotHubClientHandle); 282 289 ThreadAPI_Sleep(1); 283 284 iterator++;285 290 286 291 if (callbackCounter >= MESSAGE_COUNT) -
azure_iot_hub/trunk/azure_iothub/umqtt/inc/azure_umqtt_c/mqtt_codec.h
r389 r399 28 28 MOCKABLE_FUNCTION(, void, mqtt_codec_destroy, MQTTCODEC_HANDLE, handle); 29 29 30 MOCKABLE_FUNCTION(, void, mqtt_codec_reset, MQTTCODEC_HANDLE, handle); 30 31 MOCKABLE_FUNCTION(, BUFFER_HANDLE, mqtt_codec_connect, const MQTT_CLIENT_OPTIONS*, mqttOptions, STRING_HANDLE, trace_log); 31 32 MOCKABLE_FUNCTION(, BUFFER_HANDLE, mqtt_codec_disconnect); -
azure_iot_hub/trunk/azure_iothub/umqtt/src/mqtt_client.c
r389 r399 113 113 static STRING_HANDLE construct_trace_log_handle(MQTT_CLIENT* mqtt_client) 114 114 { 115 #ifndef NO_LOGGING 115 116 STRING_HANDLE trace_log; 116 117 if (mqtt_client->logTrace) … … 123 124 } 124 125 return trace_log; 126 #else 127 return NULL; 128 #endif 125 129 } 126 130 … … 445 449 if (mqtt_codec_bytesReceived(mqtt_client->codec_handle, buffer, size) != 0) 446 450 { 451 mqtt_codec_reset(mqtt_client->codec_handle); 447 452 set_error_callback(mqtt_client, MQTT_CLIENT_PARSE_ERROR); 448 453 } … … 1215 1220 else 1216 1221 { 1222 #ifndef NO_LOGGING 1217 1223 if (mqtt_client->logTrace) 1218 1224 { … … 1221 1227 STRING_delete(trace_log); 1222 1228 } 1229 #endif 1223 1230 result = 0; 1224 1231 } … … 1280 1287 BUFFER_delete(pingPacket); 1281 1288 (void)tickcounter_get_current_ms(mqtt_client->packetTickCntr, &mqtt_client->timeSincePing); 1282 1289 #ifndef NO_LOGGING 1283 1290 if (mqtt_client->logTrace) 1284 1291 { … … 1287 1294 STRING_delete(trace_log); 1288 1295 } 1296 #endif 1289 1297 } 1290 1298 } -
azure_iot_hub/trunk/azure_iothub/umqtt/src/mqtt_codec.c
r389 r399 38 38 #define UNSUBSCRIBE_FIXED_HEADER_FLAG 0x2 39 39 40 #define MAX_SEND_SIZE 0xFFFFFF7F 40 #define MAX_SEND_SIZE 0xFFFFFF7F // 268435455 41 42 // This captures the maximum packet size for 3 digits. 43 // If it's above this value then we bail out of the loop 44 #define MAX_3_DIGIT_PACKET_SIZE 2097152 41 45 42 46 #define CODEC_STATE_VALUES \ … … 409 413 size_t willTopicLen = 0; 410 414 size_t spaceLen = 0; 415 size_t currLen = 0; 416 size_t totalLen = 0; 411 417 412 418 if (mqttOptions->clientId != NULL) … … 436 442 } 437 443 438 size_tcurrLen = BUFFER_length(ctrlPacket);439 size_ttotalLen = clientLen + usernameLen + passwordLen + willMessageLen + willTopicLen + spaceLen;444 currLen = BUFFER_length(ctrlPacket); 445 totalLen = clientLen + usernameLen + passwordLen + willMessageLen + willTopicLen + spaceLen; 440 446 441 447 // Validate the Username & Password … … 507 513 { 508 514 (void)STRING_sprintf(connect_payload_trace, " | PWD: XXXX"); 515 //(void)STRING_sprintf(connect_payload_trace, " | PWD: %s", mqttOptions->password); 509 516 } 510 517 } … … 554 561 multiplier *= NEXT_128_CHUNK; 555 562 556 if (multiplier > 128 * 128 * 128)563 if (multiplier > MAX_3_DIGIT_PACKET_SIZE) 557 564 { 558 565 result = MU_FAILURE; … … 561 568 } while ((encodeByte & NEXT_128_CHUNK) != 0); 562 569 563 codecData->codecState = CODEC_STATE_VAR_HEADER; 564 565 // Reset remainLen Index 566 codecData->remainLenIndex = 0; 567 memset(codecData->storeRemainLen, 0, 4 * sizeof(uint8_t)); 568 569 if (totalLen > 0) 570 { 571 codecData->bufferOffset = 0; 572 codecData->headerData = BUFFER_new(); 573 if (codecData->headerData == NULL) 574 { 575 /* Codes_SRS_MQTT_CODEC_07_035: [ If any error is encountered then the packet state will be marked as error and mqtt_codec_bytesReceived shall return a non-zero value. ] */ 576 LogError("Failed BUFFER_new"); 577 result = MU_FAILURE; 578 } 579 else 580 { 581 if (BUFFER_pre_build(codecData->headerData, totalLen) != 0) 570 if (result != 0 || totalLen > MAX_SEND_SIZE) 571 { 572 LogError("Receive buffer too large for MQTT packet"); 573 result = MU_FAILURE; 574 } 575 else 576 { 577 codecData->codecState = CODEC_STATE_VAR_HEADER; 578 579 // Reset remainLen Index 580 codecData->remainLenIndex = 0; 581 memset(codecData->storeRemainLen, 0, 4 * sizeof(uint8_t)); 582 583 if (totalLen > 0) 584 { 585 codecData->bufferOffset = 0; 586 codecData->headerData = BUFFER_new(); 587 if (codecData->headerData == NULL) 582 588 { 583 589 /* Codes_SRS_MQTT_CODEC_07_035: [ If any error is encountered then the packet state will be marked as error and mqtt_codec_bytesReceived shall return a non-zero value. ] */ 584 LogError("Failed BUFFER_ pre_build");590 LogError("Failed BUFFER_new"); 585 591 result = MU_FAILURE; 586 592 } 587 593 else 594 { 595 if (BUFFER_pre_build(codecData->headerData, totalLen) != 0) 596 { 597 /* Codes_SRS_MQTT_CODEC_07_035: [ If any error is encountered then the packet state will be marked as error and mqtt_codec_bytesReceived shall return a non-zero value. ] */ 598 LogError("Failed BUFFER_pre_build"); 599 result = MU_FAILURE; 600 } 601 602 } 588 603 } 589 604 } … … 611 626 } 612 627 628 static void clear_codec_data(MQTTCODEC_INSTANCE* codec_data) 629 { 630 // Clear the code instance data 631 codec_data->currPacket = UNKNOWN_TYPE; 632 codec_data->codecState = CODEC_STATE_FIXED_HEADER; 633 codec_data->headerFlags = 0; 634 codec_data->bufferOffset = 0; 635 codec_data->headerData = NULL; 636 memset(codec_data->storeRemainLen, 0, 4 * sizeof(uint8_t)); 637 codec_data->remainLenIndex = 0; 638 } 639 640 void mqtt_codec_reset(MQTTCODEC_HANDLE handle) 641 { 642 if (handle != NULL) 643 { 644 clear_codec_data(handle); 645 } 646 } 647 613 648 MQTTCODEC_HANDLE mqtt_codec_create(ON_PACKET_COMPLETE_CALLBACK packetComplete, void* callbackCtx) 614 649 { … … 619 654 { 620 655 /* Codes_SRS_MQTT_CODEC_07_002: [On success mqtt_codec_create shall return a MQTTCODEC_HANDLE value.] */ 621 result->currPacket = UNKNOWN_TYPE; 622 result->codecState = CODEC_STATE_FIXED_HEADER; 623 result->headerFlags = 0; 624 result->bufferOffset = 0; 656 clear_codec_data(result); 625 657 result->packetComplete = packetComplete; 626 658 result->callContext = callbackCtx; 627 result->headerData = NULL;628 memset(result->storeRemainLen, 0, 4 * sizeof(uint8_t));629 result->remainLenIndex = 0;630 659 } 631 660 return result; … … 1086 1115 result = MU_FAILURE; 1087 1116 } 1088 if (codec_Data->currPacket == PINGRESP_TYPE)1117 else if (codec_Data->currPacket == PINGRESP_TYPE) 1089 1118 { 1090 1119 /* Codes_SRS_MQTT_CODEC_07_034: [Upon a constructing a complete MQTT packet mqtt_codec_bytesReceived shall call the ON_PACKET_COMPLETE_CALLBACK function.] */ -
azure_iot_hub/trunk/ntshell/src/fdtable.c
r389 r399 299 299 ER shell_get_evts(struct fd_events *evts, TMO tmout) 300 300 { 301 int count = 0;301 int count; 302 302 SYSTIM prev, now; 303 303 FLGPTN flgptn; … … 315 315 waitptn = *((FLGPTN *)&evts->readfds) | *((FLGPTN *)&evts->errorfds); 316 316 #endif 317 count = 0; 317 318 for (int fd = 0; fd < fd_table_count; fd++) { 318 319 fp = &fd_table[fd]; -
azure_iot_hub/trunk/ntshell/src/socket_stub.c
r389 r399 70 70 71 71 #define SOCKET_TIMEOUT 2000000 72 #define TCP_SOCKET_BUF_SIZE 512 72 73 73 74 struct addrinfo { … … 363 364 return -ENOMEM; 364 365 365 socket->buf_size = 512 + 512;366 socket->buf_size = TCP_SOCKET_BUF_SIZE + TCP_SOCKET_BUF_SIZE; 366 367 socket->buf = malloc(socket->buf_size); 367 368 #ifdef _DEBUG 368 369 memset(socket->buf, 0, socket->buf_size); 369 370 #endif 370 T_TCP_CCEP ccep = { 0, socket->buf, 512, &socket->buf[512], 512, (FP)socket_tcp_callback };371 T_TCP_CCEP ccep = { 0, socket->buf, TCP_SOCKET_BUF_SIZE, &socket->buf[TCP_SOCKET_BUF_SIZE], TCP_SOCKET_BUF_SIZE, (FP)socket_tcp_callback }; 371 372 ret = tcp_cre_cep(cepid, &ccep); 372 373 if (ret != E_OK) { … … 410 411 return -ENOMEM; 411 412 412 socket->buf_size = 512 + 512;413 socket->buf_size = TCP_SOCKET_BUF_SIZE + TCP_SOCKET_BUF_SIZE; 413 414 socket->buf = malloc(socket->buf_size); 414 415 #ifdef _DEBUG 415 416 memset(socket->buf, 0, socket->buf_size); 416 417 #endif 417 T_TCP6_CCEP ccep = { 0, socket->buf, 512, &socket->buf[512], 512, (FP)socket_tcp6_callback };418 T_TCP6_CCEP ccep = { 0, socket->buf, TCP_SOCKET_BUF_SIZE, &socket->buf[TCP_SOCKET_BUF_SIZE], TCP_SOCKET_BUF_SIZE, (FP)socket_tcp6_callback }; 418 419 ret = tcp6_cre_cep(cepid, &ccep); 419 420 if (ret != E_OK) { … … 522 523 return -ENOMEM; 523 524 524 socket->buf_size = 512 + 512;525 socket->buf_size = TCP_SOCKET_BUF_SIZE + TCP_SOCKET_BUF_SIZE; 525 526 socket->buf = malloc(socket->buf_size); 526 527 #ifdef _DEBUG 527 528 memset(socket->buf, 0, socket->buf_size); 528 529 #endif 529 T_TCP_CCEP ccep = { 0, socket->buf, 512, &socket->buf[512], 512, (FP)socket_tcp_callback };530 T_TCP_CCEP ccep = { 0, socket->buf, TCP_SOCKET_BUF_SIZE, &socket->buf[TCP_SOCKET_BUF_SIZE], TCP_SOCKET_BUF_SIZE, (FP)socket_tcp_callback }; 530 531 ret = tcp_cre_cep(cepid, &ccep); 531 532 if (ret != E_OK) { … … 560 561 return -ENOMEM; 561 562 562 socket->buf_size = 512 + 512;563 socket->buf_size = TCP_SOCKET_BUF_SIZE + TCP_SOCKET_BUF_SIZE; 563 564 socket->buf = malloc(socket->buf_size); 564 565 #ifdef _DEBUG 565 566 memset(socket->buf, 0, socket->buf_size); 566 567 #endif 567 T_TCP6_CCEP ccep = { 0, socket->buf, 512, &socket->buf[512], 512, (FP)socket_tcp6_callback };568 T_TCP6_CCEP ccep = { 0, socket->buf, TCP_SOCKET_BUF_SIZE, &socket->buf[TCP_SOCKET_BUF_SIZE], TCP_SOCKET_BUF_SIZE, (FP)socket_tcp6_callback }; 568 569 ret = tcp6_cre_cep(cepid, &ccep); 569 570 if (ret != E_OK) { … … 629 630 return -ENOMEM; 630 631 631 socket->buf_size = 512 + 512;632 socket->buf_size = TCP_SOCKET_BUF_SIZE + TCP_SOCKET_BUF_SIZE; 632 633 socket->buf = malloc(socket->buf_size); 633 634 #ifdef _DEBUG 634 635 memset(socket->buf, 0, socket->buf_size); 635 636 #endif 636 T_TCP_CCEP ccep = { 0, socket->buf, 512, &socket->buf[512], 512, (FP)socket_tcp_callback };637 T_TCP_CCEP ccep = { 0, socket->buf, TCP_SOCKET_BUF_SIZE, &socket->buf[TCP_SOCKET_BUF_SIZE], TCP_SOCKET_BUF_SIZE, (FP)socket_tcp_callback }; 637 638 ret = tcp_cre_cep(cepid, &ccep); 638 639 if (ret != E_OK) { … … 684 685 return -ENOMEM; 685 686 686 socket->buf_size = 512 + 512;687 socket->buf_size = TCP_SOCKET_BUF_SIZE + TCP_SOCKET_BUF_SIZE; 687 688 socket->buf = malloc(socket->buf_size); 688 689 #ifdef _DEBUG 689 690 memset(socket->buf, 0, socket->buf_size); 690 691 #endif 691 T_TCP6_CCEP ccep = { 0, socket->buf, 512, &socket->buf[512], 512, (FP)socket_tcp6_callback };692 T_TCP6_CCEP ccep = { 0, socket->buf, TCP_SOCKET_BUF_SIZE, &socket->buf[TCP_SOCKET_BUF_SIZE], TCP_SOCKET_BUF_SIZE, (FP)socket_tcp6_callback }; 692 693 ret = tcp6_cre_cep(cepid, &ccep); 693 694 if (ret != E_OK) {
Note:
See TracChangeset
for help on using the changeset viewer.