libcouchbase 0.3.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/libcouchbase/CMakeLists.txt +6 -8
- data/ext/libcouchbase/README.markdown +2 -2
- data/ext/libcouchbase/RELEASE_NOTES.markdown +229 -2
- data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +11 -0
- data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +18 -0
- data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +3 -2
- data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +3 -3
- data/ext/libcouchbase/cmake/config-cmake.h.in +4 -0
- data/ext/libcouchbase/cmake/defs.mk.in +0 -2
- data/ext/libcouchbase/cmake/source_files.cmake +21 -5
- data/ext/libcouchbase/contrib/cJSON/cJSON.c +1 -1
- data/ext/libcouchbase/contrib/cbsasl/src/client.c +2 -0
- data/ext/libcouchbase/example/users/README +48 -0
- data/ext/libcouchbase/example/users/users.c +147 -0
- data/ext/libcouchbase/include/libcouchbase/auth.h +175 -31
- data/ext/libcouchbase/include/libcouchbase/cntl.h +82 -1
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +45 -3
- data/ext/libcouchbase/include/libcouchbase/error.h +19 -1
- data/ext/libcouchbase/include/libcouchbase/iops.h +3 -0
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +31 -1
- data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +4 -1
- data/ext/libcouchbase/include/libcouchbase/subdoc.h +36 -2
- data/ext/libcouchbase/include/libcouchbase/views.h +7 -1
- data/ext/libcouchbase/include/libcouchbase/visibility.h +1 -0
- data/ext/libcouchbase/include/memcached/protocol_binary.h +24 -1146
- data/ext/libcouchbase/packaging/parse-git-describe.pl +1 -1
- data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +3 -2
- data/ext/libcouchbase/src/README.md +0 -2
- data/ext/libcouchbase/src/auth-priv.h +23 -4
- data/ext/libcouchbase/src/auth.cc +51 -43
- data/ext/libcouchbase/src/bootstrap.cc +244 -0
- data/ext/libcouchbase/src/bootstrap.h +58 -38
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +120 -158
- data/ext/libcouchbase/src/bucketconfig/bc_file.cc +281 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.cc +526 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.h +50 -25
- data/ext/libcouchbase/src/bucketconfig/bc_static.cc +150 -0
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +410 -386
- data/ext/libcouchbase/src/bucketconfig/confmon.cc +393 -0
- data/ext/libcouchbase/src/cbft.cc +22 -27
- data/ext/libcouchbase/src/cntl.cc +56 -22
- data/ext/libcouchbase/src/connspec.cc +47 -6
- data/ext/libcouchbase/src/connspec.h +27 -0
- data/ext/libcouchbase/src/dns-srv.cc +147 -0
- data/ext/libcouchbase/src/dump.cc +3 -3
- data/ext/libcouchbase/src/errmap.cc +173 -0
- data/ext/libcouchbase/src/errmap.h +198 -0
- data/ext/libcouchbase/src/getconfig.cc +7 -33
- data/ext/libcouchbase/src/handler.cc +118 -7
- data/ext/libcouchbase/src/hostlist.cc +0 -36
- data/ext/libcouchbase/src/hostlist.h +44 -62
- data/ext/libcouchbase/src/http/http-priv.h +125 -112
- data/ext/libcouchbase/src/http/http.cc +27 -35
- data/ext/libcouchbase/src/http/http.h +1 -34
- data/ext/libcouchbase/src/http/http_io.cc +28 -36
- data/ext/libcouchbase/src/instance.cc +131 -34
- data/ext/libcouchbase/src/internal.h +58 -26
- data/ext/libcouchbase/src/jsparse/parser.cc +136 -210
- data/ext/libcouchbase/src/jsparse/parser.h +84 -98
- data/ext/libcouchbase/src/lcbht/lcbht.cc +177 -0
- data/ext/libcouchbase/src/lcbht/lcbht.h +174 -163
- data/ext/libcouchbase/src/lcbio/connect.cc +569 -0
- data/ext/libcouchbase/src/lcbio/connect.h +16 -7
- data/ext/libcouchbase/src/lcbio/ctx.c +1 -1
- data/ext/libcouchbase/src/lcbio/iotable.h +101 -16
- data/ext/libcouchbase/src/lcbio/{ioutils.c → ioutils.cc} +30 -51
- data/ext/libcouchbase/src/lcbio/ioutils.h +29 -90
- data/ext/libcouchbase/src/lcbio/manager.cc +543 -0
- data/ext/libcouchbase/src/lcbio/manager.h +133 -96
- data/ext/libcouchbase/src/lcbio/protoctx.c +2 -2
- data/ext/libcouchbase/src/lcbio/timer-cxx.h +87 -0
- data/ext/libcouchbase/src/mc/mcreq.c +11 -2
- data/ext/libcouchbase/src/mc/mcreq.h +9 -2
- data/ext/libcouchbase/src/mcserver/mcserver.cc +175 -43
- data/ext/libcouchbase/src/mcserver/mcserver.h +9 -13
- data/ext/libcouchbase/src/mcserver/negotiate.cc +181 -62
- data/ext/libcouchbase/src/mcserver/negotiate.h +1 -3
- data/ext/libcouchbase/src/mctx-helper.h +51 -0
- data/ext/libcouchbase/src/n1ql/ixmgmt.cc +1 -2
- data/ext/libcouchbase/src/n1ql/n1ql.cc +74 -42
- data/ext/libcouchbase/src/netbuf/netbuf.c +4 -4
- data/ext/libcouchbase/src/newconfig.cc +6 -6
- data/ext/libcouchbase/src/nodeinfo.cc +2 -2
- data/ext/libcouchbase/src/operations/{cbflush.c → cbflush.cc} +7 -15
- data/ext/libcouchbase/src/operations/{counter.c → counter.cc} +0 -0
- data/ext/libcouchbase/src/operations/durability.cc +6 -26
- data/ext/libcouchbase/src/operations/durability_internal.h +6 -3
- data/ext/libcouchbase/src/operations/{get.c → get.cc} +24 -26
- data/ext/libcouchbase/src/operations/{observe.c → observe.cc} +68 -93
- data/ext/libcouchbase/src/operations/{pktfwd.c → pktfwd.cc} +0 -0
- data/ext/libcouchbase/src/operations/{remove.c → remove.cc} +0 -0
- data/ext/libcouchbase/src/operations/stats.cc +3 -8
- data/ext/libcouchbase/src/operations/{store.c → store.cc} +27 -32
- data/ext/libcouchbase/src/operations/subdoc.cc +129 -42
- data/ext/libcouchbase/src/operations/{touch.c → touch.cc} +0 -0
- data/ext/libcouchbase/src/packetutils.h +30 -2
- data/ext/libcouchbase/src/probes.d +1 -1
- data/ext/libcouchbase/src/rdb/rope.c +1 -1
- data/ext/libcouchbase/src/{retrychk.c → retrychk.cc} +2 -3
- data/ext/libcouchbase/src/retryq.cc +52 -14
- data/ext/libcouchbase/src/retryq.h +3 -3
- data/ext/libcouchbase/src/settings.c +5 -0
- data/ext/libcouchbase/src/settings.h +11 -0
- data/ext/libcouchbase/src/ssl/ssl_c.c +1 -0
- data/ext/libcouchbase/src/ssl/ssl_common.c +2 -0
- data/ext/libcouchbase/src/ssl/ssl_e.c +0 -1
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +1 -1
- data/ext/libcouchbase/src/trace.h +4 -4
- data/ext/libcouchbase/src/vbucket/vbucket.c +6 -10
- data/ext/libcouchbase/src/views/{docreq.c → docreq.cc} +48 -54
- data/ext/libcouchbase/src/views/docreq.h +24 -30
- data/ext/libcouchbase/src/views/viewreq.cc +318 -0
- data/ext/libcouchbase/src/views/viewreq.h +43 -13
- data/ext/libcouchbase/tests/basic/t_connstr.cc +88 -50
- data/ext/libcouchbase/tests/basic/t_creds.cc +47 -5
- data/ext/libcouchbase/tests/basic/t_host.cc +67 -75
- data/ext/libcouchbase/tests/basic/t_jsparse.cc +27 -82
- data/ext/libcouchbase/tests/basic/t_misc.cc +1 -1
- data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +0 -1
- data/ext/libcouchbase/tests/htparse/t_basic.cc +58 -78
- data/ext/libcouchbase/tests/ioserver/connection.cc +1 -1
- data/ext/libcouchbase/tests/ioserver/ioserver.cc +19 -6
- data/ext/libcouchbase/tests/iotests/mock-environment.cc +28 -2
- data/ext/libcouchbase/tests/iotests/mock-environment.h +51 -1
- data/ext/libcouchbase/tests/iotests/t_behavior.cc +1 -7
- data/ext/libcouchbase/tests/iotests/t_confmon.cc +97 -115
- data/ext/libcouchbase/tests/iotests/t_durability.cc +0 -1
- data/ext/libcouchbase/tests/iotests/t_eerrs.cc +119 -0
- data/ext/libcouchbase/tests/iotests/t_errmap.cc +178 -0
- data/ext/libcouchbase/tests/iotests/t_misc.cc +3 -3
- data/ext/libcouchbase/tests/iotests/t_netfail.cc +1 -1
- data/ext/libcouchbase/tests/iotests/t_obseqno.cc +0 -1
- data/ext/libcouchbase/tests/iotests/t_subdoc.cc +18 -11
- data/ext/libcouchbase/tests/mc/t_alloc.cc +9 -9
- data/ext/libcouchbase/tests/socktests/socktest.cc +7 -10
- data/ext/libcouchbase/tests/socktests/socktest.h +2 -3
- data/ext/libcouchbase/tests/socktests/t_basic.cc +6 -6
- data/ext/libcouchbase/tests/socktests/t_manager.cc +5 -6
- data/ext/libcouchbase/tests/socktests/t_ssl.cc +1 -1
- data/ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json +2562 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json +31 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +35 -5
- data/ext/libcouchbase/tools/CMakeLists.txt +2 -2
- data/ext/libcouchbase/tools/cbc-handlers.h +128 -0
- data/ext/libcouchbase/tools/cbc-n1qlback.cc +64 -10
- data/ext/libcouchbase/tools/cbc-pillowfight.cc +2 -2
- data/ext/libcouchbase/tools/cbc.cc +143 -10
- data/ext/libcouchbase/tools/docgen/loc.h +1 -1
- data/lib/libcouchbase/connection.rb +4 -3
- data/lib/libcouchbase/version.rb +1 -1
- metadata +37 -28
- data/ext/libcouchbase/include/memcached/vbucket.h +0 -42
- data/ext/libcouchbase/src/bootstrap.c +0 -269
- data/ext/libcouchbase/src/bucketconfig/bc_file.c +0 -347
- data/ext/libcouchbase/src/bucketconfig/bc_http.c +0 -630
- data/ext/libcouchbase/src/bucketconfig/bc_mcraw.c +0 -150
- data/ext/libcouchbase/src/bucketconfig/confmon.c +0 -474
- data/ext/libcouchbase/src/lcbht/lcbht.c +0 -282
- data/ext/libcouchbase/src/lcbio/connect.c +0 -557
- data/ext/libcouchbase/src/lcbio/manager.c +0 -584
- data/ext/libcouchbase/src/packetutils.c +0 -37
- data/ext/libcouchbase/src/simplestring.c +0 -211
- data/ext/libcouchbase/src/simplestring.h +0 -228
- data/ext/libcouchbase/src/ssobuf.h +0 -82
- data/ext/libcouchbase/src/views/viewreq.c +0 -358
- data/ext/libcouchbase/tests/basic/t_string.cc +0 -112
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5b03238b1f0df8df19845655e411bf25ae979db6
|
|
4
|
+
data.tar.gz: 6eb8fafcf9034065fc808872a9e0355ed1e2bd84
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 18caa5677e2311da9b67c11cf914308e23ef1af4fcf792cbaa84f43027a0b1b08056a0010a3ae652587b0603de62296ce59958c9ff45cbbf13a146deb0adc389
|
|
7
|
+
data.tar.gz: 2d553e956bba44dab297bb838b022adaf99e5831f0502ef306346431c0c46ec641c96b7ffcae4d76f6b4774a4eae6ad7b44fe1de1fa5b6590986643aba461e8a
|
|
@@ -21,7 +21,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
|
|
|
21
21
|
# These variables can be modified as needed
|
|
22
22
|
|
|
23
23
|
# Couchbase mock path to download
|
|
24
|
-
SET(COUCHBASE_MOCK_VERSION CouchbaseMock-
|
|
24
|
+
SET(COUCHBASE_MOCK_VERSION CouchbaseMock-LATEST.jar)
|
|
25
25
|
# Maven repository where ${COUCHBASE_MOCK_VERSION} is to be found
|
|
26
26
|
SET(COUCHBASE_MOCK_DLSERVER http://packages.couchbase.com/clients/c/mock)
|
|
27
27
|
project(libcouchbase)
|
|
@@ -151,12 +151,12 @@ IF(WIN32)
|
|
|
151
151
|
ADD_DEFINITIONS(-DWINVER=${NT_REQUIRED_VERSION})
|
|
152
152
|
ADD_DEFINITIONS(-D_WIN32_WINNT=${NT_REQUIRED_VERSION})
|
|
153
153
|
SET(lcb_plat_includes "${SOURCE_ROOT}/contrib/win32-defs")
|
|
154
|
-
SET(lcb_plat_libs ws2_32.lib)
|
|
154
|
+
SET(lcb_plat_libs ws2_32.lib dnsapi.lib)
|
|
155
155
|
SET(lcb_plat_objs $<TARGET_OBJECTS:couchbase_iocp>)
|
|
156
156
|
ELSE()
|
|
157
157
|
SET(lcb_plat_libs m)
|
|
158
158
|
IF(NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
|
159
|
-
SET(lcb_plat_libs ${lcb_plat_libs} dl)
|
|
159
|
+
SET(lcb_plat_libs ${lcb_plat_libs} dl resolv)
|
|
160
160
|
ELSE()
|
|
161
161
|
# BSD _and_ DTrace
|
|
162
162
|
IF(LCB_BUILD_DTRACE)
|
|
@@ -205,6 +205,7 @@ ADD_LIBRARY(netbuf-malloc OBJECT ${LCB_NETBUF_SRC})
|
|
|
205
205
|
ADD_LIBRARY(mcreq OBJECT ${LCB_MC_SRC})
|
|
206
206
|
ADD_LIBRARY(rdb OBJECT ${LCB_RDB_SRC})
|
|
207
207
|
ADD_LIBRARY(lcbio OBJECT ${LCB_IO_SRC})
|
|
208
|
+
ADD_LIBRARY(lcbio-cxx OBJECT ${LCB_IO_CXXSRC})
|
|
208
209
|
ADD_LIBRARY(lcbht OBJECT ${LCB_HT_SRC})
|
|
209
210
|
ADD_LIBRARY(lcbcore OBJECT ${LCB_CORE_SRC})
|
|
210
211
|
ADD_LIBRARY(lcbcore-cxx OBJECT ${LCB_CORE_CXXSRC})
|
|
@@ -214,6 +215,7 @@ LCB_UTIL(netbuf-malloc)
|
|
|
214
215
|
LCB_UTIL(netbuf)
|
|
215
216
|
LCB_UTIL(rdb)
|
|
216
217
|
LCB_UTIL(lcbio)
|
|
218
|
+
LCB_CXXUTIL(lcbio-cxx)
|
|
217
219
|
LCB_UTIL(couchbase_utils)
|
|
218
220
|
LCB_UTIL(mcreq)
|
|
219
221
|
LCB_UTIL(lcbht)
|
|
@@ -245,10 +247,6 @@ IF(NOT WIN32 AND LCB_BUILD_DTRACE)
|
|
|
245
247
|
INCLUDE(cmake/Modules/ConfigureDtrace.cmake)
|
|
246
248
|
ENDIF()
|
|
247
249
|
|
|
248
|
-
FILE(GLOB LCB_VIEWS_C_SRC src/views/*.c)
|
|
249
|
-
ADD_LIBRARY(lcb_views_c OBJECT ${LCB_VIEWS_C_SRC})
|
|
250
|
-
LCB_UTIL(lcb_views_c)
|
|
251
|
-
|
|
252
250
|
FILE(GLOB LCB_JSPARSE_SRC src/jsparse/*.cc)
|
|
253
251
|
ADD_LIBRARY(lcb_jsparse OBJECT ${LCB_JSPARSE_SRC})
|
|
254
252
|
LCB_CXXUTIL(lcb_jsparse)
|
|
@@ -261,11 +259,11 @@ SET(LCB_CORE_OBJS
|
|
|
261
259
|
$<TARGET_OBJECTS:netbuf>
|
|
262
260
|
$<TARGET_OBJECTS:cbsasl>
|
|
263
261
|
$<TARGET_OBJECTS:lcbio>
|
|
262
|
+
$<TARGET_OBJECTS:lcbio-cxx>
|
|
264
263
|
$<TARGET_OBJECTS:rdb>
|
|
265
264
|
$<TARGET_OBJECTS:lcbht>
|
|
266
265
|
$<TARGET_OBJECTS:lcbcore>
|
|
267
266
|
$<TARGET_OBJECTS:lcbcore-cxx>
|
|
268
|
-
$<TARGET_OBJECTS:lcb_views_c>
|
|
269
267
|
$<TARGET_OBJECTS:lcb_jsparse>
|
|
270
268
|
$<TARGET_OBJECTS:lcb_jsoncpp>
|
|
271
269
|
${LCB_DTRACE_OBJECT}
|
|
@@ -78,7 +78,7 @@ If you wish to link against OpenSSL, you should set the value of
|
|
|
78
78
|
|
|
79
79
|
## Bugs, Support, Issues
|
|
80
80
|
You may report issues in the library in our issue tracked at
|
|
81
|
-
<
|
|
81
|
+
<https://issues.couchbase.com>. Sign up for an account and file an issue
|
|
82
82
|
against the _Couchbase C Client Library_ project.
|
|
83
83
|
|
|
84
84
|
The developers of the library hang out in IRC on `#libcouchbase` on
|
|
@@ -95,7 +95,7 @@ irc.freenode.net.
|
|
|
95
95
|
* [PHP](http://github.com/couchbase/php-couchbase) (uses the old < 2.6 API)
|
|
96
96
|
* Community projects using libcouchbase
|
|
97
97
|
* [C++11 wrapper](https://github.com/couchbaselabs/libcouchbase-cxx)
|
|
98
|
-
* [cberl - Couchbase NIF](https://github.com/
|
|
98
|
+
* [cberl - Couchbase NIF](https://github.com/wcummings/cberl)
|
|
99
99
|
* [Perl client](https://github.com/mnunberg/perl-Couchbase-Client)
|
|
100
100
|
|
|
101
101
|
## Documentation
|
|
@@ -1,5 +1,234 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## 2.7.6 (July 11 2017)
|
|
4
|
+
|
|
5
|
+
* Expose enhanced errors for data commands. Couchbase Server 5 might return
|
|
6
|
+
additional information about errors in the response body. According to
|
|
7
|
+
SDK-RFC-28, the library allow user code to inspect this information using
|
|
8
|
+
following functions:
|
|
9
|
+
|
|
10
|
+
* `lcb_resp_get_error_context(int, const lcb_RESPBASE *)`
|
|
11
|
+
* `lcb_resp_get_error_ref(int, const lcb_RESPBASE *)`
|
|
12
|
+
|
|
13
|
+
They both return non-NULL strings if any of error information accessible.
|
|
14
|
+
The lifetime of these fields limited by lifetime of the response object.
|
|
15
|
+
* Issues: [CCBC-781](https://issues.couchbase.com/browse/CCBC-781)
|
|
16
|
+
|
|
17
|
+
* Report contextualized error messages during negotiation. The event reference
|
|
18
|
+
could be used to find more details about authentication errors in the server
|
|
19
|
+
logs.
|
|
20
|
+
* Issues: [CCBC-780](https://issues.couchbase.com/browse/CCBC-780)
|
|
21
|
+
|
|
22
|
+
* Specify correct protocol level for `SO_KEEPALIVE`. This fixes setting
|
|
23
|
+
`tcp_keepalive` option on connections.
|
|
24
|
+
* Issues: [CCBC-798](https://issues.couchbase.com/browse/CCBC-798)
|
|
25
|
+
|
|
26
|
+
* Implement Error Map Retries. This implements the mechanics needed to retry
|
|
27
|
+
commands on various errors based on dynamic settings supplied via the error map.
|
|
28
|
+
* Issues: [CCBC-783](https://issues.couchbase.com/browse/CCBC-783)
|
|
29
|
+
|
|
30
|
+
* Add cluster admin provider. This provider doesn't do anything except serve
|
|
31
|
+
as a source of management hostnames. And the library will fall back to it
|
|
32
|
+
when bucket is not specified for cluster management connections.
|
|
33
|
+
* Issues: [CCBC-797](https://issues.couchbase.com/browse/CCBC-797)
|
|
34
|
+
|
|
35
|
+
* Implement RBAC user management in cbc tools. In addition to `examples/users`,
|
|
36
|
+
this can be a demonstration of new security APIs which appear in Couchbase
|
|
37
|
+
Server 5.
|
|
38
|
+
* Issues: [CCBC-757](https://issues.couchbase.com/browse/CCBC-757)
|
|
39
|
+
|
|
40
|
+
* Allow to inspect query errors in `cbc-n1qlback`. The command will write
|
|
41
|
+
details for failed queries to file, specified with option `--error-log`.
|
|
42
|
+
|
|
43
|
+
* Fix memory leak in io::Pool
|
|
44
|
+
* Issues: [CCBC-791](https://issues.couchbase.com/browse/CCBC-791)
|
|
45
|
+
|
|
46
|
+
* Fix `LCB_SDCMD_GET_FULLDOC`. This would not actually work beforehand
|
|
47
|
+
because the opcode it's mapped to is 0, and we used 0 as a sentinel
|
|
48
|
+
value for an invalid opcode within the subdoc implementation.
|
|
49
|
+
* Issues: [CCBC-792](https://issues.couchbase.com/browse/CCBC-792)
|
|
50
|
+
|
|
51
|
+
* Add LCB_NOT_AUTHORIZED error code. This error code maps to
|
|
52
|
+
Memcached's EACCESS
|
|
53
|
+
|
|
54
|
+
* Don't send empty Authorization header for HTTP requests, If there's
|
|
55
|
+
no username and/or password
|
|
56
|
+
* Issues: [CCBC-789](https://issues.couchbase.com/browse/CCBC-789)
|
|
57
|
+
|
|
58
|
+
* Internal refactoring:
|
|
59
|
+
- `io::Pool` - remove empty dtor
|
|
60
|
+
- Fix `BadPluginEnvironment` test on Fedora where libm.so is ld script
|
|
61
|
+
- Add missing commands for `cbc-help`
|
|
62
|
+
|
|
63
|
+
* Documentation update:
|
|
64
|
+
- Add additional documentation for `lcb_n1ql_cancel()`
|
|
65
|
+
- Typos
|
|
66
|
+
|
|
67
|
+
## 2.7.5 (May 17 2017)
|
|
68
|
+
|
|
69
|
+
* Allow to disable sending the `HELLO` command when connecting to a server.
|
|
70
|
+
Sending `HELLO` will cause a bootstrap failure with Couchbase Server 2.0 and
|
|
71
|
+
older.
|
|
72
|
+
* Issues: [CCBC-786](https://issues.couchbase.com/browse/CCBC-786)
|
|
73
|
+
|
|
74
|
+
* Fix error return value on reprepared query.
|
|
75
|
+
Previously an error was returned if a N1QL query was reprepared, because
|
|
76
|
+
the prior internal failure status was not updated.
|
|
77
|
+
* Issues: [CCBC-782](https://issues.couchbase.com/browse/CCBC-782)
|
|
78
|
+
|
|
79
|
+
* Check for more N1QL error strings indicating the need to reprepare a statement.
|
|
80
|
+
|
|
81
|
+
* Fix uninitialized memory issue when initializing `lcb::Server` and `mc_PIPELINE`
|
|
82
|
+
|
|
83
|
+
* Couchbase 5.0 additions for Subdocument.
|
|
84
|
+
This adds new protocol extensions for Couchbase 5.0. This consists of:
|
|
85
|
+
* New `LCB_SDCMD_SET_FULLDOC` and `LCB_SDCMD_GET_FULLDOC` for full-doucument
|
|
86
|
+
gets and sets via the subdoc API. This allows to access xattrs atomically
|
|
87
|
+
with the document body.
|
|
88
|
+
* New 'document flags'. These are in the form of `LCB_CMDSUBDOC_F_`.
|
|
89
|
+
* Issues: [CCBC-774](https://issues.couchbase.com/browse/CCBC-774)
|
|
90
|
+
|
|
91
|
+
* Fix bug where CCCP subsystem would be suspended indefinitely.
|
|
92
|
+
CCCP subsystem would hang if an error was received for the config request
|
|
93
|
+
itself.
|
|
94
|
+
* Issues: [CCBC-779](https://issues.couchbase.com/browse/CCBC-779)
|
|
95
|
+
|
|
96
|
+
* Fix bootstrap with `LCB_TYPE_CLUSTER`. Previously bootstrap would fail because
|
|
97
|
+
the client would not send proper credentials. Note that at this point, the
|
|
98
|
+
`default` bucket must still exist.
|
|
99
|
+
* Issues: [CCBC-778](https://issues.couchbase.com/browse/CCBC-778)
|
|
100
|
+
|
|
101
|
+
* Ignore empty DNS SRV replies.
|
|
102
|
+
Some buggy DNS configurations return positive replies to SRV queries, but
|
|
103
|
+
without actually containing any kind of A record as a response.
|
|
104
|
+
* Issues: [CCBC-776](https://issues.couchbase.com/browse/CCBC-776)
|
|
105
|
+
|
|
106
|
+
* Enable background polling for configuration changes.
|
|
107
|
+
This allows the client to periodically poll for configuration changes. This
|
|
108
|
+
feature is disabled by default. You can use the `config_poll_interval`
|
|
109
|
+
setting to enable it in the connection string.
|
|
110
|
+
* Issues: [CCBC-627](https://issues.couchbase.com/browse/CCBC-627)
|
|
111
|
+
|
|
112
|
+
* Enable TCP Keepalive for newly created sockets.
|
|
113
|
+
Newly created sockets have TCP keepalive enabled in order to avoid firewalls
|
|
114
|
+
breaking connections due to inactivity. TCP Keepalive does not yet work for
|
|
115
|
+
the libuv plugin (e.g. nodejs).
|
|
116
|
+
You can use the `tcp_keepalive=false` directive in the connection string
|
|
117
|
+
to disable it.
|
|
118
|
+
* Issues: [CCBC-690](https://issues.couchbase.com/browse/CCBC-690)
|
|
119
|
+
|
|
120
|
+
## 2.7.4 (April 18 2017)
|
|
121
|
+
|
|
122
|
+
* Send `SELECT_BUCKET` command by default if server supports it. This enables
|
|
123
|
+
new-style 'RBAC' authentication by default. In 2.7.3 users were required to
|
|
124
|
+
use `select_bucket=true` in the connection string to enable this feature.
|
|
125
|
+
In this version, the option is still available but is now mainly useful to
|
|
126
|
+
disable it.
|
|
127
|
+
|
|
128
|
+
* Improve `lcb_AUTHENTICATOR` API. This provides better documentation and some
|
|
129
|
+
API/design/implementation fixes to the authenticator interface. The
|
|
130
|
+
authenticator may be useful for integrators/wrappers who wish to correlate
|
|
131
|
+
multiple credentials with their buckets.
|
|
132
|
+
Note that the use of `lcb_AUTHENTICATOR` is *not* required for RBAC support.
|
|
133
|
+
In order to use RBAC, simply make use of the `username` field in
|
|
134
|
+
the `lcb_create_st` struct, or the `username` parameter in the connection
|
|
135
|
+
string.
|
|
136
|
+
* Issues: [CCBC-751](https://issues.couchbase.com/browse/CCBC-751)
|
|
137
|
+
|
|
138
|
+
* Fix bug where `lcb_get_server_list()` would return NULL.
|
|
139
|
+
* Issues: [CCBC-764](https://issues.couchbase.com/browse/CCBC-764)
|
|
140
|
+
|
|
141
|
+
* Fix bug where client would not recover from failover. Clients from version
|
|
142
|
+
2.7.1 through 2.7.3 would not obtain a new cluster map after a node had
|
|
143
|
+
been failed over (e.g. by hitting the "fail over" button in the UI).
|
|
144
|
+
* Issues: [CCBC-761](https://issues.couchbase.com/browse/CCBC-761)
|
|
145
|
+
|
|
146
|
+
## 2.7.3 (March 21 2017)
|
|
147
|
+
|
|
148
|
+
* Provide the ability to send the `SELECT_BUCKET` when establishing a
|
|
149
|
+
to a server. This is a building block allowing us to use 'RBAC'/username
|
|
150
|
+
auth in the future.
|
|
151
|
+
Note that this requires the `select_bucket=true` option in the connection
|
|
152
|
+
string or equivalent, and that this feature as a whole is considered
|
|
153
|
+
experimental.
|
|
154
|
+
* Priority: Major
|
|
155
|
+
* Issues: [CCBC-758](https://issues.couchbase.com/browse/CCBC-758)
|
|
156
|
+
|
|
157
|
+
* Provide an option to disable DNS-SRV lookups. Because DNS SRV lookups often
|
|
158
|
+
result in no result (i.e. `NXDOMAIN`) - which takes longer, allowing to
|
|
159
|
+
disable such lookups may speed up startup time.
|
|
160
|
+
This option is available via the connection string, using `dnssrv=off`
|
|
161
|
+
* Priority: Minor
|
|
162
|
+
* Issues: [CCBC-756](https://issues.couchbase.com/browse/CCBC-756)
|
|
163
|
+
|
|
164
|
+
* Send client/user-specific identifier in `User-Agent` HTTP header.
|
|
165
|
+
The library already does this for data nodes (Memcached). Using it in HTTP
|
|
166
|
+
services allows better supportability when diagnosing issues by reading the
|
|
167
|
+
HTTP logs.
|
|
168
|
+
* Priority: Major
|
|
169
|
+
* Issues: [CCBC-755](https://issues.couchbase.com/browse/CCBC-755)
|
|
170
|
+
|
|
171
|
+
* Fix bug where DNS SRV hostnames would not be used.
|
|
172
|
+
While DNS SRV lookup was working, the library would not actually attempt
|
|
173
|
+
bootstrap off those received hostnames.
|
|
174
|
+
* Priority: Major
|
|
175
|
+
* Issues: [CCBC-753](https://issues.couchbase.com/browse/CCBC-753)
|
|
176
|
+
|
|
177
|
+
* Provide experimental Analytics support.
|
|
178
|
+
This allows access to the Couchbase Analytics Service, available in
|
|
179
|
+
some pre-release builds. API and syntax wise, Analytics is very similar
|
|
180
|
+
to N1QL.
|
|
181
|
+
To use the analytics service, set the `LCB_CMDN1QL_F_CBASQUERY` bit in
|
|
182
|
+
`lcb_CMDN1QL::cmdflags`, and provide the appropriate _host:port_ combination
|
|
183
|
+
in the `lcb_CMDN1QL::host` field. - Currently, analytics support is not
|
|
184
|
+
used in the cluster map/configuration.
|
|
185
|
+
* Priority: Major
|
|
186
|
+
* Issues: [CCBC-734](https://issues.couchbase.com/browse/CCBC-734)
|
|
187
|
+
|
|
188
|
+
## 2.7.2 (February 21 2017)
|
|
189
|
+
|
|
190
|
+
This release consists of additional internal refactoring and some improved
|
|
191
|
+
logging messages. There is enhanced experimental XATTR support. This release
|
|
192
|
+
also contains some bug fixes:
|
|
193
|
+
|
|
194
|
+
* Fix build issues on FreeBSD. This allows normal BSD `make` to be used, rather
|
|
195
|
+
than forcing `gmake`
|
|
196
|
+
|
|
197
|
+
* Fixed broken JIRA link in README
|
|
198
|
+
|
|
199
|
+
* Fix hanging SSL connections in IOCP/Completion mode. This would sometimes
|
|
200
|
+
stall the connection by not requesting a write if a read was in progress.
|
|
201
|
+
This would result in the command not being sent and the client hanging.
|
|
202
|
+
Note that this only affects completion-style I/O plugins such as IOCP and
|
|
203
|
+
libuv.
|
|
204
|
+
* Issues: [CCBC-744](https://issues.couchbase.com/browse/CCBC-744)
|
|
205
|
+
|
|
206
|
+
* Rename `LCB_SDSPEC_F_VIRTPATH` to `LCB_SDSPEC_F_MACROVALUES`. `VIRTPATH`
|
|
207
|
+
is intended for possible future materialized XATTRs.
|
|
208
|
+
|
|
209
|
+
* Add `LCB_SDSPEC_F_XATTR_DELETED_OK`, which maps to the protocol flag of
|
|
210
|
+
roughly the same name.
|
|
211
|
+
|
|
212
|
+
## 2.7.1 (January 19 2017)
|
|
213
|
+
|
|
214
|
+
This release consists of additional internal refactoring. More internals have
|
|
215
|
+
been converted to C++.
|
|
216
|
+
|
|
217
|
+
* Provide XATTR (Extended Attribute) prototype support.
|
|
218
|
+
This provides a prototype implementation of xattrs, allowing the client to
|
|
219
|
+
access extended (hidden) attributes of a document. This feature can be used
|
|
220
|
+
on the client side by simply setting the `LCB_SDSPEC_F_XATTRPATH` bit in
|
|
221
|
+
the `lcb_SDSPEC::options` field.
|
|
222
|
+
* Issues: [CCBC-728](https://issues.couchbase.com/browse/CCBC-728)
|
|
223
|
+
|
|
224
|
+
* Add automatic DNS SRV record lookup when simple hostname supplied.
|
|
225
|
+
The library will now automatically attempt to look up SRV records
|
|
226
|
+
for various couchbase services if only one host is present in the
|
|
227
|
+
connection string. Automatic lookup will not be performed if more
|
|
228
|
+
than a single host is provded. See the [Java Documentation](https://developer.couchbase.com/documentation/server/current/sdk/java/managing-connections.html)
|
|
229
|
+
on the matter (go to the bottom of the page).
|
|
230
|
+
* Issues: [CCBC-566](https://issues.couchbase.com/browse/CCBC-566)
|
|
231
|
+
|
|
3
232
|
## 2.7.0 (December 21 2016)
|
|
4
233
|
|
|
5
234
|
This release consists mainly of internal refactoring. Many of the internals
|
|
@@ -2707,5 +2936,3 @@ These changes extend existing features with enhanced APIs
|
|
|
2707
2936
|
* Basic TAP protocol implementation
|
|
2708
2937
|
|
|
2709
2938
|
* Initial win32 support
|
|
2710
|
-
|
|
2711
|
-
|
|
@@ -11,6 +11,17 @@ IF(DTRACE)
|
|
|
11
11
|
RETURN()
|
|
12
12
|
ENDIF()
|
|
13
13
|
|
|
14
|
+
# Fix probes.h on FreeBSD
|
|
15
|
+
IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
|
16
|
+
FIND_PROGRAM(SED sed)
|
|
17
|
+
EXECUTE_PROCESS(COMMAND ${SED} -i.tmp "s/, *char \\*/, const char \\*/g" ${LCB_DTRACE_HEADER}
|
|
18
|
+
RESULT_VARIABLE _rv)
|
|
19
|
+
IF(NOT ${_rv} EQUAL 0)
|
|
20
|
+
MESSAGE(WARNING "Could not execute sed to update dtrace-generated header. DTrace support will be disabled!")
|
|
21
|
+
RETURN()
|
|
22
|
+
ENDIF()
|
|
23
|
+
ENDIF()
|
|
24
|
+
|
|
14
25
|
ADD_DEFINITIONS(-DHAVE_DTRACE)
|
|
15
26
|
IF(NOT APPLE)
|
|
16
27
|
SET(LCB_DTRACE_OBJECT "${LCB_GENSRCDIR}/probes.o")
|
|
@@ -9,6 +9,7 @@ IF(UNIX)
|
|
|
9
9
|
CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
|
|
10
10
|
CHECK_FUNCTION_EXISTS(setitimer HAVE_SETITIMER)
|
|
11
11
|
CHECK_SYMBOL_EXISTS(htonll arpa/inet.h HAVE_HTONLL)
|
|
12
|
+
CHECK_SYMBOL_EXISTS(res_search resolv.h HAVE_RES_SEARCH)
|
|
12
13
|
CHECK_INCLUDE_FILES(dlfcn.h HAVE_DLFCN_H)
|
|
13
14
|
CHECK_INCLUDE_FILES(netdb.h HAVE_NETDB_H)
|
|
14
15
|
CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H)
|
|
@@ -22,6 +23,23 @@ IF(UNIX)
|
|
|
22
23
|
CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
|
|
23
24
|
CHECK_INCLUDE_FILES(arpa/inet.h HAVE_ARPA_INET_H)
|
|
24
25
|
CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
|
|
26
|
+
CHECK_INCLUDE_FILES(arpa/nameser.h HAVE_ARPA_NAMESER_H)
|
|
27
|
+
ENDIF()
|
|
28
|
+
|
|
29
|
+
SET(CMAKE_TEST_SHARED_OBJECT "libm.so")
|
|
30
|
+
IF (WIN32)
|
|
31
|
+
SET(CMAKE_TEST_SHARED_OBJECT "kernel32.dll.")
|
|
32
|
+
ELSEIF (APPLE)
|
|
33
|
+
SET(CMAKE_TEST_SHARED_OBJECT "libm.dylib")
|
|
34
|
+
ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
35
|
+
EXECUTE_PROCESS(COMMAND ${CMAKE_LINKER} -lm -t
|
|
36
|
+
OUTPUT_VARIABLE LIBM_SO_TRACE
|
|
37
|
+
ERROR_QUIET
|
|
38
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
39
|
+
STRING(REGEX MATCH [a-z0-9/]+libm.so[.0-9]* LIBM_SO_PATH ${LIBM_SO_TRACE})
|
|
40
|
+
IF (EXISTS "${LIBM_SO_PATH}")
|
|
41
|
+
GET_FILENAME_COMPONENT(CMAKE_TEST_SHARED_OBJECT ${LIBM_SO_PATH} NAME)
|
|
42
|
+
ENDIF()
|
|
25
43
|
ENDIF()
|
|
26
44
|
|
|
27
45
|
CONFIGURE_FILE(
|
|
@@ -22,9 +22,10 @@ ENDMACRO(list2args)
|
|
|
22
22
|
|
|
23
23
|
LIST(APPEND LCB_GNUC_CPP_WARNINGS
|
|
24
24
|
-Wall -pedantic -Wshadow -fdiagnostics-show-option -Wformat
|
|
25
|
-
-Wno-strict-aliasing -Wextra -Winit-self -Wno-missing-field-initializers
|
|
25
|
+
-Wno-strict-aliasing -Wextra -Winit-self -Wno-missing-field-initializers
|
|
26
|
+
-Wno-variadic-macros)
|
|
26
27
|
|
|
27
|
-
IF(
|
|
28
|
+
IF(CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
|
28
29
|
LIST(APPEND LCB_GNUC_CPP_WARNINGS -Wno-cast-align -Wno-dollar-in-identifier-extension)
|
|
29
30
|
ENDIF()
|
|
30
31
|
|
|
@@ -42,13 +42,13 @@ ENDIF()
|
|
|
42
42
|
|
|
43
43
|
IF (NOT LCB_VERSION)
|
|
44
44
|
SET(LCB_NOGITVERSION ON)
|
|
45
|
-
SET(LCB_VERSION "2.7.
|
|
45
|
+
SET(LCB_VERSION "2.7.6")
|
|
46
46
|
ENDIF()
|
|
47
47
|
IF (NOT LCB_VERSION_CHANGESET)
|
|
48
48
|
SET(LCB_VERSION_CHANGESET "0xdeadbeef")
|
|
49
49
|
ENDIF()
|
|
50
50
|
IF (NOT LCB_VERSION_HEX)
|
|
51
|
-
SET(LCB_VERSION_HEX
|
|
51
|
+
SET(LCB_VERSION_HEX 0x020706)
|
|
52
52
|
ENDIF()
|
|
53
53
|
|
|
54
54
|
# Now parse the version string
|
|
@@ -63,7 +63,7 @@ IF(APPLE)
|
|
|
63
63
|
ELSE()
|
|
64
64
|
SET(LCB_SONAME_MAJOR "2")
|
|
65
65
|
ENDIF()
|
|
66
|
-
SET(LCB_SONAME_FULL "${LCB_SONAME_MAJOR}.0.
|
|
66
|
+
SET(LCB_SONAME_FULL "${LCB_SONAME_MAJOR}.0.46")
|
|
67
67
|
|
|
68
68
|
MESSAGE(STATUS
|
|
69
69
|
"libcouchbase ${LCB_VERSION_MAJOR},${LCB_VERSION_MINOR},${LCB_VERSION_PATCH}")
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
#cmakedefine HAVE_SYS_UIO_H
|
|
32
32
|
#cmakedefine HAVE_UNISTD_H
|
|
33
33
|
#cmakedefine HAVE_ARPA_INET_H
|
|
34
|
+
#cmakedefine HAVE_RES_SEARCH
|
|
35
|
+
#cmakedefine HAVE_ARPA_NAMESER_H
|
|
34
36
|
|
|
35
37
|
#ifndef HAVE_LIBEVENT
|
|
36
38
|
#cmakedefine HAVE_LIBEVENT
|
|
@@ -58,3 +60,5 @@
|
|
|
58
60
|
|
|
59
61
|
#include "config_static.h"
|
|
60
62
|
#endif
|
|
63
|
+
|
|
64
|
+
#define TEST_SHARED_OBJECT "${CMAKE_TEST_SHARED_OBJECT}"
|
|
@@ -10,11 +10,11 @@ SET(LCB_UTILS_SRC
|
|
|
10
10
|
src/hashtable.c
|
|
11
11
|
src/list.c
|
|
12
12
|
src/logging.c
|
|
13
|
-
src/ringbuffer.c
|
|
14
|
-
src/simplestring.c)
|
|
13
|
+
src/ringbuffer.c)
|
|
15
14
|
|
|
16
15
|
# lcbio
|
|
17
16
|
FILE(GLOB LCB_IO_SRC src/lcbio/*.c)
|
|
17
|
+
FILE(GLOB LCB_IO_CXXSRC src/lcbio/*.cc)
|
|
18
18
|
|
|
19
19
|
# common memcached operations
|
|
20
20
|
FILE(GLOB LCB_OP_SRC src/operations/*.c)
|
|
@@ -29,7 +29,6 @@ FILE(GLOB LCB_RDB_SRC src/rdb/*.c)
|
|
|
29
29
|
FILE(GLOB LCB_NETBUF_SRC src/netbuf/*.c)
|
|
30
30
|
|
|
31
31
|
# HTTP protocol management
|
|
32
|
-
FILE(GLOB LCB_HT_SRC src/lcbht/*.c)
|
|
33
32
|
LIST(APPEND LCB_HT_SRC "contrib/http_parser/http_parser.c")
|
|
34
33
|
|
|
35
34
|
# bucket config ("confmon")
|
|
@@ -39,40 +38,57 @@ SET(LCB_CORE_SRC
|
|
|
39
38
|
${LCB_OP_SRC}
|
|
40
39
|
${LCB_BCONF_SRC}
|
|
41
40
|
${LCB_N1QL_SRC}
|
|
42
|
-
src/bootstrap.c
|
|
43
41
|
src/callbacks.c
|
|
44
42
|
src/legacy.c
|
|
45
43
|
# src/mcserver/negotiate.c
|
|
46
44
|
src/iofactory.c
|
|
47
|
-
src/retrychk.c
|
|
48
45
|
src/settings.c
|
|
49
46
|
src/utilities.c)
|
|
50
47
|
|
|
51
48
|
SET(LCB_CORE_CXXSRC
|
|
52
49
|
src/instance.cc
|
|
53
50
|
src/auth.cc
|
|
51
|
+
src/bootstrap.cc
|
|
54
52
|
src/bucketconfig/bc_cccp.cc
|
|
53
|
+
src/bucketconfig/bc_http.cc
|
|
54
|
+
src/bucketconfig/bc_file.cc
|
|
55
|
+
src/bucketconfig/bc_static.cc
|
|
56
|
+
src/bucketconfig/confmon.cc
|
|
55
57
|
src/connspec.cc
|
|
58
|
+
src/dns-srv.cc
|
|
56
59
|
src/dump.cc
|
|
60
|
+
src/errmap.cc
|
|
57
61
|
src/getconfig.cc
|
|
58
62
|
src/nodeinfo.cc
|
|
59
63
|
src/handler.cc
|
|
60
64
|
src/hostlist.cc
|
|
61
65
|
src/http/http.cc
|
|
62
66
|
src/http/http_io.cc
|
|
67
|
+
src/lcbht/lcbht.cc
|
|
63
68
|
src/newconfig.cc
|
|
64
69
|
src/n1ql/params.cc
|
|
65
70
|
src/n1ql/n1ql.cc
|
|
66
71
|
src/n1ql/ixmgmt.cc
|
|
67
72
|
src/cbft.cc
|
|
73
|
+
src/operations/cbflush.cc
|
|
74
|
+
src/operations/counter.cc
|
|
68
75
|
src/operations/durability.cc
|
|
69
76
|
src/operations/durability-cas.cc
|
|
70
77
|
src/operations/durability-seqno.cc
|
|
78
|
+
src/operations/get.cc
|
|
79
|
+
src/operations/observe.cc
|
|
71
80
|
src/operations/observe-seqno.cc
|
|
81
|
+
src/operations/pktfwd.cc
|
|
82
|
+
src/operations/remove.cc
|
|
72
83
|
src/operations/stats.cc
|
|
84
|
+
src/operations/store.cc
|
|
73
85
|
src/operations/subdoc.cc
|
|
86
|
+
src/operations/touch.cc
|
|
74
87
|
src/mcserver/mcserver.cc
|
|
75
88
|
src/mcserver/negotiate.cc
|
|
89
|
+
src/retrychk.cc
|
|
76
90
|
src/retryq.cc
|
|
91
|
+
src/views/docreq.cc
|
|
92
|
+
src/views/viewreq.cc
|
|
77
93
|
src/cntl.cc
|
|
78
94
|
src/wait.cc)
|