-
Notifications
You must be signed in to change notification settings - Fork 26
1.7 changelog
- Added alpine-3.9 packaging support #72,
- Fixed several concurrency (and stability) issues that are detected by
valgrind
tools (memcheck
,helgrind
anddrd
) #72, #73, #74, #75 and #76.
- Introduced Windows SCHANNEL implementation for TLS on windows that removes openssl dependency on windows #69,
- Compare on-disk
bolt-version.h
before overwriting it to avoid excessive re-compilations #69, - Enable
seabolt17-static.pc
generation when SCHANNEL is used on windows to enable static linking #69, - Hide a couple of low level
BoltConnection
functions which were previously exported as public #70, - Pass access mode as part of the statement metadata for Bolt V3 connections #70.
- Use
nullptr
instead ofNULL
in tests, commit 833b621, - Split internal platform based functionalities into seperate source codes, #67,
- Use
QueryPerformanceCounter
Windows API instead ofGetSystemTimePreciseAsFileTime
, which is not available on Windows 7 #67,, - Set build configuration for
cmake --build
command so that MSVC based builds get built in the desired configuration rather than the default (i.e.Debug
) #67, - Include build toolchain in binary packages generated for windows #68,
- Set Windows version to
Windows 7
in windows builds #68, - Address an issue with
vsnprintf
behaviour on MINGW where it returns-1
on truncation rather than the actual needed buffer size #68.
- Switch to linux containers for CI and binary package building (adds more platforms for binary packages) #56,
- Either install a signal handler for SIGPIPE or set socket options accordingly to prevent crashing on SIGPIPE signals #57,
- Fix
BoltValue_to_string
implementation to always add a null terminator #58, - Fix compilation error on gcc 8 related to buffer truncation warning #59,
- Add initial API Docs for publishing #60,
- Introduce support for condition variables when waiting for free connections on a full pool #61.
- Build scripts now also generate a
seabolt17-static.pc
file (excluding Windows) that contains directives prepared for static linking. Please note that bothseabolt17.pc
andseabolt17-static.pc
files contain path entries from the system that the actual build is run, so make sure that you're using the artifacts on an identical base system. - Updated integral (int, uint, etc.) public function parameters to be sized counterparts, like
int32_t
oruint64_t
.
- Added encapsulation to the exported struct types and functions to the internal space. Any interaction with the connector should be done only through exported functions since the struct fields are be visible from outside.
- Added static library support. The
seabolt-cli
andseabolt-test
targets now by default link to the static output rather than the shared one.
This release adds a couple of changes about better error reporting and also includes several structural refactorings to get prepared for distribution.
Please note that we've removed the OPENSSL_LIB_ROOT
environment variable requirement and instead use the CMake's default name OPENSSL_ROOT_DIR
, i.e. if seabolt build complains about OpenSSL
not found set the OPENSLL_ROOT_DIR
environment variable to point to the home installation folder of OpenSSL
.
The library name itself now contains version suffix, i.e. seabolt17
and there are experimental binary distribution packages available on here.
This release introduces more configuration options around TLS, connection related timeouts (lifetime, acquisition and socket timeouts). It also improves concurrency and reliability of the routing driver.
-
struct BoltConfig
structure now exposes the following new options.-
struct BoltTrust *trust
: Defines how the driver establishes trust with the Neo4j instance it is connected to.-
char *certs
andint32_t certs_len
: User provided PEM encoded trusted certificate list and its length. -
int skip_verify
: Whether to ignore X509 verification results and trust any peer. -
int skip_verify_hostname
: Whether to skip hostname verification step.
-
-
int max_connection_lifetime
: Maximum connection life time on pooled connections. Values less than or equal to 0 disables the lifetime check. -
int max_connection_acquire_time
: Maximum amount of time to either acquire an idle connection from the pool or create a new connection (when the pool is not full). -
struct BoltSocketOptions* sock_opts
: Defines options to apply on the underlying socket.-
int connect_timeout
: Connect timeout in ms that will be set on underlying sockets. -
int recv_timeout
: Receive timeout in ms that will be set on underlying sockets. -
int send_timeout
: Send timeout in ms that will be set on underlying sockets. -
int keepalive
: Whether to enable TCP keep alive on underlying sockets.
-
-
- Removed
master
branch and made1.7
the default which will hold the long run stable 1.7 release - Made the logger to be specified as callback functions
- Added support for
bolt+routing
scheme to work against causal cluster deployments - Added support for specifying custom address resolver as callback functions - which can map
<hostname>:<port>
pair provided to multiple entries (i.e to provide all core server addresses) - so that all those mapped entries are tried in turn until routing table is fetched - Enabled SNI extension on TLS sessions
- Added support for Bolt V2
- Fixed some buffering issues
- The first release of the Neo4j Official C Connector. It only includes support for Bolt V1 and works only on direct mode (no clustering support)