Commit Graph

864 Commits

Author SHA1 Message Date
Christopher Kohlhoff
a589d7344a Add missing const qualification to acceptor's get_option members. 2018-03-04 22:02:27 +11:00
Christopher Kohlhoff
69c5b2e31e Work around a mysterious parsing error that occurs with some versions of gcc. 2018-03-04 22:00:17 +11:00
Christopher Kohlhoff
886839cf55 Update copyright notices. 2018-03-04 21:59:30 +11:00
Christopher Kohlhoff
0c9cbdfbf2 Version bump. 2017-12-06 00:10:04 +11:00
Christopher Kohlhoff
1eaa59ea2a gcc 4.7 is the minimum version required for std::allocator_traits. 2017-12-05 07:38:14 +11:00
Christopher Kohlhoff
df2abf35da Ensure that use_future<std::allocator<void>> is always constexpr default-constructible. 2017-12-04 09:08:25 +11:00
Christopher Kohlhoff
4883dcd6c7 Add missing variadic template emulation in use_future. 2017-12-03 23:32:35 +11:00
Christopher Kohlhoff
435f47e8e3 Disable buffer debugging for older MSVC, as it triggers compiler misbehaviour. 2017-12-03 21:56:50 +11:00
Christopher Kohlhoff
619cea4356 Add check for _DEFAULT_SOURCE in addition to _BSD_SOURCE. 2017-12-03 21:53:33 +11:00
Christopher Kohlhoff
a57cb2a7a6 Suppress recv truncation errors on Windows, to match POSIX behaviour. 2017-12-02 18:25:44 +11:00
Christopher Kohlhoff
cdd4a0cc81 Add documentation examples of using asio::post to submit work. 2017-12-02 16:13:27 +11:00
Christopher Kohlhoff
c34e42c129 Don't directly include <chrono>, to keep header C++03-compatible. 2017-12-02 10:57:05 +11:00
Christopher Kohlhoff
077ed86047 Add headers for TS compatibility. 2017-12-02 10:23:24 +11:00
Christopher Kohlhoff
dfa54b4fc5 Suppress MSVC dynamic initialisation warning. 2017-12-02 10:09:55 +11:00
Christopher Kohlhoff
8a8157c36d Add waitable timer headers to convenience header. 2017-12-02 09:16:54 +11:00
Christopher Kohlhoff
7b996f66bd Increase number of buffers per operation for consuming_buffers.
Use a smaller number of buffers when the count can be determined at compile
time, e.g. for std::array or boost::array.
2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
282de16d9b Increase threshold for small memory block recycling to 1KB. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
2bfd4d24d0 Make sure asio/system_context.hpp is self-contained. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
78df0763bf Don't call memcpy with length 0, to avoid passing null pointers. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
f8a0469702 Fix description of std::getline's behaviour. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
26d4af19c1 Fix clang narrowing warning. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
646250076b Remove last remaining instance of auto_ptr. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
edbe617864 Restore binder support for 3, 4 and 5 arguments. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
aa0bf0a8b3 Reapply double delete fix, which was overwritten by Networking TS merge. 2017-12-02 09:03:14 +11:00
Christopher Kohlhoff
2e61c6f29f Add backward compatibility for the old ConnectCondition form. 2017-11-08 00:08:40 +11:00
Christopher Kohlhoff
875788fde3 Ensure make_network_vX error_code overload doesn't throw on invalid prefix length. 2017-11-08 00:08:40 +11:00
Christopher Kohlhoff
f15e842c79 Fix the rights for event objects on UWP. 2017-11-08 00:08:40 +11:00
Christopher Kohlhoff
53f052c9a0 Suppress implicit fallthrough warning on newer gcc. 2017-11-08 00:08:40 +11:00
Christopher Kohlhoff
bfa3e0373e Fix clang version detection for suppression of unused typedef warning. 2017-11-08 00:08:40 +11:00
Christopher Kohlhoff
a778425068 Fix compile errors in some asio::connect overloads. 2017-11-08 00:08:40 +11:00
Christopher Kohlhoff
d484b66453 Bump minimum MSVC version required for C++11 allocators. 2017-10-25 07:58:21 +11:00
Christopher Kohlhoff
bfe7a04616 Fix compile warning under Emscripten. 2017-10-25 07:57:45 +11:00
Christopher Kohlhoff
59395d663a Use proper SSL_version() function so that asio can build with BoringSSL. 2017-10-25 07:57:14 +11:00
Christopher Kohlhoff
b60e92b13e Initial merge of Networking TS compatibility.
Merged from chriskohlhoff/asio master branch as of commit
4a4d28b0d24c53236e229bd1b5f378c9964b1ebb.
2017-10-23 21:48:43 +11:00
Christopher Kohlhoff
b002097359 Previous fix introduced a leak, use a better approach. 2017-08-13 07:19:28 +10:00
Christopher Kohlhoff
c8d628ad8a Fix double delete issue introduced by 3541ec2eb9. 2017-08-13 00:56:54 +10:00
Christopher Kohlhoff
c88c5f7e1c Version bump. 2017-08-01 22:31:49 +10:00
Christopher Kohlhoff
de42877700 Require gcc >= 4.7 to use standard atomics. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
cdae3dd6b4 Don't use auto_ptr. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
25b6042644 Use deregister_internal_descriptor in signal_set_service. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
38508353af Make epoll_reactor resistant to events with duplicate user data. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
3541ec2eb9 Don't free the reactor's per-descriptor state until after close. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
4d1b169964 Enable newer language features for recent MSVC versions. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
3b8a8d6636 is_continuation misplaced in reactive socket service. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
84572fb9be Use poll.h rather than sys/poll.h if possible. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
22d69e570d Fix MSVC Intellisense detection. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
3a2e196893 Disable __thread keyword extension for android+x86+clang. 2017-07-31 18:51:14 +10:00
Christopher Kohlhoff
3a73a43f62 Version bump. 2017-03-08 06:49:35 +11:00
Christopher Kohlhoff
9bfe806fc1 Ensure winsock2.h is included before windows.h. 2017-03-05 23:00:10 +11:00
Christopher Kohlhoff
991f613b95 Eliminate new clang comma warning. 2017-03-05 22:59:39 +11:00
Christopher Kohlhoff
2b6230aef8 Make sure asio/ssl/error.hpp is self-contained. 2017-03-05 22:58:18 +11:00
Christopher Kohlhoff
fba6c4ccbd Add limited support for regular file descriptors.
The epoll_reactor now supports the use of regular file descriptors with
posix::stream_descriptor, provided the I/O operations on them never fail
with EAGAIN or EWOULDBLOCK. If the descriptor cannot be added to the
epoll set using epoll_ctl, and errno is EPERM (indicating an unsupported
descriptor type), then no error condition is raised. Instead, any
operation which would require a trip through the reactor will fail.
2017-03-05 22:56:48 +11:00
Christopher Kohlhoff
49aa5e1e6c In c++11 or later, use allocator_traits to rebind allocators. 2017-03-05 22:55:54 +11:00
Christopher Kohlhoff
8e835cccd1 Fix error when OpenSSL compression is disabled at compile time. 2017-03-05 22:54:28 +11:00
Christopher Kohlhoff
16e880c667 Update mingw mutex initialisation to match non-mingw version. 2017-03-05 22:53:59 +11:00
Christopher Kohlhoff
d76c1f0533 Make SSL/TLS version handling more consistent across OpenSSL versions.
This adds new enums context_base::tls, context_base::tls_client and
context_base::tls_server. These allow connections to use any supported
TLS version. (N.B. the deprecated version SSLv3 is explicitly disabled
if you use these values.)
2017-03-05 22:53:05 +11:00
Christopher Kohlhoff
9feee12ac2 Avoid double construction in converting move-constructors. 2017-03-05 22:52:07 +11:00
Christopher Kohlhoff
4645a7c351 Fix compilation with OpenSSL 1.1 API
With OPENSSL_API_COMPAT=0x10100000L, SSL_library_init, SSL_load_error_strings, and OpenSSL_add_all_algorithms are removed.
With OPENSSL_API_COMPAT=0x10000000L, these are function-style macros mapping to OPENSSL_init_ssl, which is called automatically anyway.

