Commit Graph

138 Commits

Author SHA1 Message Date
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
280a7d55b3 Remove the stackless coroutine class and macros from the HTTP server 4
example, and instead make them a part of Asio's documented interface.


[SVN r84346]
2013-05-18 11:54:59 +00:00
Christopher Kohlhoff
95d16d75b7 Update copyright notices.
[SVN r84345]
2013-05-18 11:24:59 +00:00
Christopher Kohlhoff
9644fab951 Partially decouple Asio from other boost components via an extra level
of indirection.


[SVN r84315]
2013-05-17 10:06:50 +00:00
Christopher Kohlhoff
546362b425 Add the asio::use_future special value, which adds first-class support
for returning a C++11 std::future from an asynchronous operation's
initiating function.

To use asio::use_future, pass it to an asynchronous operation instead of
a normal completion handler. For example:

  std::future<std::size_t> length =
    my_socket.async_read_some(my_buffer, asio::use_future);

Where a completion handler signature has the form:

  void handler(error_code ec, result_type result);

the initiating function returns a std::future templated on result_type.
In the above example, this is std::size_t. If the asynchronous operation
fails, the error_code is converted into a system_error exception and
passed back to the caller through the future.

Where a completion handler signature has the form:

  void handler(error_code ec);

the initiating function returns std::future<void>. As above, an error
is passed back in the future as a system_error exception.


[SVN r84313]
2013-05-17 02:35:08 +00:00
Christopher Kohlhoff
4f1d36c7a1 Move existing examples into a C++03-specific directory, and add a new
directory for C++11-specific examples. A limited subset of the C++03
examples have been converted to their C++11 equivalents.


[SVN r84312]
2013-05-17 02:25:10 +00:00
Christopher Kohlhoff
e4b53793cc Add the asio::spawn() function, a high-level wrapper for running
stackful coroutines. It is based on the Boost.Coroutine library.

Here is an example of its use:

  asio::spawn(my_strand, do_echo);

  // ...

  void do_echo(asio::yield_context yield)
  {
    try
    {
      char data[128];
      for (;;)
      {
        std::size_t length =
          my_socket.async_read_some(
            asio::buffer(data), yield);

        asio::async_write(my_socket,
            asio::buffer(data, length), yield);
      }
    }
    catch (std::exception& e)
    {
      // ...
    }
  }

The first argument to asio::spawn() may be a strand, io_service or
completion handler. This argument determines the context in which the
coroutine is permitted to execute. For example, a server's per-client
object may consist of multiple coroutines; they should all run on the
same strand so that no explicit synchronisation is required.

The second argument is a function object with signature (**):

  void coroutine(asio::yield_context yield);

that specifies the code to be run as part of the coroutine. The
parameter yield may be passed to an asynchronous operation in place of
the completion handler, as in:

  std::size_t length =
    my_socket.async_read_some(
      asio::buffer(data), yield);

This starts the asynchronous operation and suspends the coroutine. The
coroutine will be resumed automatically when the asynchronous operation
completes.

Where a completion handler signature has the form:

  void handler(error_code ec, result_type result);

the initiating function returns the result_type. In the async_read_some
example above, this is std::size_t. If the asynchronous operation fails,
the error_code is converted into a system_error exception and thrown.

Where a completion handler signature has the form:

  void handler(error_code ec);

the initiating function returns void. As above, an error is passed back
to the coroutine as a system_error exception.

To collect the error_code from an operation, rather than have it throw
an exception, associate the output variable with the yield_context as
follows:

  error_code ec;
  std::size_t length =
    my_socket.async_read_some(
      asio::buffer(data), yield[ec]);

**Note: if asio::spawn() is used with a custom completion handler of
type Handler, the function object signature is actually:
  
  void coroutine(asio::basic_yield_context<Handler> yield);


[SVN r84311]
2013-05-17 01:38:47 +00:00
Christopher Kohlhoff
bd5f93f3df Treat errors from accept as non-fatal. Refs #7488
[SVN r82260]
2012-12-29 13:14:37 +00:00
Christopher Kohlhoff
30f3e430a7 Update copyright notices.
[SVN r76420]
2012-01-11 23:04:08 +00:00
Christopher Kohlhoff
52b61e7e77 Remove unused state.
[SVN r74819]
2011-10-08 21:21:54 +00:00
Christopher Kohlhoff
2f5fcaf01c * Add documentation for new features.
* Duration type should be signed in tick_count_timer example.

