Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
boost.3276
85738.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 85738.patch of Package boost.3276
Source: https://svn.boost.org/trac/boost/changeset/85738 Summary: Fix regression from Boost 1.53 Bug: bnc#925309 Fix a regression where, on some platforms, errors from async_connect are not correctly propagated through to the completion handler. Index: /trunk/boost/asio/detail/impl/socket_ops.ipp =================================================================== --- /trunk/boost/asio/detail/impl/socket_ops.ipp (revision 84349) +++ /trunk/boost/asio/detail/impl/socket_ops.ipp (revision 85738) @@ -510,11 +510,34 @@ bool non_blocking_connect(socket_type s, - const socket_addr_type* addr, std::size_t addrlen, + const socket_addr_type*, std::size_t, boost::system::error_code& ec) { // Check if the connect operation has finished. This is required since we may // get spurious readiness notifications from the reactor. - socket_ops::connect(s, addr, addrlen, ec); - if (ec == boost::asio::error::already_started) +#if defined(BOOST_ASIO_WINDOWS) \ + || defined(__CYGWIN__) \ + || defined(__SYMBIAN32__) + fd_set write_fds; + FD_ZERO(&write_fds); + FD_SET(s, &write_fds); + fd_set except_fds; + FD_ZERO(&except_fds); + FD_SET(s, &except_fds); + timeval zero_timeout; + zero_timeout.tv_sec = 0; + zero_timeout.tv_usec = 0; + int ready = ::select(s + 1, 0, &write_fds, &except_fds, &zero_timeout); +#else // defined(BOOST_ASIO_WINDOWS) + // || defined(__CYGWIN__) + // || defined(__SYMBIAN32__) + pollfd fds; + fds.fd = s; + fds.events = POLLOUT; + fds.revents = 0; + int ready = ::poll(&fds, 1, 0); +#endif // defined(BOOST_ASIO_WINDOWS) + // || defined(__CYGWIN__) + // || defined(__SYMBIAN32__) + if (ready == 0) { // The asynchronous connect operation is still in progress.
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor