azure-iot-sdk-c

A C99 SDK for connecting devices to Microsoft Azure IoT services

OTHER License

Stars
587
Committers
162

Bot releases are hidden (Show)

azure-iot-sdk-c - 2019-10-07

Published by ewertons about 5 years ago

Package versions:

Apt/Debian:
azure-iot-sdk-c - 0.2.0.0-23xenial
azure-iot-sdk-c - 0.2.0.0-16bionic
azure-iot-sdk-c - 0.2.0-23trusty

VcPkg:
Port: azure-iot-sdk-c
Version: 2019-10-07.1

C Device SDK

  • Added Azure Security Center Client
  • Added missing srand() to modules that use rand()
  • Added compiler support to C18
  • Changed the fail reason from DEVICE_DISABLED to BAD_CREDENTIAL if the key or device-id is not correct in connection status callback
  • Fixed certGen.sh for devices
  • Forced single initialization of HTTPAPIEX for upload to blob
  • Fixed product info bug in AMQP transport (for Device Twin)
  • Improved MQTT transport by always deleting xio in cleanup functions
  • Exposed option for setting connection retry interval rate in AMQP and MQTT transports
  • Updated code to use macro-utils new MU_DEFINE_ENUM_STRINGS
  • Added cmake install directives for libmsr_riot.a
  • Fixed check for number of failed reconnection attempts in MQTT transport
  • Removed hardcoded key name usage from iothub_messaging_ll.c (allows to use non "iothubowner" IoT Hub strings with service client)
  • Added connection status callback invokation on MQTT ping fail
  • Fixed compilation warnings (MSVC)
  • Added new build verification jobs (Bearssl)
  • Added/improved tests
  • Added improvements to documentation in general
  • Changed reported properties and send event callback functions to store context per send, not per iothub_client handle

C Shared Utility

  • Added async DNS resolution using c-ares
  • Fixed critical socketio_win32 bug where socketio_send() would drop packets if send() returns SOCKET_ERROR and WSAEWOULDBLOCK
  • Fixed critical socketio_berkeley bug where socketio_send() would drop packets if send() returns -1 and errno=EAGAIN
  • Added better logging of the lost etw messages
  • Added constbuffer_array_batcher
  • Fixed check for lock in openssl
  • Added mbedtls support for httpapi curl
  • Added C18 compiler support.
  • Updated mbedtls to not send multiple complete messages for each send
  • Added BearSSL TLS adapter layer
  • Fixed mbed tls not to close the socket until the TLS layer notifies the peer of closure
  • Added constbufferarray_create_with_move_memory tests and code

uAMQP

  • Updated open complete to include a callback for error
  • Fixed open complete to not execute callback
  • Fixed error message on failed send
  • Fixed bug where Pending close was not getting turned off
  • Changed function to close the xio from dowork if needed
azure-iot-sdk-c - 2019-07-01

Published by ewertons about 5 years ago

C Device SDK

  • Exposed IoT Hub Client option OPTION_DO_WORK_FREQUENCY_IN_MS
  • Capped the maximum load of make build to 80% of number of CORES (Linux)
  • Fixed Base32/64 related calls in Unit and E2E tests (by Arthur Ma)
  • Fixed type of compileOption_C, compileOption_CXX, linkerOption in cmake files
  • Fixed AMQP transport to apply Product Info if modified after client creation
  • Internal build process improvements
  • Added tool for Uart interface control, applied to raspberry pi gated tests
  • Improved stability of Longhaul tests for Linux and Windows
azure-iot-sdk-c - 2019-05-16

Published by ewertons over 5 years ago