* Regenerate documentation.

* Make definition of BOOST_ASIO_MOVE_ARG and BOOST_ASIO_MOVE_CAST separate to
  the definition of BOOST_ASIO_HAS_MOVE, to allow the latter to be user-defined.


[SVN r72404]
2011-06-05 13:29:41 +00:00
Christopher Kohlhoff
825d1c90c6 Treat accept failure as a non-fatal error in most examples.
[SVN r72142]
2011-05-24 23:33:55 +00:00
Christopher Kohlhoff
64b410b2ca Updated move support.
[SVN r71708]
2011-05-04 00:02:18 +00:00
Christopher Kohlhoff
a2000c8a38 Use new signal_set to shut down.
[SVN r71707]
2011-05-03 23:57:23 +00:00
Christopher Kohlhoff
06747ea7c9 * Add documentation for new asio::buffer() overloads for std::array.
* Improve backward compatibility of the new SSL implementation.

* Add wrapper for SSL_CTX_set_default_verify_paths().

* Document which OpenSSL functions the ssl::context member functions use.

* Add SSL certificate verification callbacks, and add a new
  ssl::rfc2818_verification function object for simple peer certificate
  verification based on the host name.

* Use std::atomic<> when available.

* Prefer to use std::array when it is available.

* Use std::shared_ptr and std::weak_ptr when available.

* Use a lightweight scoped smart pointer.

* Fix some shadow variable warnings with g++ 4.6.


[SVN r70384]
2011-03-22 01:21:50 +00:00
Christopher Kohlhoff
ad1c100832 New SSL implementation.
[SVN r70096]
2011-03-18 00:25:54 +00:00
Christopher Kohlhoff
d41d2d15e9 * Add support for the fork() system call. Programs that use fork must call
io_service.notify_fork() at the appropriate times. Two new examples have been
  added showing how to use this feature. Refs #3238, #4162.

* Clean up the handling of errors reported by the close() system call. In
  particular, assume that most operating systems won't have close() fail with
  EWOULDBLOCK, but if it does then set blocking mode and restart the call. If
  any other error occurs we assume the descriptor is closed. Refs #3307.

* EV_ONESHOT seems to cause problems on some versions of Mac OS X, with the
  io_service destructor getting stuck inside the close() system call. Use
  EV_CLEAR instead. Refs #5021.

* Include function name in exception what() messages.

* Fix insufficient initialisers warning with MinGW.

* Make the shutdown_service() member functions private.

* Add archetypes for testing socket option functions.

* Add missing lock in signal_set_service::cancel().

* Fix copy/paste error in SignalHandler example.

* The signal header needs to be included in signal_set_service.hpp so that we
  can use constants like NSIG and SIGRTMAX.

* Don't use Boost.Thread's convenience header. Use the header file that is
  specifically for the boost::thread class instead.


[SVN r69467]
2011-03-02 08:27:32 +00:00
Christopher Kohlhoff
f064021b6d Changes for asio version 1.5.1:
* Added support for signal handling, using a new class called
  signal_set. Programs may add one or more signals to the set, and then
  perform an async_wait() operation. The specified handler will be
  called when one of the signals occurs. The same signal number may
  registered with multiple signal_set objects, however the signal number
  must be used only with Asio.

* Added handler tracking, a new debugging aid. When enabled by defining
  BOOST_ASIO_ENABLE_HANDLER_TRACKING, Asio writes debugging output to
  the standard error stream. The output records asynchronous operations
  and the relationships between their handlers. It may be post-processed
  using the included [^handlerviz.pl] tool to create a visual
  representation of the handlers (requires GraphViz).

* Fixed a bug in asio::streambuf where the consume() function did not
  always update the internal buffer pointers correctly. The problem may
  occur when the asio::streambuf is filled with data using the standard
  C++ member functions such as sputn(). (Note: the problem does not
  manifest when the streambuf is populated by the Asio free functions
  read(), async_read(), read_until() or async_read_until().)

* Fixed a bug on kqueue-based platforms, where reactor read operations
  that return false from their perform() function are not correctly
  re-registered with kqueue.

* Modified the buffers_iterator<> and ip::basic_resolver_iterator
  classes so that the value_type typedefs are non-const byte types.


[SVN r69198]
2011-02-23 01:42:40 +00:00
Christopher Kohlhoff
7139b456d2 Changes for asio version 1.5.0:
* Added support for timeouts on socket iostreams, such as
  ip::tcp::iostream. A timeout is set by calling expires_at() or
  expires_from_now() to establish a deadline. Any socket operations
  which occur past the deadline will put the iostream into a bad state.

