libcouchbase 0.3.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|