C Device SDK

  • Fix sas handling logic error (GitHub PR #972)
  • Fixed vcpkg for building using as toolchain (adds support for Linux builds using vcpkg)
  • Add the ability to use mbedTLS as tls layer for all platforms (GitHub PR #862)
  • Fixed potential memory leak bug in iothub_client_core_ll.c
  • Added internal support for SQM info in Windows platform (*_GetSupportedPlatformInfo)
  • Updated code to consume azure-c-shared-utility's renamed Azure_Base32
  • Added gate build to verify building with installed dependencies (re vcpkg deployment)
  • Implemented Provisioning Client custom payload (GitHub PR #984)
  • Added fix for GitHub issue #775 (twin/amqp not resubscribed after reconnection)
  • Added Device Twin service fault injection tests over AMQP
  • Reorganized code and added two separate submodules to the project (umock-c and azure-macro-utils-c)

C Shared Utility

  • Renamed base32/64 modules to azure_base32/64
  • Added support for gathering Windows SQM;
  • Added general fixes for building using installed dependencies;
  • Reorganized code and added two separate submodules to the project (umock-c and azure-macro-utils-c)

uAMQP

  • Added general fixes for building using installed dependencies;
  • Reorganized code and added two separate submodules to the project (umock-c and azure-macro-utils-c)

uMQTT

  • Added general fixes for building using installed dependencies;
  • Reorganized code and added two separate submodules to the project (umock-c and azure-macro-utils-c)
azure-iot-sdk-c - 2019-04-11-public-preview

Published by ewertons over 5 years ago

C Device SDK

  • Refactored iothubtransport_amqp_device module to remove name conflicts (GH #925)
  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)

C Shared Utility

  • Added SQM ID to platform_get_platform_info string
  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)

uMQTT

  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)

uAMQP

  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)
azure-iot-sdk-c - 2019-04-11

Published by ewertons over 5 years ago

C Device SDK

  • Refactored iothubtransport_amqp_device module to remove name conflicts (GH #925)
  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)

C Shared Utility

  • Added SQM ID to platform_get_platform_info string
  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)

uMQTT

  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)

uAMQP

  • Added macro-utils repo as submodule (internal use only)
  • Merged name changes from macro-utils (internal use only)
azure-iot-sdk-c - 2019-03-18

Published by massand over 5 years ago

C Device SDK

Update run_c_sdk_on_constrained_device.md (#890)
Remove 0xb character from comments (#880)
Rename buffer to azure buffer and update repos (#894)
Misc. Azure Dev Ops and Github template improvements
Enabled Edge E2E tests in the gate
Removed invalid character from comment on tpm file (#909)

C Shared Utility

Renamed Base64 utilities to avoid name conflicts

uMQTT

Moving the NULLing out of the transport into the close function

azure-iot-sdk-c - 2019-03-18-public-preview

Published by massand over 5 years ago

C Device SDK (public preview)

  • Added support on Azure IoT C SDK for public-preview of Distributed Tracing.
  • Added support on Azure IoT C SDK for public-preview of new telemetry APIs.
azure-iot-sdk-c - 2019-02-11

Published by massand over 5 years ago

C Device SDK

Checking that the sas token is not set to an invalid value (#857)
Adding provisioning documents (#854)
add sas support for service_client (#800)
fix mqtt connection log message (#853)
typo fix in dps samples (#836)
MQTT set connection callback for Retry Expired
Document correction for interval time of retry policies
Update http in preparation for code changes (#843)
Ensure mqtt does not refresh sas token when using x509 (#846)
add changes for retry expired callback
Setting symm key to be excluded in custom HSM (#844)
Update AMQP transport twin msgr to use CONSTBUFFER_IncRef/CONSTBUFFER_DecRef

azure-iot-sdk-c - 2019-01-31

Published by massand over 5 years ago

C Device SDK

Add GetTwinAsync function to C SDK
Update flags in provisioning custom hsm and http (#773)
Edge certs from env (#759)
Fixing issue #785 by making a local variable a part of the handle (#787)
ftell return type fix (#788)
Removed unused constant (#745)
[Doc.] - Added notes on using low level samples (#653)
Adding a Resource document to outline the current release (#802)
Remove redundant values (#778)
Rollback the change of the include path for iothub_auth_client.h (#805)
Update submodules and remove %zu (#808)
Fixing CONNACK failure on 32bit device (#816)
GetTwinAsync API fixes (#823)
Removing windows ce build for the repo (#824)
Setoption sleep timeout (#813)
Moving Sas lifetime into iothub_client_core from the transports. (#825)
Azure DevOps Testing Results (#830)
Fix amqp DPS reinitialize sas token (#828)
patch yaml to run on succeededorfailed (#833)
Remove redundant '..' in docs (#832)
Update readme for privacy disclaimer (#827)
Fix amqp sasl plain to route symm key messages (#834)

Shared Utility

Remove backticks from .c and .h files
Add ConstBuffer_CreateWithCustomFree
Add devdoc for constbuffer_array_append
Add constbuffer_array_append implementation
Add overflow check to constbuffer_array_append
Change constbuffer_array_append to more generalized constbuffer_array
Fix unittest memory leaks and compiler errors for older C compilers
remove \r\n (#250)
Make gballoc_XXX mockable
Add UUID_FORMAT_VALUES_OR_NULL to print UUID_T's that may be NULL
Replace %zu with %lu for mbed builds (#254)
Fix UUID_FORMAT_VALUES_OR_NULL to wrap uuid in parentheses
Fixed location of stnp.h for ESP32 Support (#184)
remove extraneous #else (#255)
Move memory_data to C shared utility
add sas support without changing APIs (#252)

uMQTT

changing mqtt %zu to %ld for mbed (#33)

azure-iot-sdk-c - 2019-01-22-public-preview

Published by ewertons over 5 years ago

C Device SDK (public preview)

  • Added support on Azure IoT C SDK for public-preview of Device Streaming.

vcpkg:
The Azure IoT C SDK vcpkg can be accessed through https://github.com/Microsoft/vcpkg.
Please follow the initial instructions for deploying the azure-iot-sdk-c vcpkg. To access the public-preview features please use the following syntax instead:

vcpkg install azure-iot-sdk-c[public-preview] 

and, if you wish to export the nuget packages,

vcpkg export azure-iot-sdk-c[public-preview] --nuget

apt-get:
Installing the apt packages for Azure IoT C SDK public preview can be achieved following these instructions, with the difference that the preview ppa address should be used:

sudo add-apt-repository ppa:aziotsdklinux/azureiot-preview
azure-iot-sdk-c - 2018-12-13

Published by jebrando almost 6 years ago

C Device SDK

  • Vcpkg cleanup (#767)
    • Add vcpkg setup instructions
    • Update docs
    • windowsce project removal and add vcpkg message in build failure warning
  • Initial upload to blob support for provisioning
  • Update certificate script to remove the password (#752)
  • Fix samples to link libraries in proper order
  • Fix issue when using e2e test with edge modules and not using provisioning client; there was an compiler failure
  • Fix for SLNativeRules defects
  • Adding DPS Symmetric Key ability to Iothub Provisioning client

Shared Utility

  • Add verification of trusted certs in memory to Windows
  • Support UNIX domain sockets in Windows RS5
  • Update token_string to fixed possible memory leak in failure case
azure-iot-sdk-c - 2018-11-20

Published by jebrando almost 6 years ago

C Device SDK

  • Update SDK sample to prepare for vcpkg use
  • Remove WoSign certificate from the trusted cert
  • Update edge client unittests
  • Fixing github issue #688 dealing with ack msg timeout
  • Fixing bugs with having internal as a included directory
  • github issue #394
  • Update Azure Sphere patches changes for sdk
  • github issue #663 Remove CRLF from unittest file
  • Enable WolfSSL to send trusted certificate when running E2E tests
  • Fix custom hsm bug that caused invalid header
  • Update MQTT transport to be more efficient
  • github issue fix for http_proxy struct
  • Fix mqtt disconnect so it's triggered in DoWork
  • Fix handle passed to unsub device method function in client core LL

Shared Utility

  • Addressed CR comments for constbuffer_array
  • Reordered waiting_thread_count++ and unlock so that ++ happen under the lock, removed interlocked functions as all touches are now under the lock. Also fixed error checking in Condition_Init as it related to CreateEvent, which should be compared against NULL to detect a failure.
  • Update rules to decay to C99 if C11 is not there
  • Fix candidate for MBED size_t build failure
  • Add support for flexible arrays in refcount
  • Use stub for HTTP proxy when SocketIO isnt enabled

uMQTT

  • ACR Add _getTopicLevels to mqttmessage
  • Add extra error checking on incoming PUBLISH
  • Update mqtt_message to enable code sharing
  • Adding enhancements to the repo for size and memory concerns
azure-iot-sdk-c - 2018-10-03

Published by massand about 6 years ago

Versions

Nuget: 1.2.10
apt-get Xenial: 0.2.0.0-12xenial
apt-get Trusty: 0.2.0.0-12trusty
apt-get Bionic: 0.2.0.0-5bionic

C Device SDK

  • Implemented dps symmetric key feature
  • Bug fix for HTTP Error Status
  • #628 Fixed integer overflow with message timeouts
  • #639 Fixed incorrect comment
  • Updated parson
  • Fixed DPS includes issue

uMQTT

  • Fix %zu format identifier

uAMQP

  • Moved message cleanup to sender close

Shared Utility

  • Added new, simplified string tokenizer
  • Added tests for mbedtls
  • Added head method for http compact client
  • Added handling of custom headers on uws_client UPGRADE request
  • Added Websocket URL parser
  • (https://github.com/Azure/azure-c-shared-utility/issues/187) support for building with VC++ 9.0
  • Fixed http compact cert no copy
  • Optimized Url Encoding
  • Updated mbed file to handle the failure from mbed
  • Added singlylinkedlist_add_head functionality
  • Fixed return value error found on iOS
  • Test improvements
  • Fixed const correctness in UUID_to_string
  • Fixed bug in cmake usePermissiveRulesForSamplesAndTests function to make more permissive
azure-iot-sdk-c - 2018-09-11

Published by jebrando about 6 years ago

Versions

Nuget: 1.2.9
apt-get Xenial: 0.2.0.0-11xenial
apt-get Trusty: 0.2.0.0-11trusty
apt-get Bionic: 0.2.0.0-4bionic

C Device SDK

  • Update security issue detailed in CVE-2018-8479
  • Fix twin subscription timing issue
  • Allow empty message to IoTHub in MQTT
  • Remove strcpy_s from code for different compilers
  • Enabled trusted certificates for service client messages
  • Issue github issue #607 Sending MQTT DISCONNECT Packet
  • Fixed Undefined allocation warnings
  • Fixing multiple issues discovered with clang static analyzer
  • Only enable curl_verbose if caller indicated
  • Fix Transient error bug in provisioning
  • Fix github issue #587: avoid new GCC 8.2 warning (s/strncpy/memcpy/)
  • Fix for DPS client throttling mechanism
  • Revert "Include header files outside the extern "C""
  • Handle error mapping for all cases
  • #564 DPS status not reflecting correct behavior
  • Removed IoTHubModuleClient_ModuleMethodResponse and assoc. LL function
  • Remove vestigal cmake options
  • Export protocol functions in dynamic build

uMQTT

  • Fix possible failure in PING
  • Issue #21 Compilation problem for mqtt_client.h in cpp

uAMQP

  • Add cast for %zu->%lu format conversion
  • Move indication of error'd messages in message_sender to work around bad consumers that would pull the rug from under message_sender
  • Include header files outside the extern "C" (fix for GitHub issue #577 in azure-iot-sdk-c)
  • Fix github issue #507 Unchecked values causing potentially uninitialized variables

Shared Utility

  • Fixed a potential bug with copying memory
  • Update dynamic build to have the correct name
  • New enum must come after existing
  • Add PRI_UUID print format specifier
  • Fixes for tls io modules
  • Save error code lest it be overwritten prior to log
  • Suppress warning C4244 for narrowing a wchar_t into a char
  • Rename UUID type to UUID_T to avoid collisions with Windows types
  • Add missing logging macro for non-Microsoft compilers
azure-iot-sdk-c - 2018-07-11

Published by ewertons over 6 years ago

Versions

Nuget: 1.2.8
Apt-get Xenial: 0.2.0.0-8xenial
Apt-get Trusty: 0.2.0-8trusty

C Device SDK

  • Added MethodInvoke to Modules
  • Added Modules support
  • Added Device Capabilities for Provisioning Service Client
  • Fixed warning suppressions for Ubuntu 18.04
  • Update Samples to use new Device Client module (renamed from iothub_client)
  • Added Connection and Messaging Reliability documentation
  • Fix to resend on http & mqtt DPS transient error
  • Added cleaner error messages and other minor fixes when using OpenSSL using VCPKG
  • Made explicit cast on agenttypesystem.c (Serializer) (github issue #556)
  • Moved OPTION_EVENT_SEND_TIMEOUT_SECS from amqp_common.h to client_options.h (github issue 552)
  • Fix powershell scripts for generation of Edge device certificates

uAMQP

  • Fixed AV when using multiple links and sessions with link redirect
  • Fixed Log chunk memory leak in message sender

Shared Utility

  • Updated wolfssl to not have an unprotected loop
  • Added Fix for Wolfssl updates
azure-iot-sdk-c - 2018-06-15

Published by ewertons over 6 years ago

Versions

Nuget: 1.2.5
Apt-get Xenial: 0.2.0.0-5xenial
Apt-get Trusty: 0.2.0-5trusty

C Device SDK

  • Added IoTHub_Init/DeInit to replace platform_init/deinit
  • Added Set/Get Property on Iothub Message
  • Reorganized iothub client headers into public and internal
  • Added iothub_client_device_twin_and_methods_sample to parse Twin without Serializer
  • Replaced Twin and Methods samples with iothub_client_device_twin_and_methods_sample
  • Allow externally defined heap functions (cmake flag GB_USE_CUSTOM_HEAP)
  • Moved IothubClient handle to IothubDeviceClient in e2e tests
  • Fix for Python GitHub issue #83: support Python 3.6 when building SDK
  • Fix E2E diagnostics to use portable string format (for 32/64 bit processors)
  • Update CACertificateOverview.md documentation to clarify proof of possession step
  • Update cmake to include installing parson when using installed components

uAMQP

  • Allow NULL source and target on link ATTACH frames that are received
  • Add missed set of DETACHING when a detach performative is received
  • Fix place for reading closed flag of detach frame
  • Add support for redirection
  • Allow externally defined custom heap functions

uMQTT

  • Allow externally defined custom heap functions

uHTTP

  • Add set_options() function
  • Allow externally defined custom heap functions
  • Made http headers case insensitive

uTPM

  • Added endpoint for tpm emulator
  • Allow externally defined custom heap functions

Shared Utility

  • Added unix domain sockets to socketio_berkeley (sys/un.h)
  • Added another flag to enable the clang build
  • Checking for NULL before closing CFReadStreamClose
  • Added detection of host closure on socket read
  • Allow use of externally defined custom heap functions
azure-iot-sdk-c - 2018-05-04

Published by jebrando over 6 years ago

Versions

Nuget: 1.2.4
Apt-get Xenial: 0.2.0.0-4xenial
Apt-get Trusty: 0.2.0-4trusty

C Device SDK

  • Update CMakeList.txt files to use multiple def files
  • Fixed Provisioning log trace
  • Add constrained device document detailing SDK
  • Adding Updated Third Party notice
  • cmake: Install parson library for upload to blob feature
  • If client is not connected (connecting times out) mqtt_client_dowork should not be called
  • Fixed CMakeLists to enforce C99

uAMQP

  • Fix amqp_definitions header not building properly in C++

uMQTT

  • Fixed segfault with variable that was not set to NULL

Shared Utility

  • Clear out variable structure
  • Move tlsio items to adapters
  • Openssl errors logged as errors, not info level
azure-iot-sdk-c - 2018-04-13

Published by cartertinney over 6 years ago

Versions

Nuget: 1.2.3
Apt-get Xenial: 0.2.0.0-3xenial
Apt-get Trusty: 0.2.0-3trusty

C Device SDK

  • Added automatic URL Encode/Decode option for MQTT
  • Set telemetry as the default iOS sample
  • Fixed shared objects
  • Fixed build failures for samples on Windows with OpenSSL
  • Added Custom HSM example along with docs
  • Fixed mbed build

C Service SDK

  • Added support for iOS

Shared Utility

  • Added URLDecode and URLDecodeString functions
  • Fixed a memory leak in urlencode.h unittests

Documentation

  • Fixed broken links in Provisioning Service Client sample documentation
azure-iot-sdk-c - 2018-04-02

Published by ewertons over 6 years ago

Versions

Nuget: 1.2.2
Apt-get Xenial: 0.2.0.0-2xenial
Apt-get Trusty: 0.2.0-2trusty

C Device SDK

  • MQTT_WS http over proxy reconnection fix (GitHub #264)
  • Fix return value that was not being set in provisioning client
  • Turn the native e2e test on for osx
  • Fix the apt-get sample to work with new package
  • Improve/clean IoTHub Client samples
  • Add new iothub client sample for c2d (iothub_ll_c2d_sample)
  • Added OpenSSL compatibility for provisioning client samples
  • Fix upload to blob Visual Studio projects

Shared Utility

  • Set default WinHttp timeout to 60s
  • Remove unused httpap_wininet.c
  • Update apple fix for openssl
  • Fixed error handling issue in the xio wsio and the x509 layers
  • Fixed curl use of x509 function
  • Add missing functions to dlls .def file

Documentation

  • Update devbox setup doc with instructions for curl on MacOS
  • Fix codeblock in iothubtransport_amqp_common_requirements.md
azure-iot-sdk-c - 2018-03-16

Published by jspaith over 6 years ago

Versions

Nuget: 1.2.1
Apt-get Xenial: 0.2.0.0-1xenial
Apt-get Trusty: 0.2.0-1trusty

C Device SDK

  • Updating provisioning regex for cmake
  • Wrap definitions in extern "C" where it was missed (#410)
  • Define enum strings to save everyone else from needing to do so (#411)
  • Use strict XCode build rules
  • Update dps e2e tests
  • Add DPS service bulk operation & query

Shared Utility

  • Update wolfssl with device id
  • Ensure device Id doesn't run on mbed
  • Remove device for mbed builds
  • Make XCode warnings with CMake match iOS builds
  • fix xcode warning
  • Fix a double free in tlsio_appleios
  • Copy hostname and port from socketio to tlsio config

Documentation

  • Rewrite large parts of C SDK readme.md and fix broken links
  • Use lower case naming in certificate sample (#405)
  • Update support links with newest contact info

uMQTT

  • Add will message fix for conn messages
  • Use strict XCode build rules

uAQMP

  • Add LogError in link.c
  • Use strict XCode warnings
  • Add AMQP_MANAGEMENT_STATE_CLOSING; do not raise error on on_message_sender_state_changed for CLOSING/IDLE states", 2018-03-15)
Package Rankings
Top 3.76% on Cocoapods.org
Top 7.59% on Alpine-edge
Top 26.52% on Conda-forge.org
Badges
Extracted from project README
Build Status
Related Projects