Skip to content
v0.12.0 (kinetic-protocol 3.0.5)
--------------------------------
* `KineticSession` is now supplied as an opaque instance pointer from `KineticClient_CreateSession`
    * Passed `KineticClientConfig` is now deep copied and can be discarded after session creation.
* Updated `KineticClient_Put` to allow storing an object with an empty value with a NULL data pointer supplied.
* Added new `KineticAdminClient` API (see `include/kinetic_admin_client.h`)
    * Reloacted existing admin methods to admin API
        * `KineticClient_InstantSecureErase` => `KineticAdminClient_InstantErase`/`KineticAdminClient_SecureErase`
        * `KineticClient_GetLog` => `KineticAdminClient_GetLog`/`KineticAdminClient_GetDeviceSpecificLog`
        * `KineticClient_FreeDeviceInfo` => `KineticAdminClient_LogInfo`
* Updated `kinetic-c-util` to support new Admin API. Still need to add support for printing info returned from `KineticAdminClient_GetLog`
* Changed `kinetic-c-util` API to use `getopt_long` for operations in addition to parameters and added usage info via `--help`/`-?` option.
* Fixed potential memory leak when logging protocol buffers.
* Fixed potential imbalance in concurrent operations semaphore.
* Status code changes
    * Changed
        * `KINETIC_STATUS_HMAC_EMPTY` => `KINETIC_STATUS_HMAC_REQUIRED`
    * Added
        * `KINETIC_STATUS_MISSING_PIN`
        * `KINETIC_STATUS_SSL_REQUIRED`
        * `KINETIC_STATUS_DEVICE_LOCKED`
        * `KINETIC_STATUS_ACL_ERROR`
        * `KINETIC_STATUS_NOT_AUTHORIZED`
        * `KINETIC_STATUS_INVALID_FILE`
        * `KINTEIC_STATUS_DEVICE_NAME_REQUIRED`
        * `KINETIC_STATUS_INVALID_LOG_TYPE`
        * `KINTEIC_STATUS_HMAC_FAILURE`
        * `KINETIC_STATUS_SESSION_TERMINATED`
* Set larger timeouts for operations that tend to take approx. 10 seconds, to prevent non-deterministic failures.
* API change: Eliminated KineticClientConfig.writerThreads, since sender threads are gone.
* Changed to use stock protobuf-c 1.1.0 which also necessitated upgade to protobuf-2.6.0.
* Added auto-generated version info which is prepended to log and can be queried via `KineticClient_Version()`
* Added support to gracefully handle remote hangup.
    * The session will be shutdown.
    * All pending/new operations will return `KINETIC_STATUS_SESSION_TERMINATED` and termination reason can be queried on the given session via `KineticClient_GetTerminationStatus(session)`.