References:
https://www.openssl.org/docs/man1.1.0/ssl/OPENSSL_init_ssl.html
https://www.openssl.org/docs/man1.1.0/crypto/OPENSSL_init_crypto.html

(from Marcel Raad)
2017-03-05 22:50:36 +11:00
Christopher Kohlhoff
fdec9d1d8f Suppress some spurious unused variable warnings. 2017-03-05 22:49:54 +11:00
Christopher Kohlhoff
6c19ff7482 Include socket_types.hpp before OpenSSL headers. 2017-03-05 22:48:48 +11:00
Christopher Kohlhoff
4808f72a1f Re-enable building against LibreSSL. 2017-03-05 22:47:57 +11:00
Christopher Kohlhoff
a8cea6a722 Implement fenced_block using std::atomic_thread_fence, when available. 2017-03-05 22:46:59 +11:00
Christopher Kohlhoff
dd18e955fa Add workaround for broken getaddrinfo in Apple's NAT64 environment. 2017-03-05 22:45:50 +11:00
Christopher Kohlhoff
0a852879f5 Fix exception safety issue in hash_map. 2017-03-05 22:45:09 +11:00
Christopher Kohlhoff
f7fa336c91 Update copyright notices. 2017-03-05 22:43:47 +11:00
Christopher Kohlhoff
a1fb7b0c10 Version bump. 2016-09-19 07:37:14 +10:00
Christopher Kohlhoff
c1acb8a57b Add workaround for move-detection issue on MSVC 2015 Update 2. 2016-09-16 08:26:04 +10:00
Christopher Kohlhoff
603ebfb5e1 Call SSL_COMP_free_compression_methods() on ssl cleanup.
This call is needed for OpenSSL >=1.0.2 and <1.1.0.
2016-09-16 08:20:51 +10:00
Christopher Kohlhoff
42e7869f41 Fix allocator usage to compile with g++ 6. 2016-09-11 12:12:39 +10:00
Christopher Kohlhoff
3d71bdaf23 Use new TLS methods on OpenSSL 1.1.0. 2016-09-11 12:12:39 +10:00
Christopher Kohlhoff
8ea3165df9 Backward compatibility for code using OpenSSL < 1.1.0.
Some application code using asio::ssl::stream<> explicitly tests for the
SSL_R_SHORT_READ error. For compatibility, when using older versions of
OpenSSL we will define the ssl::error::stream_truncated to use this
value.
2016-09-11 12:12:39 +10:00
Christopher Kohlhoff
864ca38b6d Terminate loop if connect condition returns an end iterator. 2016-09-11 12:12:39 +10:00
Christopher Kohlhoff
54c9424b5a Enable getaddrinfo by default on Apple platforms.
The getaddrinfo function is now used by default unless Mac OS X 10.4 or
earlier is detected. Its use may also be explicitly disabled by defining
ASIO_DISABLE_GETADDRINFO.
2016-09-11 12:12:39 +10:00
Christopher Kohlhoff
370363b33f Fix errors when OPENSSL_NO_DEPRECATED is defined. 2016-09-11 12:01:12 +10:00
Christopher Kohlhoff
a50a350310 Only apply firewall workaround when getsockname outputs INADDR_ANY. 2016-09-11 11:59:19 +10:00
Christopher Kohlhoff
812cfa7a5c Add compatibility with OpenSSL 1.1
- SSLv2 has been completely removed from OpenSSL, even without OPENSSL_NO_SSL2
- there is a new threading API without locking callbacks
- struct SSL_CTX has been made opaque and must be used via accessor functions
- some cleanup functions have been removed