* Added a new error() member function to socket iostreams, for
  retrieving the error code from the most recent system call.

* Added a new basic_deadline_timer::cancel_one() function. This function
  lets you cancel a single waiting handler on a timer. Handlers are
  cancelled in FIFO order.

* Added a new transfer_exactly() completion condition. This can be used
  to send or receive a specified number of bytes even if the total size
  of the buffer (or buffer sequence) is larger.

* Added new free functions connect() and async_connect(). These
  operations try each endpoint in a list until the socket is
  successfully connected.

* Extended the buffer_size() function so that it works for buffer
  sequences in addition to individual buffers.

* Added a new buffer_copy() function that can be used to copy the raw
  bytes between individual buffers and buffer sequences.

* Added new non-throwing overloads of read(), read_at(), write() and
  write_at() that do not require a completion condition.

* Added friendlier compiler errors for when a completion handler does
  not meet the necessary type requirements. When C++0x is available
  (currently supported for g++ 4.5 or later, and MSVC 10), static_assert
  is also used to generate an informative error message. Checking may be
  disabled by defining BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS.

* Made the is_loopback(), is_unspecified() and is_multicast() functions
  consistently available across the ip::address, ip::address_v4 and
  ip::address_v6 classes. Refs #3939.

* Added new non_blocking() functions for managing the non-blocking
  behaviour of a socket or descriptor. The io_control() commands named
  non_blocking_io are now deprecated in favour of these new functions.

* Added new native_non_blocking() functions for managing the
  non-blocking mode of the underlying socket or descriptor. These
  functions are intended to allow the encapsulation of arbitrary
  non-blocking system calls as asynchronous operations, in a way that is
  transparent to the user of the socket object. The functions have no
  effect on the behaviour of the synchronous operations of the socket or
  descriptor. Refs #3307.

* Added the io_control() member function for socket acceptors.
  Refs #3297.

* For consistency with the C++0x standard library, deprecated the
  native_type typedefs in favour of native_handle_type, and the native()
  member functions in favour of native_handle().

* Added a release() member function to posix descriptors. This function
  releases ownership of the underlying native descriptor to the caller.
  Refs #3900.

* Added support for sequenced packet sockets (SOCK_SEQPACKET).

* Added a new io_service::stopped() function that can be used to
  determine whether the io_service has stopped (i.e. a reset() call is
  needed prior to any further calls to run(), run_one(), poll() or
  poll_one()).

* Reduced the copying of handler function objects.

* Added support for C++0x move construction to further reduce copying of
  handler objects. Move support is enabled when compiling in -std=c++0x
  mode on g++ 4.5 or higher, or when using MSVC10.

* Removed the dependency on OS-provided macros for the well-known IPv4
  and IPv6 addresses. This should eliminate the annoying "missing braces
  around initializer" warnings. Refs #3741.

* Reduced the size of ip::basic_endpoint<> objects (such as
  ip::tcp::endpoint and ip::udp::endpoint).

* Changed the reactor backends to assume that any descriptors or sockets
  added using assign() may have been dup()-ed, and so require explicit
  deregistration from the reactor. Refs #4971.

* Changed the SSL error category to return error strings from the
  OpenSSL library.

* Changed the separate compilation support such that, to use Asio's SSL
  capabilities, you should also include 'asio/ssl/impl/src.hpp in one
  source file in your program.

* Removed the deprecated member functions named io_service(). The
  get_io_service() member functions should be used instead.

* Removed the deprecated typedefs resolver_query and resolver_iterator
  from the ip::tcp, ip::udp and ip::icmp classes.

* Fixed a compile error on some versions of g++ due to anonymous enums.
  Refs #4883.

* Added an explicit cast to the FIONBIO constant to int to suppress a
  compiler warning on some platforms. Refs #5128.

* Fixed warnings reported by g++'s -Wshadow compiler option. Refs #3905.


