Commit Graph

2098 Commits

Author SHA1 Message Date
Christopher Kohlhoff
f7695e66a4 Fix shadow variable warnings. 2015-03-19 19:53:44 +11:00
Christopher Kohlhoff
b72b473cda 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.
2015-03-19 19:52:34 +11:00
Christopher Kohlhoff
4b1731d973 New macro ASIO_DISABLE_CONNECTEX to disable ConnectEx use. 2015-03-19 19:35:11 +11:00
Christopher Kohlhoff
164b961f95 Remove dependency on Boost.Test. 2015-03-19 19:35:11 +11:00
Christopher Kohlhoff
23b084bb61 Fix up support for ASIO_NO_EXCEPTIONS. 2015-03-17 20:41:14 +11:00
Christopher Kohlhoff
df9d70bc55 Fix up support for ASIO_NO_TYPEID (i.e. no RTTI). 2015-03-17 19:42:07 +11:00
Christopher Kohlhoff
e19f2bd660 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-14 09:18:52 +11:00
Christopher Kohlhoff
6614ff63b2 Fix handler tracking on WinRT. 2015-03-14 09:18:52 +11:00
Christopher Kohlhoff
55194c01f5 Remove accidentally committed makefile change. 2015-03-14 09:18:52 +11:00
Christopher Kohlhoff
d4f7353a9e Track the underlying reactor operations associated with handlers.
For reactor-based platforms only. For example, an async send on a reactor-based
platform will now log the result to each non-blocking send system call.
2015-03-14 09:18:52 +11:00
Christopher Kohlhoff
f1de530de5 Pass native handle (e.g. descriptor) to handler tracking. 2015-03-14 08:58:29 +11:00
Christopher Kohlhoff
829b4c88df Add missing implementation header to src.hpp. 2015-03-10 18:37:24 +11:00
Christopher Kohlhoff
5d686abf95 Update handler tracking arguments.
Now passes the execution context on handler creation and for operations. The
tracked handler base class is now passed by reference to help reduce the
temptation to stash a point to a soon-to-be-destroyed object.
2015-03-10 18:37:23 +11:00
Christopher Kohlhoff
27f8c672a7 Update reference index to use new address iterator/range names. 2015-03-07 21:00:27 +11:00
Christopher Kohlhoff
a35e2e0127 Add basic_address_iterator and basic_address_range templates.
Class address_iterator_v4 is now typedef address_v4_iterator.
Class address_range_v4 is now typedef address_v4_range.
Class address_iterator_v6 is now typedef address_v6_iterator.
Class address_range_v6 is now typedef address_v6_range.
2015-03-07 19:55:44 +11:00
Christopher Kohlhoff
17efec1803 Add use_future_::rebind() as replacement for operator[]. 2015-03-06 09:41:37 +11:00
Christopher Kohlhoff
4599179812 Finish implementation of move-enabled accept/async_accept. 2015-03-05 21:40:32 +11:00
Christopher Kohlhoff
c05c71e96b Revert "Change ip::address default constructor to be not-an-address."
This reverts commit d8a2f7087d.
2015-03-03 09:56:48 +11:00
Christopher Kohlhoff
f475b21437 Initial implementation of move-enable accept/async_accept.
This commit adds support for the new form of accept and async_accept. In this
form, rather than taking a socket by reference, the newly accepted socket is
returned to the caller/callback as a movable socket object.
2015-03-02 23:47:04 +11:00
Christopher Kohlhoff
7eee8f1875 Add support for custom handler tracking. 2015-02-25 07:42:17 +01:00
Christopher Kohlhoff
7c93097174 Fix handler tracking for support for the new strand. 2015-02-25 07:42:17 +01:00
Christopher Kohlhoff
91b3bb1c73 remove_reference is not needed in async_completion constructor. 2015-02-25 07:42:12 +01:00
Christopher Kohlhoff
66e76b9e42 asio version 1.11.0 released 2015-02-16 09:18:50 +11:00
Christopher Kohlhoff
691f3cd465 Revision history. 2015-02-16 08:51:46 +11:00
Christopher Kohlhoff
fee3b366a5 Fix filename clash on case-insensitive filesystems. 2015-02-16 08:51:46 +11:00
Christopher Kohlhoff
6394ab63c0 Allow nested calls to completion handler when using yield_context. 2015-02-16 08:48:03 +11:00
Christopher Kohlhoff
a5712beb31 Revert "Allow nested calls to completion handler when using yield_context."
This reverts commit 81242906a5.
2015-02-16 08:45:54 +11:00
Christopher Kohlhoff
81242906a5 Allow nested calls to completion handler when using yield_context. 2015-02-16 07:54:40 +11:00
Christopher Kohlhoff
4a19f23564 Add cpp14 examples to distribution. 2015-02-16 00:02:23 +11:00
Christopher Kohlhoff
d29d94535e Update copyright notices. 2015-02-16 00:02:23 +11:00
Christopher Kohlhoff
a4a02f2181 Regenerate documentation. 2015-02-16 00:02:23 +11:00
Christopher Kohlhoff
060d301688 Treat multicast test failures with ENODEV as non-fatal. 2015-02-16 00:02:23 +11:00
Christopher Kohlhoff
76cf93cb8f Mark io_service::work as deprecated. 2015-02-16 00:01:01 +11:00
Christopher Kohlhoff
1597807251 Update quick reference. 2015-02-16 00:01:01 +11:00
Christopher Kohlhoff
aa5e09ea5a Add DynamicBufferSequence requirements. 2015-02-16 00:01:01 +11:00
Christopher Kohlhoff
fcdb166686 Show rvalue reference parameters in documentation. 2015-02-15 18:14:50 +11:00
Christopher Kohlhoff
6f13c5bd15 Documentation fixes. 2015-02-15 18:14:50 +11:00
Christopher Kohlhoff
cd6ddda029 Remove stray @endcode. 2015-02-15 17:51:06 +11:00
Christopher Kohlhoff
895e93526f Fix long line. 2015-02-15 17:47:49 +11:00
Christopher Kohlhoff
82fb618e68 Work around MSVC compile error. 2015-02-15 17:31:16 +11:00
Christopher Kohlhoff
33e64f705a Map ConnectEx errors to portable equivalents.
Fixes boost trac ticket 10744.
2015-02-15 17:07:32 +11:00
Christopher Kohlhoff
24cce671f7 Enable perfect forwarding for ssl::stream constructor argument. 2015-02-15 16:41:02 +11:00
Christopher Kohlhoff
57d5b76ece Fix ssl::stream bug that may cause spurious 'short read' errors. 2015-02-15 16:23:40 +11:00
Christopher Kohlhoff
956979b445 Add support for networks and address ranges.
The following new classes have been added:
- address_iterator_v4: for iterating across IPv4 addresses
- address_iterator_v6: for iterating across IPv6 addresses
- address_range_v4: to represent a range of IPv4 addresses
- address_range_v6: to represent a range of IPv6 addresses
- network_v4: for manipulating IPv4 CIDR addresses, e.g. 1.2.3.0/24
- network_v6: for manipulating IPv6 CIDR addresses, e.g. ffe0:/120