(from Marcel Raad <raad@teamviewer.com>)
2016-09-11 11:57:28 +10:00
Christopher Kohlhoff
424ad6b736 BoringSSL does not provide CONF_modules_unload. 2016-09-11 11:37:29 +10:00
Christopher Kohlhoff
84e840390b Add new error category and constant for ssl::error::stream_truncated.
This error replaces uses of SSL_R_SHORT_READ, and indicates that the
SSL stream has been shut down abruptly. (I.e. the underlying socket
has been closed without performing an SSL-layer shutdown.)
2016-09-11 11:36:53 +10:00
Christopher Kohlhoff
36eef63a9c Update copyright notices. 2016-09-11 11:35:40 +10:00
Christopher Kohlhoff
0f0f94a9d7 Remove old header file that was accidentally left behind. 2016-09-11 11:30:19 +10:00
Christopher Kohlhoff
8fe7f5d24e Version bump. 2015-12-14 12:01:39 +11:00
Christopher Kohlhoff
763d513043 Xcode/clang and plain clang use different version numbering. 2015-12-12 11:13:36 +11:00
Christopher Kohlhoff
fb4befe985 LibreSSL doesn't provide SSL_CTX_clear_chain_certs. 2015-12-12 11:12:47 +11:00
Christopher Kohlhoff
345ac9aa13 Use CreateEventW rather than CreateEvent. 2015-12-10 22:51:53 +11:00
Christopher Kohlhoff
e1c67f0377 Pass correct output buffer size to strncat. 2015-12-10 22:51:53 +11:00
Christopher Kohlhoff
6582b6966a Fix typo in comment. 2015-12-10 22:51:53 +11:00
Christopher Kohlhoff
bae401b1eb Support for building with OpenSSL when OPENSSL_NO_SSL3 is defined. 2015-12-10 22:45:24 +11:00
Christopher Kohlhoff
073b2943cc Suppress unused typedef warning when using clang. 2015-12-10 22:45:24 +11:00
Christopher Kohlhoff
dd28aed1e5 Use SSL_CTX_clear_chain_certs, if available. 2015-12-10 22:45:24 +11:00
Christopher Kohlhoff
b9cb61416e Prevent multiple definition of BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT with newest MSVC. 2015-12-10 22:45:24 +11:00
Christopher Kohlhoff
798f2a98e8 Add support for Windows 8.1 store apps. 2015-12-10 22:45:24 +11:00
Christopher Kohlhoff
d1db517230 Version bump. 2015-03-24 07:21:45 +11:00
Christopher Kohlhoff
c9c75601e0 Don't push/pop options around Boost.DateTime header. 2015-03-22 10:57:34 +11:00
Christopher Kohlhoff
c05d773886 Remove redundant pointer check in SSL engine. 2015-03-21 20:54:31 +11:00
Christopher Kohlhoff
3aa7b1b19d Fix race condition in windows::object_handle. 2015-03-21 20:26:31 +11:00
Christopher Kohlhoff
382804a432 Use default visibility everywhere. 2015-03-21 18:28:43 +11:00
Christopher Kohlhoff
6cf37dc2f2 Fix WinRT detection.
WINAPI_FAMILY_ONE_PARTITION is no longer defined in newer
Windows SDKs.
2015-03-20 18:58:46 +11:00
Christopher Kohlhoff
f342f9bdd2 ERR_remove_state is deprecated, use ERR_remove_thread_state instead. 2015-03-20 09:35:13 +11:00
Christopher Kohlhoff
41bf42b8da Update copyright notices. 2015-03-20 00:14:19 +11:00
Christopher Kohlhoff
a1d5248f3a New macro BOOST_ASIO_DISABLE_CONNECTEX to disable ConnectEx use. 2015-03-20 00:06:08 +11:00
Christopher Kohlhoff
b261738d79 Strip the scope id from address string before passing to inet_pton.
On some platforms, like FreeBSD, inet_pton fails if the address
string includes trailing characters like a scope id.
2015-03-19 23:57:44 +11:00
Christopher Kohlhoff
b954a03b6f Allow nested calls to completion handler when using yield_context. 2015-03-19 23:56:46 +11:00
Christopher Kohlhoff
83008fc4ce Treat multicast test failures with ENODEV as non-fatal. 2015-03-19 23:55:38 +11:00
Christopher Kohlhoff
98a3f07417 Map ConnectEx errors to portable equivalents.
Fixes boost trac ticket 10744.
2015-03-19 23:55:02 +11:00
Christopher Kohlhoff
cba8ec4ce8 Fix ssl::stream bug that may cause spurious 'short read' errors. 2015-03-19 23:53:58 +11:00
Christopher Kohlhoff
8f5bf7a739 Move result into coro_handler. 2015-03-19 23:53:12 +11:00
Christopher Kohlhoff
5a136ac8f5 std::addressof isn't available until g++ 4.6. 2015-03-19 23:52:43 +11:00
Christopher Kohlhoff
09eeb03cbb Move result of a yield_context operation. 2015-03-19 23:52:06 +11:00
Christopher Kohlhoff
1b3bd862d2 Fix unsigned int overflow reported by clang's integer sanitizer. 2015-03-19 23:51:28 +11:00
Christopher Kohlhoff
1de80ca253 Automatically support clang with libstdc++ when standalone. 2015-03-19 23:50:55 +11:00
Christopher Kohlhoff
224c7d22d3 Ensure OpenSSL error queue is cleared before each operation. 2015-03-19 23:50:06 +11:00
Christopher Kohlhoff
2580addfc0 Use password callback when loading in-memory private key. 2015-03-19 23:48:32 +11:00
Christopher Kohlhoff
f3a184977a Add options for disabling TLS v1.1 and v1.2. 2015-03-19 23:47:59 +11:00
Christopher Kohlhoff
75928f7ed2 Ensure a system header is included before testing __GLIBC_MINOR__. 2015-03-19 23:46:56 +11:00
Christopher Kohlhoff
ada6e27059 Newest MSVC needs noexcept on error_category members. 2015-03-19 23:46:03 +11:00
Christopher Kohlhoff
1fecaa9898 Version bump. 2014-10-17 22:49:55 +11:00
Christopher Kohlhoff
d109f120fa Explicitly mark asio::strand as deprecated.
Use asio::io_service::strand instead.
2014-10-17 22:49:14 +11:00
Christopher Kohlhoff
b5b6c42cfe Fix compile error in /dev/poll reactor.
Fixes boost trac tickets #10350, #10572.
2014-10-16 19:23:59 +11:00
Christopher Kohlhoff
83c88d6b7a Make all kqueue event registration lazy.
Fixes the kqueue reactor so that it works on FreeBSD again.