[SVN r69194]
2011-02-23 01:04:16 +00:00
Steven Watanabe
9bbd81e717 Revert [67111] (addition of boost/detail/iomanip.hpp) and all the commits that depend on it. ([68137], [68140], [68141], [68154], and [68165]).
[SVN r68168]
2011-01-15 08:11:51 +00:00
Bryce Adelstein-Lelbach
c5741b2171 Replacing the use of <iomanip> with <boost/detail/iomanip.hpp> across Boost.
On Linux, GNU's libstdc++, which is the default stdlib for icc and clang,
cannot parse the <iomanip> header in version 4.5+ (which thankfully neither
compiler advises the use of yet), as it's original C++98-friendly
implementation has been replaced with a gnu++0x implementation.
<boost/detail/iomanip.hpp> is a portable implementation of <iomanip>, providing
boost::detail::setfill, boost::detail::setbase, boost::detail::setw,
boost::detail::setprecision, boost::detail::setiosflags and
boost::detail::resetiosflags. 



[SVN r68140]
2011-01-14 02:35:58 +00:00
Christopher Kohlhoff
b1dced94c8 Update copyright notice.
[SVN r68086]
2011-01-13 08:14:05 +00:00
Christopher Kohlhoff
1654c3271c Reworked timeout examples.
[SVN r63569]
2010-07-04 06:53:57 +00:00
Christopher Kohlhoff
fb811aa099 Fix coroutine macros to work with MSVC's edit-and-continue debug settings.
[SVN r63568]
2010-07-04 06:49:18 +00:00
Christopher Kohlhoff
ff9915419b Fix typo in tutorial. Refs #4252.
[SVN r62549]
2010-06-08 04:27:26 +00:00
Christopher Kohlhoff
0f5629d445 Reworked implementation MkII
[SVN r62499]
2010-06-07 00:00:45 +00:00
Christopher Kohlhoff
3f3c9aefa1 Add note to examples on how to limit asio::streambuf growth.
[SVN r60685]
2010-03-18 02:15:23 +00:00
Christopher Kohlhoff
a7710aa4ec Add coroutine::is_complete() and support for "yield break;".
[SVN r59103]
2010-01-17 21:42:36 +00:00
Christopher Kohlhoff
5462e44fd2 Add HTTP Server 4 example.
[SVN r58900]
2010-01-11 12:22:33 +00:00
Christopher Kohlhoff
f6df78b3dc Fix example to compile with MSVC 10 beta 2.
[SVN r58670]
2010-01-04 12:33:04 +00:00
Christopher Kohlhoff
45acb2f756 Use boost::addressof to get the address of handler objects, rather than
applying operator& directly. Refs #2977.


[SVN r58627]
2010-01-02 08:24:12 +00:00
Christopher Kohlhoff
20a822c591 Update copyright notices.
[SVN r58623]
2010-01-02 01:24:52 +00:00
Christopher Kohlhoff
13322b3c3b Add ping example.
[SVN r54767]
2009-07-07 12:37:15 +00:00
Christopher Kohlhoff
fd411319a4 Fix various g++ warnings. Ref #1341.
[SVN r54393]
2009-06-27 07:07:40 +00:00
Christopher Kohlhoff
0d70590780 Add missing #include <iostream>.
[SVN r51006]
2009-02-04 06:46:58 +00:00
Christopher Kohlhoff
0b5c6d9a2b Add a new POSIX-specific chat client showing how to use the
posix::stream_descriptor class.


[SVN r49483]
2008-10-29 12:50:58 +00:00
Christopher Kohlhoff
6e64678759 Add example showing use of local::stream_protocol::iostream.
[SVN r49200]
2008-10-09 06:32:00 +00:00
Christopher Kohlhoff
8726d4169c Fix error in comment.
[SVN r48526]
2008-09-01 23:07:29 +00:00
Christopher Kohlhoff
4696ee9033 Add class to allow use of arbitrary Windows overlapped I/O operations.
[SVN r48495]
2008-08-31 11:38:52 +00:00
Christopher Kohlhoff
4a357c7fa3 Add more UNIX domain socket examples.
[SVN r47261]
2008-07-09 12:00:56 +00:00
Christopher Kohlhoff
aa76939ff4 Add example showing how to use UNIX domain sockets with connect_pair().
[SVN r47249]
2008-07-08 22:54:38 +00:00
Christopher Kohlhoff
3102715354 Add missing copyright notices.
[SVN r46766]
2008-06-27 05:38:16 +00:00
Christopher Kohlhoff
888b36fa55 Add porthopper example to demonstrate applications that mix synchronous and
asynchronous operations.


[SVN r44678]
2008-04-21 05:43:42 +00:00
Christopher Kohlhoff
a277af13a5 Add a special null_buffers type that allows read and write operations to
be used to indicate the socket's readiness to read or write without
blocking.


