Version History

Version 3.2

Version 3.2.0 GA

  • Spelling errors in code fixed

  • IAM role credential functionality added

  • Fix macOS building

  • Define RTLD_DEFAULT for FreeBSD

  • Now pushes 301 response to bucket / endpoint mismatch to application

  • Fix MS3_OPT_FORCE_PROTOCOL_VERSION

  • Many fixes to build

  • Many fixes to things found with static analyzers and sanitizers

  • Allow for longer S3 secret keys

  • Add custom read callback mechanism

  • Add option to enable/disable debug

  • Allow setting of curl timeouts

  • Documentation updates

  • GitHub actions testing added

  • ms3_set_content_type() and ms3_get_content_type() added

Version 3.1

Version 3.1.3 GA

Version 3.1.2 GA

  • Make library work with quirks in Google Cloud’s S3 implementation

  • Detect when libcurl was built with OpenSSL < 1.1.0 and add workaround to thread safety issues in the older OpenSSL versions (affects Ubuntu 16.04 in particular)

  • Remove libxml and replace it with a modified version of xml.c which handles <? ?> tags and other minor changes

  • Fix issue where an empty key for ms3_get() turns it into a list call

  • Partially fix issue with AC_MSG_ERROR. Will still fail if you don’t have libtool and pkg-config installed.

Version 3.1.1 GA (2019-06-28)

  • Fix bad host header when path based buckets are used

  • Make autodetection of access type and list version much smarter:

    • Checks for S3 domain in provided domain and uses list version 2

    • Checks for IP provided domain and turns on list version 1 and path based buckets

    • Any other domain uses list version one and domain based buckets

  • Reduced linked list mallocs for ms3_list() and ms3_list_dir(). This also deprecates ms3_list_free().

Version 3.1.0 GA (2019-06-24)

  • Fix compiling issues when -Wdeclaration-after-statement is enabled

  • Add MS3_OPT_FORCE_PROTOCOL_VERSION for use with ms3_set_option() which will force use of AWS S3 methods and paths (version 2) or compatible methods and paths (version 1)

  • Fix double-free upon certain errors

  • Add snowman UTF-8 test and minor cleanups

  • Cleanup build system

Version 3.0

Version 3.0.2 GA (2019-05-24)

  • Fix libm linkage

  • Remove mhash dependency and use a modified cut-down version of wpa_supplicant’s BSD licensed crypto code (required for Windows compiling)

  • Several minor performance optimizations

    • Removed 2x1kb mallocs on every request (now on ms3_init() instead)

    • Compiling with -O3 by default

    • Stop executing string compares in list loop when something is found

    • Remove unneeded strdup() usage

Version 3.0.1 GA (2019-05-16)

  • Improve performance of PUT

  • Fix a few potential pointer arithmatic issues

  • Fix race condition on time generation

  • Added TSAN to ci-scripts

  • Fix minor issues found in cppcheck

  • Stop buffer overrun if the buffer chunk size is set smaller than packet

  • Fix ms3_get() returning random data if a CURL request completely fails

  • Fix potential crash if the server error message is junk

  • Fix double-free if a server error message is NULL

Version 3.0.0 GA (2019-05-13)

  • Allow compiling to work with gnu89 compiler mode

  • Fix building in CLang

  • Removed previous deprecated ms3_thread_init and ms3_buffer_chunk_size

  • Remove bool from frontend API by:

Version 2.3

Version 2.3.0 GA (2019-05-07)

  • Allow compiling with a C++ compiler

  • Fix logic error in ms3_move()

  • Stop ms3_get() returning the error message as the object data on error

  • Add ms3_list_dir() to get a non-recursive directory listing

  • Setting the buffer chunk size using ms3_buffer_chunk_size or ms3_set_option() no longer has a lower limit of 1MB

Version 2.2

Version 2.2.0 GA (2019-04-23)

Version 2.1

Version 2.1.1 GA (2019-04-02)

  • Remove iso646.h support in codebase

  • Autoswitch to bucket path instead of bucket domain access method (for IP urls)

  • Fixed issue with SSL disabled verification

  • Fixed minor leak when base_domain is set

  • Add S3NOVERIFY env var to tests which will disable SSL verification when set to 1

Version 2.1.0 GA (2019-03-29)

  • Add ms3_set_option() to set various connection options

  • Deprecated ms3_buffer_chunk_size, use ms3_set_option() instead

  • Added options to use http instead of https and to disable SSL verification

  • Added debugging output for server/curl error messages

  • Added compatibility for V1 bucket list API. Will turn on automatically for non-Amazon S3 compatible servers. Additionally an option has been created to force V1 or V2

Version 2.0

Version 2.0.0 GA (2019-03-28)

  • Fix double-free when using ms3_thread_init and an error occurs

  • Fix error when a PUT >= 65535 is attempted

  • Improve performance of GET for large files

  • Make ms3_thread_init treat empty string base_domain as NULL

  • Add ms3_free()

  • Add ms3_buffer_chunk_size

  • Cleanup linking

  • Removed ms3_init

  • Added ms3_server_error() to get the last server or Curl error

Version 1.1

Version 1.1.0 GA (2019-03-27)

  • Fix memory leak in libxml2 function usage

  • Fix memory leaks in libcurl usage

  • Fix test collisions causing failures

  • Added ms3_library_init() and ms3_thread_init for higher-performance acceses

Version 1.0

Version 1.0.1 RC (2019-03-26)

  • Fixed issues found with valgrind, cppcheck and scanbuild

  • Added RPM & DEB build systems

  • Fixed pagination calls for ms3_list() so it support > 1000 objects

  • Made ms3_init() thread safe

Version 1.0.0 Beta (2019-03-25)

  • Initial Beta version