Fixes boost trac ticket #10606.
2014-10-16 19:23:59 +11:00
Christopher Kohlhoff
1890b2c488 Deregister EVFILT_WRITE to avoid spinning with serial ports.
Fixes boost trac ticket #10496.
2014-10-16 19:23:59 +11:00
Christopher Kohlhoff
715ae947f2 Use correct type in byte order conversion of shorts.
Fixes boost trac ticket #10539.
2014-10-16 19:23:59 +11:00
Christopher Kohlhoff
7c73af05e9 Fix shadow variable warnings. 2014-10-16 19:12:24 +11:00
Christopher Kohlhoff
d772ea8722 Add lazy kqueue EVFILT_WRITE registration.
This fixes support for read-only file descriptors, such as those
obtained from libpcap by calling pcap_get_selectable_fd.

Fixes boost trac ticket #10367.
2014-10-16 19:10:29 +11:00
Christopher Kohlhoff
ee431b4a1f Fix warnings reported by VS2013.
Fixes boost trac ticket #10376.
2014-10-16 19:08:35 +11:00
Christopher Kohlhoff
504ff0474e Explicitly use WSASocketW, as WSASocketA has been deprecated.
Fixes boost trac ticket #10534.
2014-10-16 19:06:56 +11:00
Christopher Kohlhoff
2c24ee7dd0 Version bump. 2014-07-28 07:29:48 +10:00
Christopher Kohlhoff
cc9730e493 Avoid using newly-deprecated Winsock functions. 2014-07-26 19:23:29 +10:00
Christopher Kohlhoff
39fb24ea39 Fix shadow variable warning. 2014-07-26 19:23:04 +10:00
Christopher Kohlhoff
9108db61bc Don't use EV_CLEAR when registering interrupter.
Fixes copy/paste error introduced in 660e9fe302.
2014-07-26 19:22:13 +10:00
Christopher Kohlhoff
cf2ff15857 Version bump. 2014-06-30 14:03:16 +10:00
Christopher Kohlhoff
be64cc8ac9 The intel compiler doesn't provide the SSE2 intrinsics. 2014-06-29 20:55:21 +10:00
Christopher Kohlhoff
78ff082f0c Use SSE2 intrinsics to allow the Cray compiler to work. 2014-06-28 22:37:20 +10:00
Christopher Kohlhoff
9ef094e650 Work around gcc problem to do with anonymous enums.
Fixes boost trac ticket #10042.
2014-06-28 22:06:19 +10:00
Christopher Kohlhoff
80a3fb7a59 Return bytes transferred when ReadFile fails with ERROR_MORE_DATA.
Reverted the previous change to ignore ERROR_MORE_DATA. Instead,
the error will propagated as with any other (i.e. in an error_code
or thrown as a system_error). For code that needs to handle partial
messages, the error_code overload should be used.

