Version History

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