[SVN r44673]
2008-04-21 04:02:37 +00:00
Christopher Kohlhoff
17ef45244b Enhance example to make it clear that invocation hooking can be used with
asynchronous operations.


[SVN r44665]
2008-04-21 01:36:28 +00:00
Christopher Kohlhoff
02e47999fa Update copyright notices.
[SVN r43473]
2008-03-03 14:13:01 +00:00
Christopher Kohlhoff
f99a3cb814 Update copyright notices.
[SVN r43472]
2008-03-03 14:05:35 +00:00
Christopher Kohlhoff
ff29c1bcfb Only define _XOPEN_SOURCE_EXTENDED when building with gcc on HP-UX.
[SVN r43302]
2008-02-18 13:33:23 +00:00
Christopher Kohlhoff
1a1f24c49f Fix printing of error messages.
[SVN r43301]
2008-02-18 13:31:26 +00:00
Christopher Kohlhoff
86dc84f36d Need to define _XOPEN_SOURCE_EXTENDED when compiling for HP-UX.
[SVN r43221]
2008-02-11 13:59:44 +00:00
Christopher Kohlhoff
2e343266ab Fix concept name in comment.
[SVN r42750]
2008-01-14 13:13:35 +00:00
Christopher Kohlhoff
09665bffa4 Ensure asio header comes before boost.thread header.
[SVN r41870]
2007-12-08 14:03:40 +00:00
Christopher Kohlhoff
811d967f52 Add get_io_service() synonym for io_service() to match TR2 proposal.
[SVN r40176]
2007-10-19 08:09:55 +00:00
Christopher Kohlhoff
5af39ab4ef Make Windows XP the default target Windows version as the latest Windows
SDK doesn't support IPv6 for Windows 2000 targets.


[SVN r40108]
2007-10-17 07:58:38 +00:00
Christopher Kohlhoff
7825a45960 Add missing "lib ipv6 ;" that's needed for HP-UX.
[SVN r39517]
2007-09-25 01:56:46 +00:00
Christopher Kohlhoff
0987067acc Add extra library 'ipv6' needed on HP-UX.
[SVN r39509]
2007-09-24 13:32:47 +00:00
Christopher Kohlhoff
9f53a075ff Define _WIN32_WINNT to suppress warnings. Add define necessary
for building with cygwin.


[SVN r39100]
2007-09-01 07:32:28 +00:00
Christopher Kohlhoff
ff67d39c15 Ignore errors from shutdown().
[SVN r39093]
2007-09-01 06:13:02 +00:00
Vladimir Prus
00be9349dc Revive V1 Jamfiles at Christopher's request
[SVN r38822]
2007-08-21 13:55:41 +00:00
Christopher Kohlhoff
0a83dd0dc5 Clean up gcc warnings.
[SVN r38790]
2007-08-20 14:21:47 +00:00
Christopher Kohlhoff
a1971d2123 Use shutdown() for portable graceful connection closure.
[SVN r38789]
2007-08-20 14:19:49 +00:00
Christopher Kohlhoff
b1b7505e4d Fix inspect errors.
[SVN r38781]
2007-08-20 13:48:38 +00:00
Vladimir Prus
fb46c8923e Remove V1 Jamfiles
[SVN r38516]
2007-08-08 19:02:26 +00:00
Christopher Kohlhoff
0e60b07b4f Add handling for URL-escaping of spaces as plus signs. Remove unnecessary
slash from request path.


[SVN r38054]
2007-06-21 23:39:22 +00:00
Christopher Kohlhoff
1248ab625c Try to fix Borland C++ compile errors.
[SVN r37722]
2007-05-20 03:50:23 +00:00
Christopher Kohlhoff
44af0244a6 Fix URL-decoding.
[SVN r37721]
2007-05-20 02:52:00 +00:00
Christopher Kohlhoff
47e59d1958 Add example illustrating a custom handler invocation hook.
[SVN r37630]
2007-05-08 13:02:39 +00:00
Christopher Kohlhoff
6812338b31 Add Jamfiles for new HTTP server examples.
[SVN r37615]
2007-05-07 12:39:31 +00:00
Christopher Kohlhoff
4992d2358a Artifacts of new boostify.pl.
[SVN r37613]
2007-05-07 11:49:21 +00:00
Christopher Kohlhoff
5f61b15b8d Add new HTTP server examples illustrating io_service-per-cpu and
single-io_service-multiple-threads designs.