Fixes boost trac ticket #10034.
2014-06-28 22:04:43 +10:00
Christopher Kohlhoff
541d2d48a6 Fix off-by-one error in signal number check.
Fixes boost trac ticket #9324.
2014-06-28 22:03:08 +10:00
Christopher Kohlhoff
ec9768daae Use VerifyVersionInfo rather than GetVersionEx.
GetVersionEx has been deprecated.
2014-06-28 22:02:00 +10:00
Christopher Kohlhoff
c2d25de553 Don't assume SO_UPDATE_CONNECT_CONTEXT is defined.
Fixes boost trac ticket #10016.
2014-06-28 22:00:39 +10:00
Christopher Kohlhoff
4dc6f2c328 Version bump. 2014-05-05 12:48:38 +10:00
Christopher Kohlhoff
f0e429f537 Defend against min/max macros. 2014-05-05 11:33:29 +10:00
Christopher Kohlhoff
4a0c1e5da2 Remove tab character. 2014-05-05 11:33:05 +10:00
Christopher Kohlhoff
2c9b017ccf Put back the event::signal() member.
The asio::detail::event class seems to be being used by other
projects, so we'll keep the old function name to avoid unnecessary
breakage.
2014-05-04 10:57:08 +10:00
Christopher Kohlhoff
0356a567bd Move event #include to correct location. 2014-05-04 10:35:34 +10:00
Christopher Kohlhoff
2114f2d17b Clarify that buffer_copy does not support overlapping memory regions.
Fixes boost trac ticket #8295.
2014-05-04 10:06:45 +10:00
Christopher Kohlhoff
b4bb504599 Support stringified scope ids for link-local multicast. 2014-05-04 10:06:45 +10:00
Christopher Kohlhoff
208748a3b5 Use scope id as default IPv6 multicast interface. 2014-05-04 10:06:45 +10:00
Christopher Kohlhoff
c1fa653a38 Use a single condition variable per io_service.
This change fixes a potential race condition when using run_one() from
multiple threads. It also paves the way for the future addition of
timed io_service::run() overloads.
2014-05-04 10:06:45 +10:00
Christopher Kohlhoff
615a75884b Fix unused argument warning. 2014-05-04 09:37:01 +10:00
Christopher Kohlhoff
0484963a55 Use ConnectEx where available.
N.B. This change conservatively limits the use of ConnectEx to
connection-oriented IP sockets.
2014-05-03 10:25:31 +10:00
Christopher Kohlhoff
107dcb750f Update some more copyright notices. 2014-05-03 10:21:15 +10:00
Christopher Kohlhoff
9d13af49f8 Disable GetQueuedCompletionStatus workaround on recent Windows versions. 2014-05-03 10:18:39 +10:00
Christopher Kohlhoff
e4e914bc4d Fix type aliasing issue reported by gcc.
Fixes boost trac ticket #9550.
2014-05-03 10:17:42 +10:00
Christopher Kohlhoff
c06aa74f08 Make select_reactor more efficient on Windows for large numbers of sockets.
Fixes boost trac ticket #9528.
2014-05-03 10:15:07 +10:00
Christopher Kohlhoff
1417badc04 Clarify that commit() and consume() do not throw.
Fixes boost trac ticket #9605.
2014-05-03 10:14:11 +10:00
Christopher Kohlhoff
9e75760570 Fix infinite recursion in operator~ implementation.
Fixes boost trac ticket #9548.
2014-05-03 10:13:08 +10:00
Christopher Kohlhoff
981addd4ee Fix incorrect documentation on async_send.
Fixed boost trac ticket #9771.
2014-05-03 10:11:02 +10:00
Christopher Kohlhoff
660e9fe302 Fix occasional close() system call hang on MacOS.
Repeated re-registration of kqueue event filters seems to behave as
though there is some kind of "leak" on MacOS, culminating in a suspended
close() system call and an unkillable process. To avoid this, we will
register a descriptor's kqueue event filters once only i.e. when the
descriptor is first created.
2014-05-03 10:10:12 +10:00
Christopher Kohlhoff
92a53bd3cc Compute greatest common divisor to prevent unnecessary integer overflow.
Fixes boost trac tickets #9662, #9778.
2014-05-03 10:09:04 +10:00
Christopher Kohlhoff
bd50a1b593 Ensure incomplete coroutines are correctly unwound.
We must take care not to hold a shared_ptr to the coroutine across
its own suspension point, otherwise it will not be unwound by the
io_service destructor. Move-enabled C++11 compilers take care of this
automatically, but with C++03 we must explicitly reset the shared_ptr.

