1Release 1.14 (2020-02-22) 2========================= 3* Add xcb_total_read() and xcb_total_written() API 4* Support check >= 0.13 API (for make check) 5* Bug fix to handle EINTR from recvmsg 6* Only require pthread-stubs on non-Linux platforms 7 8Release 1.13.1 (2018-09-27) 9=========================== 10* Don't flag extra reply in xcb_take_socket 11 12Release 1.13 (2018-02-28) 13========================= 14* Add support for variable-sized lists of FDs 15* Poll for events when blocking waiting for special events 16* xinput: Enable XInput extension by default 17* ge: Add explicit support for GenericEvent extension 18* Fix documentation warnings from clang 19* Cosmetic cleanups 20 21Release 1.12 (2016-05-18) 22========================= 23* configure: Various fixes for dri3 and FD passing support 24* configure: Don't report all the warning CFLAGS 25* configure: Disable Xevie and Xprint by default 26* Add support for various new constructs in the XML schema 27* Make some functions also accept connections in an error state 28* Never return NULL from xcb_get_setup() 29* Use Requires.private in .pc files to avoid overlinking 30* Fix align-pads for switches which start at unaligned positions 31* Use anonymous structs for some nested structs 32* Also generate accessors for variable-sized events and requests 33* Improved python3 compatibility 34* Generate C99 initializers instead of comments 35* Various simplifications to the python code 36* Fix line breaks in xcb-requests manual page 37* Always close FDs in xcb_send_fd() 38* Fix thread-safety issues with FD passing 39* Add xcb_send_request_with_fds() and xcb_send_request_with_fds64() 40* Fix endless loop with too many outstanding FDs to send 41* Link with winsock library on MinGW 42* Disable some unfinished API for some server-side code by default 43* Use align-offsets computed by xcb-proto instead of low bits of pointers 44* Fix iterator interaction with align padding 45* Stop serializing padding by default 46* Increase unix socket send buffer to at least 64KiB 47 48Release 1.11.1 (2015-09-06) 49=========================== 50* Expose 64-bit sequence numbers for XLib 51* Fix some hangs related to xcb_wait_for_special_event() 52 53Release 1.11 (2014-08-01) 54========================= 55* Force structures with 64-bit fields to be packed 56* Add support for <pad align="n"> 57* Use X.org's build machinery from xorg-macros 58* Fix leak with xcb_disconnect() and connections in an error state 59* Make xcb_disconnect(NULL) safe 60* Use less #include statements in generated code 61* Automatically validate the Requires lines in our .pc.in files 62* Fix a race that resulted in a failed assertion 63* Improve launchd secure socket support 64* Improve API documentation 65* Remove trailing whitespaces 66* c_client.py: prefix all monkey-patched fields with c_ 67* c_client.py: make the man page output deterministic 68* c_client.py: remove useless generated comments 69* xcb.h: add 'struct' before xcb_setup_t, xcb_query_extension_reply_t 70 71Release 1.10 (2013-12-22) 72========================= 73* Bump libxcb-xkb SONAME due to ABI break introduced in 1.9.2 74* Enable libxcb-xkb by default 75* Bump libxcb-sync SONAME 76* c_client.py: Fix _sizeof() functions 77* c_client.py: Do not create pointers in unions 78* c_client.py: Always initialize xcb_align_to 79* Re-introduce xcb_ge_event_t (deprecated, xcb_ge_generic_event_t should be 80 used instead) 81* Fix alignment issues in FD passing code 82* Fix poll() if POLLIN == ROLLRDNORM|POLLRDBAND 83* Use /usr/spool/sockets/X11/ on HP-UX for UNIX sockets 84* Make xsltproc optional 85 86Release 1.9.3 (2013-11-07) 87========================== 88* Check if we need to define _XOPEN_SOURCE for struct msghdr.msg_control 89* Add configure option to enable or disable fd passing with sendmsg 90* Switch to using the CMSG_* macros for FD passing 91* Initialize automake earlier (bugfix for #66413) 92 93Release 1.9.2 (2013-11-07) 94========================== 95* Add Present extension 96* Add DRI3 library 97* Add event queue splitting 98* Add support for receiving fds in replies 99* Add xcb_send_fd API 100* Remove xcb_ge_event_t from xcb.h 101* c_client.py: Inject full_sequence into GE events 102* c_client.py: Handle multiple expr. in a bitcase 103 104Release 1.9.1 (2013-05-30) 105========================== 106* Fix python code to work with python-3 107* Security fix for integer overflow in read_packet() [CVE-2013-2064] 108 109Release 1.9 (2012-10-05) 110======================== 111* Always include "config.h" at the start of all C source files. 112* Add AC_USE_SYSTEM_EXTENSIONS to allow use of more system functionality 113* Return connection failure if display string specifies non-existent screen 114* c_client: Fix parallel-make issue creating 'man' directory 115* xcb_connect: launchd: Don't fall back on tcp if $DISPLAY is a path to a launchd socket 116* c_client.py: generate manpages 117* Allow xcb_send_request with >MAX_IOV iovecs 118* Add a .gitignore for src/man/ 119* Fix a multi-thread deadlock 120 121Release 1.8.1 (2012-03-09) 122========================== 123- Fix a busy loop on BSD and Mac OS 124- Bump xcb-proto requirement 125- Fallback to TCP if no protocol is specified and the UNIX connection fails 126- Update use of error_connection under WIN32 to _xcb_conn_ret_error() 127- Fix build of xcb_auth.c with XDMCP on WIN32 128- Revert "Fix include order with Xdmcp on WIN32" 129- darwin: Use read(2) rather than recv(2) 130- Add xkb_internals and xkb_issues to EXTRA_DIST. 131 132Release 1.8 (2012-01-11) 133======================== 134- xcb_disconnect: call shutdown() to force a disconnect 135- Use special path to sockets when running under Solaris Trusted Extensions 136- Remove unused DECnet code 137- Add #include <sys/socket.h> to xcb_conn.c 138- Make launchd code in xcb_util.c match surrounding code indent levels 139- If protocol is "unix", use a Unix domain socket, not TCP 140- Added more error states and removed global error_connection 141- Handle XGE events with the "send event" flag 142- added xcb_sumof() with restriction to uint8_t 143- xkb: updated configure.ac/Makefile.am 144- xkb: added pkg config file 145- special case 'intermixed variable and fixed size fields': fixed reply side, needs testing 146- added accessors for special cases 147- Add support for building with Python 3 148- Insert, not append explicit xcbgen dir python path 149- xcb_request_check: Sync even if an event was read for this sequence. 150- _xcb_conn_wait: Shut down the connection on unexpected poll() events. 151- xcb_send_request: Send all requests using a common internal send_request. 152- xcb_request_check: Hold the I/O lock while deciding to sync. 153- xcb_discard_reply: Simplify by re-using poll_for_reply helper. 154- xcb_in: Use 64-bit sequence numbers internally everywhere. 155- Enable AM_SILENT_RULES on automake 1.11 or newer. 156- Factor reader_list management out of wait_for_reply. 157- Dequeue readers that can't receive any new responses. 158- Delete the old c-client.xsl. 159- Keep ALIGNOF definition out of the public namespace. 160- darwin: Don't use poll() when expected to run on darwin10 and prior 161- Add Win32 162- Allow disconnecting connections that are in error state. 163- Make xcb_take_socket keep flushing until idle 164- Support pre-IPv6 systems (without getaddrinfo) 165- Drop AI_ADDRCONFIG when resolving TCP addresses 166- xcb_auth: Fix memory leak in _xcb_get_auth_info. 167- Don't emit out-of-module sizeof definitions 168- Clean up a couple of warnings in xprint 169- Prevent reply waiters from being blocked. 170- Prevent theoretical double free and leak on get_peer_sock_name. 171- Introduce a variant of xcb_poll_for_event for examining event queue. 172- xcb_take_socket: Document sequence wrap requirements 173- Compute alignment correctly 174- Fix a dead-lock due to xcb_poll_for_reply 175 176Release 1.7 (2010-08-13) 177======================== 178- Always wake up readers after writing 179- Get rid of PATH_MAX and MAXPATHLEN 180- Add ~ operator support in code generator 181- xcb_open: Improve protocol/host parsing 182- xcb_connect_to_display_with_auth_info: Fix memory leak 183- Report which extensions are being built 184 185Release 1.6 (2010-04-09) 186======================== 187- darwin: xnu doesn't support poll on ttys on the master side 188- Fix descriptor leak on memory error path 189- Support xcb_discard_reply 190- Open the X11 socket with close-on-exec flag 191- Fix authentication on hpux and Hurd 192 193Release 1.5 (2009-12-03) 194======================== 195- setsockopt(SO_KEEPALIVE) on TCP display connections 196- Add DRI2 support 197- Fix check dependency 198- Cygwin build fix: Add -no-undefined to libtool flags 199 200Release 1.4 (2009-07-15) 201======================== 202* Add majorCode, minorCode and resourceID fields to X generic error 203* Fix precedence bug: wrong length for big-requests preceded by sync 204* Fix libxcb-randr version info 205 206Release 1.3 (2009-05-29) 207======================== 208* Copy full IPv4 mapping (Bug #20665) 209* Fix XID allocation 210* Use poll() instead of select() when available 211* Fix local socket connection on Hurd 212* Fix XDM-AUTHORIZATION-1 213* Disable Nagle on TCP socket 214 215Release 1.2 (2009-02-17) 216======================== 217* Stop packaging auto-generated C files into tarball. 218 219Release 1.1.93 (2008-12-11) 220=========================== 221Enhancements: 222* Apple: Enable support for launchd DISPLAY socket 223* Treat XIDs the same as other cardinal values. 224 225Release 1.1.92 (2008-11-01) 226=========================== 227Enhancements: 228* Added small fix to support trailing fixed fields; also warning for non-pad fixed fields 229* Fixed overly aggressive warning about fixed field following variable 230* Added generation of extern "C" for compatibility with C++ 231* Remove libxcb-xlib and xcbxlib.h. 232* Inline _xcb_lock_io, _xcb_unlock_io, and _xcb_wait_io. 233* Track 64-bit sequence numbers internally. 234* Use sequence number ranges in pending replies 235* Remove duplicate XCB_EXTENSION calls for Composite extension 236* Factorize m4 macros and add one to set X extensions 237* Allow compile-time setting for XCB queue buffer size 238* Support handing off socket write permission to external code. 239* Add support for the abstract socket namespace under Linux 240 241Bug fixes: 242* Fix tiny memory leak in read_packet 243* Fix some fd leaks in _xcb_open_*() 244 245Release 1.1 (2007-11-04) 246======================== 247 248This release requires xcb-proto 1.1, due to the addition of the 249extension-multiword attribute to the XML schema. 250 251This release contains several important bug fixes, summarized below. It 252also contains a patch much like Novell's libxcb-sloppy-lock.diff. 253Rationale from the commit message follows. The patch and this rationale 254were authored by Jamey Sharp <jamey@minilop.net>, with agreement from 255Josh Triplett <josh@freedesktop.org>. 256 257 I strongly opposed proposals like this one for a long time. 258 Originally I had a very good reason: libX11, when compiled to use 259 XCB, would crash soon after a locking correctness violation, so it 260 was better to have an informative assert failure than a mystifying 261 crash soon after. 262 263 It took some time for me to realize that I'd changed the libX11 264 implementation (for unrelated reasons) so that it could survive most 265 invalid locking situations, as long as it wasn't actually being used 266 from multiple threads concurrently. 267 268 The other thing that has changed is that most of the code with 269 incorrect locking has now been fixed. The value of the assert is 270 accordingly lower. 271 272 However, remaining broken callers do need to be fixed. That's why 273 libXCB will still noisily print a stacktrace (if possible) on each 274 assertion failure, even when assert isn't actually invoked to 275 abort() the program; and that's why aborting is still default. This 276 environment variable is provided only for use as a temporary 277 workaround for broken applications. 278 279Enhancements: 280* Print a backtrace, if possible, on locking assertion failures. 281* Skip abort() on locking assertions if LIBXCB_ALLOW_SLOPPY_LOCK is set. 282* xcb_poll_for_event: Return already-read events before reading again. 283* Output a configuration summary at the end of ./configure. 284 285Bug fixes: 286* Don't hold the xlib-xcb lock while sleeping: that allows deadlock. 287* Allow unix:<screen> style display names again. 288* Bug #9119: test xcb_popcount 289* Fix unit tests for FreeBSD 290* NetBSD doesn't have AI_ADDRCONFIG: use it only if it's available. 291* Require libXau >= 0.99.2; earlier versions have a broken .pc file 292* Use substitition variables in xcb-xinerama.pc.in 293* Update autogen.sh to one that does objdir != srcdir 294* Add tools/* and autogen.sh to EXTRA_DIST. 295* Doxygen can now be fully disabled if desired. 296 297Documentation improvements: 298* Many fixes and updates to the tutorial. 299* Iterators, requests, and replies get partial Doxygen documentation. 300 301 302Release 1.0 (2006-11-23) 303======================== 304 305The "Thanksgiving" release: We feel thankful to have it released. Five years 306have passed since XCB's initial commit on September 3rd, 2001: 307 <http://gitweb.freedesktop.org/?p=xcb.git;a=commit;h=09e54c4a3c> 308 309* Support IPv6. XCB now supports displays with IPv6 addresses, with or without 310 enclosing square brackets, or with hosts which resolve to IPv6 addresses, by 311 using getaddrinfo instead of gethostbyname, and by including support for 312 authentication for such connections. This allows such displays as "::1:1.1". 313 314* XCB now uses the libpthread-stubs, to properly support optional use of 315 pthreads even on platforms which do not have all the necessary pthread stubs 316 in libc or otherwise available by default. 317 318* Switch from the old AM_PATH_CHECK macro to pkg-config. check 0.9.4 is now 319 required to build XCB's unit tests. The version that we were requiring was 320 not actually new enough to let our unit tests compile, and the AM_PATH_CHECK 321 macro is now considered deprecated. We know that versions of check using 322 pkg-config are new enough to work, and the check dependency was optional 323 anyway, so we've dropped support for older versions. 324 325* Provide a xcb_prefetch_maximum_request_length counterpart to 326 xcb_get_maximum_request_length. 327 328* Fix Bug #5958: zero out padding bytes in requests. 329 330* Change xcb_connect to pass the display number to _xcb_get_auth_info, which 331 passes it to get_authptr. This allows get_authptr to stop hacking the 332 display number out of the sockaddrs of various address families, such as 333 port - X_TCP_PORT, or the number after the last X in the UNIX socket path. 334 335* Remove --with-opt and --with-debug options from configure.ac; configure 336 supports the use of custom CFLAGS, so please use that instead. 337 338* Reove support for the <localfield> tag in protocol descriptions, since they 339 no longer use it, and since new protocol descriptions should not need it 340 either. 341 342* xcb-proto has no libraries or headers, so don't use XCBPROTO_CFLAGS or 343 XCBPROTO_LIBS. 344 345* XCB builds which use xdmcp now include it in Requires.private, to support 346 static linking. 347 348* Replace "long" with uint32_t when used for a 32-bit quantity 349 350* Various enhancements to the generation of documentation with Doxygen: 351 * Check for doxygen in configure.ac 352 * Fix some Doxygen warnings. 353 * Install documentation. 354 * Handle out-of-tree builds, with srcdir != builddir. xcb.doxygen now gets 355 generated from xcb.doxygen.in, so that it can use top_builddir and 356 top_srcdir to find source and to output documentation. 357 * Fill in PROJECT_NUMBER from @VERSION@, now that we have it readily 358 available via autoconf. 359 360 361Release 1.0 RC3 (2006-11-02) 362============================ 363 364Note: Version 0.9.4 of the test suite tool "check" provides a broken 365version of the AM_PATH_CHECK macro, which causes autoconf to fail due to 366insufficient quoting on the macro names it prints in its deprecation 367message. We have written a patch to fix this problem, available at: 368<http://bugs.debian.org/cgi-bin/bugreport.cgi/check-m4-am-path-check-use-quadrigraphs-in-macro-names-to-unbreak-autoconf.patch?bug=395466;msg=20;att=1> 369Version 0.9.4-2 of the Debian package for check includes this patch. 370Users of other distributions who want to re-autotool libxcb will need to 371apply this patch, use an older version of check, or wait for a fixed 372upstream version. This bug does not affect users who use the distributed 373tarballs and do not re-autotool. 374 375* Add library support for xcb-xinerama, using new protocol description 376 from xcb-proto. 377* In the generated protocol code, define and use constants for opcode 378 numbers rather than hard-coding them. 379* In the API conversion script, match only XCB-namespaced XID generators 380 when converting to xcb_generate_id. 381* Quit treating xproto specially in Makefile.am: handle it like all the 382 extensions. 383* Generate Doxygen documentation comments in the protocol stubs, and 384 provide a Doxygen config file for building HTML documentation for XCB. 385* Add note to xcbxlib.h that nothing except Xlib/XCB should use it. 386* Extend test suite to test xcb_parse_display with NULL argument and 387 display in $DISPLAY. 388 389 390Release 1.0 RC2 (2006-10-07) 391============================ 392 393API changes 394----------- 395 396In our announcement of XCB 1.0 RC1, we proposed two API changes for 397community feedback: 398 399 We would greatly appreciate API review in this final release 400 candidate period. We've had some limited feedback that our attempts 401 to impose static type safety on XIDs in C pose more a hindrance than 402 a help, so we would appreciate discussion over whether this 403 constitutes a "serious issue with the API". Some question also 404 remains of whether xcb_poll_for_event should have the out-parameter 405 'error', now that XCB has a more uniform mechanism for reporting 406 connection errors. Speak now on these points or leave us alone. ;-) 407 408Since we've received feedback agreeing with our proposed changes, and no 409objections or requests to keep the existing API, we made both changes 410and bumped the soname to libxcb.so.1.0.0 in preparation for the release 411of XCB 1.0. 412 413* Remove XID wrapper structures and replace them with uint32_t typedefs. 414 XID union types like xcb_drawable_t and xcb_fontable_t also become 415 uint32_t typedefs. The API conversion script now replaces xcb_*_new 416 with calls directly to xcb_generate_id. This change makes 417 xcb_generate_id part of the client API rather than the extension API, 418 so move xcb_generate_id from xcbext.h to xcb.h. 419 420* Remove the 'int *error' out-parameter for xcb_poll_for_event. 421 xcb_poll_for_event now shuts down the xcb_connection_t on fatal 422 errors; use xcb_connection_has_error to check. 423 424The Xlib-specific API in libxcb-xlib also changed: 425 426* Stop exposing the XCB IO lock for Xlib's benefit, by removing 427 xcb_get_io_lock from the Xlib-specific XCB API; instead, libxcb-xlib 428 now provides xcb_xlib_lock and xcb_xlib_unlock. 429 430Code generation changes 431----------------------- 432 433* The code generator no longer implicitly imports xproto for extensions. 434 xcb-proto 1.0 RC2 includes the corresponding change to explicitly 435 import xproto in extensions that need it 436 437* The generated protocol headers now declare "struct foo", "union foo" 438 or "enum foo", not just the typedef "foo" of an unnamed 439 struct/union/enum type. 440 441Bug Fixes 442--------- 443 444* Make Plan 7 'checked' requests work correctly. 445 446Documentation improvements 447-------------------------- 448 449* Document xcb_generate_id. 450 451* Tutorial enhancements. 452 453 454Release 1.0 RC1 (2006-09-25) 455============================ 456 457The Great XCB Renaming 458---------------------- 459 460Rename API to follow a new naming convention: 461 462* XCB_CONSTANTS_UPPERCASE_WITH_UNDERSCORES 463* xcb_functions_lowercase_with_underscores 464* xcb_types_lowercase_with_underscores_and_suffix_t 465* expand all abbreviations like "req", "rep", and "iter" 466 467Word boundaries for the names in the protocol descriptions fall: 468 469* Wherever the protocol descriptions already have an underscore 470* Between a lowercase letter and a subsequent uppercase letter 471* Before the last uppercase letter in a string of uppercase letters 472 followed by a lowercase letter (such as in LSBFirst between LSB and 473 First) 474* Before and after a string of digits (with exceptions for sized types 475 like xcb_char2b_t and xcb_glx_float32_t to match the stdint.h 476 convention) 477 478Also fix up some particular naming issues: 479 480* Rename shape_op and shape_kind to drop the "shape_" prefix, since 481 otherwise these types end up as xcb_shape_shape_{op,kind}_t. 482* Remove leading underscores from enums in the GLX protocol description, 483 previously needed to ensure a word separator, but now redundant. 484 485This renaming breaks code written for the previous API naming 486convention. The scripts in XCB's tools directory will convert code 487written for the old API to use the new API; they work well enough that 488we used them to convert the non-program-generated code in XCB, and when 489run on the old program-generated code, they almost exactly reproduce the 490new program-generated code (modulo whitespace and bugs in the old code 491generator). 492 493Authors: Vincent Torri, Thomas Hunger, Josh Triplett 494 495In addition to the API renaming, the library SONAMEs have changed to 496libxcb.so and libxcb-extname.so. The library major version remains at 0, 497to become version 1 before 1.0 is released; the SONAME lowercasing means 498that this will not conflict with XCB 0.9 libraries. 499 500The header files have moved from /usr/include/X11/XCB/ to 501/usr/include/xcb/. The XML-XCB protocol descriptions have moved to 502/usr/share/xcb, with extension descriptions no longer relegated to an 503extensions/ subdirectory. The API conversion script api_conv.pl will fix 504references to the header files, and packages using pkg-config will 505automatically use the new library names. 506 507Error handling Plan 7 508--------------------- 509 510All request functions now come in an "unchecked" and "checked" variant. 511The checked variant allows callers to handle errors inline where they 512obtain the reply, or by calling xcb_request_check for requests with no 513reply. The unchecked variant uses the event queue for errors. Requests 514with replies default to checked, because the caller must already make a 515function call to retrieve the reply and can see the error at that time; 516the unchecked variant uses the suffix _unchecked. Requests without 517replies default to unchecked, because the caller will not necessarily 518expect to handle a response, and the checked variant uses the suffix 519_checked. 520 521Connection error handling 522------------------------- 523 524Fatal connection errors now put the xcb_connection_t object into an 525error state, at which point all further operations on that connection 526will fail. Callers can use the new xcb_connection_has_error function to 527check for this state in a connection. Functions that return a 528connection, such as the xcb_connect function, may instead return an 529xcb_connection_t already in an error state. 530 531In the future we expect to add additional API for getting more 532information about the error condition that caused the connection to get 533into an error state. 534 535Smaller API changes 536------------------- 537 538All functions that have been marked 'deprecated' up to now have been 539removed for this release. After XCB 1.0 is released, functions marked 540'deprecated' will be preserved until the end of time to maintain 541compatibility. 542 543XCB no longer provides a sync function. Most callers of this function 544should use xcb_flush instead, which usually provides the intended 545functionality and does not require a round-trip to the server. If you 546really need this functionality, either use xcb_get_input_focus like sync 547used to do, or use the xcb_aux_sync function from the xcb-aux library in 548xcb-util. However, note that we do not consider the libraries in 549xcb-util remotely stable yet. 550 551XCB no longer provides xcb_[extension_name]_init functions for each 552extension. These functions previously caused XCB to issue and process a 553QueryExtension request. Callers should now directly call 554xcb_get_extension_data on the xcb_[extension_name]_id, or use 555xcb_prefetch_extension_data if they do not need to force a round-trip 556immediately. 557 558The compatibility functions in xcbxlib.h, provided solely for use by 559Xlib/XCB, now exist in a separate library libxcb-xlib. We don't want to 560have to change the libxcb soname if we later change or remove the Xlib 561compatibility functions, and nothing except Xlib/XCB should ever use 562them. (Applications which use Xlib/XCB do not need this library either; 563Xlib/XCB only uses it internally.) 564 565The descriptions of several extensions have been updated to match the 566latest versions implemented in the X.org X server. 567 568GIT Repository split 569-------------------- 570 571Previously, several XCB-related projects all existed under the umbrella 572of a single monolithic GIT repository with per-project subdirectories. 573We have split this repository into individual per-project repositories. 574 575Josh Triplett and Jamey Sharp wrote a tool called git-split to 576accomplish this repository split. git-split reconstructs the history of 577a sub-project previously stored in a subdirectory of a larger 578repository. It constructs new commit objects based on the existing tree 579objects for the subtree in each commit, and discards commits which do 580not affect the history of the sub-project, as well as merges made 581unnecessary due to these discarded commits. 582 583We would like to acknowledge the work of the gobby team in creating a 584collaborative editor which greatly aided the development of git-split 585(as well as these release notes). 586 587Build and implementation fixes 588------------------------------ 589 590XCB no longer needs proto/x11 from X.org; the XCB header xproto.h 591provides the definitions from X.h, named according to XCB conventions. 592 593XCB should now build with non-GNU implementations of Make. 594 595XCB properly handles 32-bit wrap of sequence numbers, and thus now 596supports issuing more than 2**32 requests in one connection. 597 598Fixed bugs #7001, #7261. 599