[SVN r37612]
2007-05-07 11:46:23 +00:00
Christopher Kohlhoff
084ae264c2 Fix usage message.
[SVN r37390]
2007-04-07 08:57:15 +00:00
Christopher Kohlhoff
bd14eccee7 Fix error_code output.
[SVN r37019]
2007-02-20 13:18:37 +00:00
Christopher Kohlhoff
3e72c27764 Update copyright strings to include 2007.
[SVN r36757]
2007-01-19 01:57:08 +00:00
Christopher Kohlhoff
304d62cf9f Add SOCKS 4 client example.
[SVN r36750]
2007-01-18 13:26:33 +00:00
Christopher Kohlhoff
4ee1510c76 Update socket interfaces to match TR2 proposal.
[SVN r36675]
2007-01-09 13:54:51 +00:00
Christopher Kohlhoff
2b4748aaaa Update copyright strings to include 2007.
[SVN r36581]
2007-01-04 05:53:07 +00:00
Christopher Kohlhoff
e4d9ea696a Add io_service::id to identify service classes.
[SVN r36580]
2007-01-04 03:43:37 +00:00
Christopher Kohlhoff
00690b50ed Add documentation.
[SVN r36502]
2006-12-24 08:35:08 +00:00
Christopher Kohlhoff
bc63a367f9 Add BBv2 support.
[SVN r36412]
2006-12-16 02:27:07 +00:00
Christopher Kohlhoff
7c9fe2a5ac Ensure that what gets thrown is the system_error exception.
[SVN r35947]
2006-11-09 11:21:43 +00:00
Christopher Kohlhoff
852668d1da Change error handling to match TR2 proposal.
[SVN r35911]
2006-11-08 05:32:17 +00:00
Christopher Kohlhoff
da2ef49a00 Add max_size() function to basic_streambuf.
Make basic_io_object constructor protected.

Make a 0-length send or receive on a stream socket into a no-op.

Add cancel() function for cancelling asynchronous socket operations.
The Win32 implementation only works if all operations for the socket
have been issued from the same thread, otherwise it fails with
asio::error::not_supported.

Add workaround for an apparent Windows bug where using getpeername on
a socket accepted using AcceptEx will sometimes return an endpoint
that is all zeroes.

Make a strand last as long as it has any handlers to dispatch. Make
strand a nested class of io_service.

Add io_service() function to io_service::work to return a reference to
the io_service object on which the work is being performed. Renamed
io_service::service::owner() to io_service::service::io_service().

Unset linger object when socket objects are destroyed.

Rename asio_handler_dispatch to asio_handler_invoke.

Rename basic_socketbuf to basic_socket_streambuf.

Update ip::address_v4 and ip::address_v6 classes to match TR2
proposal.

Add run_one(), poll() and poll_one() functions to the io_service.

Remove need to #define FD_SETSIZE on Win32.

Add detection of incorrect inclusion of WinSock.h.

Fix some SSL bugs. Add ability to customise the SSL password callback
function.

Set the reuse_address option by default on acceptors.

The macros FIONREAD and FIONBIO are not integer constants on all
platforms, and so cannot be used as template arguments. Make the
corresponding I/O control commands into proper classes, not templates.

Fixes to better support *BSD platforms.

Add support for buffer debugging, if the standard library supports
iterator debugging (as MSVC8's standard lib does).

Ensure the IOCP queue is drained correctly at shutdown.

Move basic_resolver and resolver service into the ip namespace.

Fix some issues found by the inspect tool.


[SVN r35833]
2006-11-04 07:14:10 +00:00
Christopher Kohlhoff
8e4fa8f544 Maintain separate timer queues for each time traits type.
[SVN r34740]
2006-07-26 11:23:25 +00:00
Christopher Kohlhoff
0c65769b47 Add copyright notices.
[SVN r34726]
2006-07-25 11:04:06 +00:00
Christopher Kohlhoff
72dfeb78e5 Add overloads of read_until and async_read_until that take a string. Fix
bug in regex-based overload of async_read_until.


[SVN r34488]
2006-07-09 07:08:03 +00:00
Christopher Kohlhoff
57f293b77c Add HTTP client examples that show how to use read_until/async_read_until.
[SVN r34335]
2006-06-18 08:09:48 +00:00
Christopher Kohlhoff
da0cf5f68a Initial asio checkin.
[SVN r34306]
2006-06-14 22:26:36 +00:00