Fixes boost trac ticket #9731.
2014-05-03 10:05:23 +10:00
Christopher Kohlhoff
85640f548a Fix spawn() when Boost.Coroutine v2 is used.
Fixes boost trac tickets #9442, #9928.
2014-05-03 09:40:42 +10:00
Christopher Kohlhoff
3cc2cd94be Fix delegation of continuation hook.
Fixes boost trac ticket #9741.
2014-05-03 09:28:25 +10:00
Christopher Kohlhoff
8dd99f4e04 Make system_error available via error.hpp. 2014-05-03 09:27:36 +10:00
Christopher Kohlhoff
02659b6fde Add extra #include needed by latest Xcode. 2014-05-03 09:26:42 +10:00
Christopher Kohlhoff
28f690f504 Update copyright notices. 2014-05-03 09:25:39 +10:00
Christopher Kohlhoff
0e90106a30 Make develop identical to master. 2014-05-03 08:57:44 +10:00
Christopher Kohlhoff
0d57ea2d16 Fix typos in spawn() documentation.
[SVN r86465]
2013-10-26 22:42:53 +00:00
Christopher Kohlhoff
0113c1831f Add a note to clarify that concurrent invocation is not guaranteed for handlers in different strands.
[SVN r86464]
2013-10-26 22:39:23 +00:00
Christopher Kohlhoff
41899ae46a Support older versions of OpenSSL that don't supply SSL_CTX_clear_options.
[SVN r86463]
2013-10-26 22:35:32 +00:00
Christopher Kohlhoff
8612b7b1bd Suppress conversion warnings reported by MSVC.
[SVN r86462]
2013-10-26 22:32:01 +00:00
Christopher Kohlhoff
813f272583 Fix WinRT detection.
[SVN r86152]
2013-10-03 23:59:54 +00:00
Christopher Kohlhoff
e290a34cd3 Reverted asio changed made under [85904], [85952], [86050] and [86105]. Will reconsider after 1.55 is released.
[SVN r86151]
2013-10-03 22:59:24 +00:00
Stephen Kelly
bf56879631 Asio: Remove obsolete GCC version checks.
[SVN r86105]
2013-10-01 08:42:20 +00:00
Stephen Kelly
dafe0562c7 ASIO: Clean up pragma guard comment.
[SVN r86050]
2013-09-30 11:22:07 +00:00
Stephen Kelly
93b2b4dc46 Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
Stephen Kelly
b571d87989 Asio: Remove obsolete MSVC version check.
[SVN r85904]
2013-09-25 13:51:51 +00:00
Christopher Kohlhoff
03b51d1764 MinGW fix.
[SVN r85799]
2013-09-20 12:02:33 +00:00
Christopher Kohlhoff
2c7c13012a Update buffered stream operations to adhere to current handler patterns.
[SVN r85798]
2013-09-20 12:00:44 +00:00
Christopher Kohlhoff
d08bc082f2 Implement end-of-file condition for WinRT stream sockets.
[SVN r85781]
2013-09-18 22:43:01 +00:00
Christopher Kohlhoff
d3845b7fd3 Fix prefix on extern "C" function name.
[SVN r85768]
2013-09-17 22:53:17 +00:00
Christopher Kohlhoff
1cd626f4d7 Add use_future support for Microsoft Visual C++.
[SVN r85767]
2013-09-17 22:42:50 +00:00
Christopher Kohlhoff
8047e7f180 Enable move support for Microsoft Visual C++ 2012.
[SVN r85766]
2013-09-17 22:38:04 +00:00
Christopher Kohlhoff
e746865f78 Initial port to Windows Runtime.
This change adds limited support for using Asio with the Windows
Runtime. It requires that the language extensions be enabled. Due to the
restricted facilities exposed by the Windows Runtime API, the port comes
with the following caveats:

