Skip to content

2.7.6

Compare
Choose a tag to compare
@avsej avsej released this 12 Jul 10:43
· 974 commits to master since this release
2.7.6

API documentation: http://docs.couchbase.com/sdk-api/couchbase-c-client-2.7.6/

Changes

  • Expose enhanced errors for data commands. Couchbase Server 5 might return
    additional information about errors in the response body. According to
    SDK-RFC-28, the library allow user code to inspect this information using
    following functions:

    • lcb_resp_get_error_context(int, const lcb_RESPBASE *)
    • lcb_resp_get_error_ref(int, const lcb_RESPBASE *)

    They both return non-NULL strings if any of error information accessible.
    The lifetime of these fields limited by lifetime of the response object.

  • Report contextualized error messages during negotiation. The event reference
    could be used to find more details about authentication errors in the server
    logs.

  • Specify correct protocol level for SO_KEEPALIVE. This fixes setting
    tcp_keepalive option on connections.

  • Implement Error Map Retries. This implements the mechanics needed to retry
    commands on various errors based on dynamic settings supplied via the error map.

  • Add cluster admin provider. This provider doesn't do anything except serve
    as a source of management hostnames. And the library will fall back to it
    when bucket is not specified for cluster management connections.

  • Implement RBAC user management in cbc tools. In addition to examples/users,
    this can be a demonstration of new security APIs which appear in Couchbase
    Server 5.

  • Allow to inspect query errors in cbc-n1qlback. The command will write
    details for failed queries to file, specified with option --error-log.

  • Fix memory leak in io::Pool

  • Fix LCB_SDCMD_GET_FULLDOC. This would not actually work beforehand
    because the opcode it's mapped to is 0, and we used 0 as a sentinel
    value for an invalid opcode within the subdoc implementation.

  • Add LCB_NOT_AUTHORIZED error code. This error code maps to
    Memcached's EACCESS

  • Don't send empty Authorization header for HTTP requests, If there's
    no username and/or password

  • Internal refactoring:

    • io::Pool - remove empty dtor
    • Fix BadPluginEnvironment test on Fedora where libm.so is ld script
    • Add missing commands for cbc-help
  • Documentation update:

    • Add additional documentation for lcb_n1ql_cancel()
    • Typos