Thanks go to Oliver Kowalke for contributing to the design and providing
the implementation on which this facility is based.
2015-02-15 15:30:32 +11:00
Christopher Kohlhoff
d8a2f7087d Change ip::address default constructor to be not-an-address. 2015-02-15 12:15:57 +11:00
Christopher Kohlhoff
18ab5cee19 Fix some shadow warnings. 2015-02-15 11:09:26 +11:00
Christopher Kohlhoff
8d08c7e08e Move result into coro_handler. 2015-02-15 11:09:17 +11:00
Christopher Kohlhoff
a8b694752e Add support for dynamic buffer sequences.
This commit adds:

- New dynamic_string_buffer and dynamic_vector_buffer adapter classes that meet
  the DynamicBufferSequence type requirements.

- New dynamic_buffer() factory functions for creating a dynamic buffer adapter
  for a vector or string.

- New overloads for the read(), async_read(), write() and async_write(),
  read_until() and async_read_until() free functions.

N.B. the read_at, async_read_at, write_at and async_write_at functions have not
yet been updated to support dynamic buffer sequences.
2015-02-15 10:59:09 +11:00
Christopher Kohlhoff
33ae61e76e std::addressof isn't available until g++ 4.6. 2015-02-15 10:52:44 +11:00
Christopher Kohlhoff
d35db94c12 Move result of a yield_context operation. 2015-02-15 10:52:43 +11:00