* The core facilities such as the io_service, strand, buffers, composed
  operations, timers, etc., should all work as normal.

* For sockets, only client-side TCP is supported.

* Explicit binding of a client-side TCP socket is not supported.

* The cancel() function is not supported for sockets. Asynchronous
  operations may only be cancelled by closing the socket.

* Operations that use null_buffers are not supported.

* Only tcp::no_delay and socket_base::keep_alive options are supported.

* Resolvers do not support service names, only numbers. I.e. you must
  use 80 rather than http.

* Most resolver query flags have no effect.


[SVN r85764]
2013-09-17 22:24:19 +00:00
Christopher Kohlhoff
d6bb7d0e4a Eliminate some unnecessary handler copies.
[SVN r85763]
2013-09-17 22:14:14 +00:00
Christopher Kohlhoff
9e2fc1f61e Some async operations that missed getting the async_result treatment.
[SVN r85762]
2013-09-17 22:12:07 +00:00
Christopher Kohlhoff
06e5aeedca Visual C++ language extensions use generic as a keyword. Add a
workaround that renames the namespace to cpp_generic when those
language extensions are in effect.


[SVN r85761]
2013-09-17 22:08:43 +00:00
Christopher Kohlhoff
12f4e8280b Enable certain C++11 standard library facilities for recent versions of Microsoft Visual Studio.
[SVN r85760]
2013-09-17 22:08:07 +00:00
Christopher Kohlhoff
4752c98d59 Inore ERROR_MORE_DATA as a non-fatal error when returned by
GetOverlappedResult for a synchronous read.


