Microsoft Azure IoTHub client libraries

Dependents:   sht15_remote_monitoring RobotArmDemo iothub_client_sample_amqp f767zi_mqtt ... more

This library implements the Microsoft Azure IoTHub client library. The code is replicated from https://github.com/Azure/azure-iot-sdks

Revision:
47:aaa262b5f898
Parent:
46:6a69294b6119
Child:
48:cc5d91f2b06d
--- a/iothub_client_ll_uploadtoblob.c	Mon Jul 18 16:45:01 2016 -0700
+++ b/iothub_client_ll_uploadtoblob.c	Fri Jul 29 15:53:13 2016 -0700
@@ -25,6 +25,22 @@
 #include "iothub_client_ll_uploadtoblob.h"
 #include "blob.h"
 
+
+#ifdef WINCE
+#include <stdarg.h>
+// Returns number of characters copied.
+int snprintf(char * s, size_t n, const char * format, ...)
+{
+	int result;
+	va_list args;
+	va_start(args, format);
+	result = vsnprintf(s, n, format, args);
+	va_end(args);
+	return result;
+}
+#endif
+
+
 /*Codes_SRS_IOTHUBCLIENT_LL_02_085: [ IoTHubClient_LL_UploadToBlob shall use the same authorization as step 1. to prepare and perform a HTTP request with the following parameters: ]*/
 #define FILE_UPLOAD_FAILED_BODY "{ \"isSuccess\":false, \"statusCode\":-1,\"statusDescription\" : \"client not able to connect with the server\" }"
 
@@ -32,7 +48,6 @@
     DEVICE_KEY, \
     X509,       \
     SAS_TOKEN
-
 DEFINE_ENUM(AUTHORIZATION_SCHEME, AUTHORIZATION_SCHEME_VALUES);
 
 typedef struct UPLOADTOBLOB_X509_CREDENTIALS_TAG
@@ -687,6 +702,9 @@
 IOTHUB_CLIENT_RESULT IoTHubClient_LL_UploadToBlob_Impl(IOTHUB_CLIENT_LL_UPLOADTOBLOB_HANDLE handle, const char* destinationFileName, const unsigned char* source, size_t size)
 {
     IOTHUB_CLIENT_RESULT result;
+	BUFFER_HANDLE toBeTransmitted;
+	int requiredStringLength;
+	char* requiredString;
 
     /*Codes_SRS_IOTHUBCLIENT_LL_02_061: [ If handle is NULL then IoTHubClient_LL_UploadToBlob shall fail and return IOTHUB_CLIENT_INVALID_ARG. ]*/
     /*Codes_SRS_IOTHUBCLIENT_LL_02_062: [ If destinationFileName is NULL then IoTHubClient_LL_UploadToBlob shall fail and return IOTHUB_CLIENT_INVALID_ARG. ]*/
@@ -799,9 +817,9 @@
                                     {
                                         /*must make a json*/
 
-                                        int requiredStringLength = snprintf(NULL, 0, "{\"isSuccess\":%s, \"statusCode\":%d, \"statusDescription\":\"%s\"}", ((httpResponse < 300) ? "true" : "false"), httpResponse, BUFFER_u_char(responseToIoTHub));
+                                        requiredStringLength = snprintf(NULL, 0, "{\"isSuccess\":%s, \"statusCode\":%d, \"statusDescription\":\"%s\"}", ((httpResponse < 300) ? "true" : "false"), httpResponse, BUFFER_u_char(responseToIoTHub));
 
-                                        char* requiredString = malloc(requiredStringLength + 1);
+                                        requiredString = malloc(requiredStringLength + 1);
                                         if (requiredString == 0)
                                         {
                                             LogError("unable to malloc");
@@ -811,7 +829,7 @@
                                         {
                                             /*do again snprintf*/
                                             (void)snprintf(requiredString, requiredStringLength + 1, "{\"isSuccess\":%s, \"statusCode\":%d, \"statusDescription\":\"%s\"}", ((httpResponse < 300) ? "true" : "false"), httpResponse, BUFFER_u_char(responseToIoTHub));
-                                            BUFFER_HANDLE toBeTransmitted = BUFFER_create((const unsigned char*)requiredString, requiredStringLength);
+                                            toBeTransmitted = BUFFER_create((const unsigned char*)requiredString, requiredStringLength);
                                             if (toBeTransmitted == NULL)
                                             {
                                                 LogError("unable to BUFFER_create");