[SVN r85759]
2013-09-17 22:06:25 +00:00
Christopher Kohlhoff
07f0ea9996 Remove use of std::min.
[SVN r85758]
2013-09-17 22:05:38 +00:00
Christopher Kohlhoff
10dd1488c7 Add missing forward declarations needed for Windows.
[SVN r85757]
2013-09-17 22:04:55 +00:00
Christopher Kohlhoff
558a771072 Fix documentation error where an asynchronous function was described as
having synchronous behaviour.


[SVN r85756]
2013-09-17 22:04:10 +00:00
Christopher Kohlhoff
799f24ddf8 Fix another socket descriptor comparison that doesn't work correctly if
the descriptor type is unsigned.


[SVN r85755]
2013-09-17 22:03:29 +00:00
Christopher Kohlhoff
5cd67a72cc Add missing move cast.
[SVN r85754]
2013-09-17 22:01:26 +00:00
Christopher Kohlhoff
dcc918d0a9 Clean up some internal forward declarations.
[SVN r85753]
2013-09-17 22:00:53 +00:00
Christopher Kohlhoff
8fafa6f60a Remove spurious whitespace.
[SVN r85752]
2013-09-17 21:53:45 +00:00
Christopher Kohlhoff
c230dd2ed0 Fix error in comment.
[SVN r85751]
2013-09-17 21:53:03 +00:00
Christopher Kohlhoff
131b7a25ab Clarify that programs must not issue overlapping async_write_at operations.
[SVN r85750]
2013-09-17 21:52:27 +00:00
Christopher Kohlhoff
32a41f7871 Enable the move optimisation (and otherwise eliminate a copy) for handlers
using the default invocation hook.


[SVN r85749]
2013-09-17 21:51:28 +00:00
Christopher Kohlhoff
aba096cc75 Suppress g++ 4.8+ warning about unused typedefs.
[SVN r85747]
2013-09-17 21:45:43 +00:00
Christopher Kohlhoff
749e9d2219 Ensure signal number is correctly passed to the completion handler when
starting an async_wait on a signal that is already raised.


[SVN r85746]
2013-09-17 21:43:29 +00:00
Christopher Kohlhoff
d203da445e Fix comparison used to test for a successful synchronous accept.
[SVN r85745]
2013-09-17 21:42:48 +00:00
Christopher Kohlhoff
475e3239e5 Fix a bug in handler tracking, where it was not correctly printing out some handler IDs.
[SVN r85744]
2013-09-17 21:42:08 +00:00