2
0
mirror of https://github.com/boostorg/asio.git synced 2026-02-01 08:02:08 +00:00
Commit Graph

596 Commits

Author SHA1 Message Date
Christopher Kohlhoff
353e71c965 Fix bullet list.
[SVN r72805]
2011-06-29 23:31:37 +00:00
Christopher Kohlhoff
70243efb24 Revision history.
[SVN r72432]
2011-06-06 11:56:18 +00:00
Christopher Kohlhoff
2a4c82ab84 Add TOC entry for fork.
[SVN r72426]
2011-06-05 21:40:24 +00:00
Christopher Kohlhoff
a166d19a13 Update overview TOC.
[SVN r72408]
2011-06-05 14:35:14 +00:00
Christopher Kohlhoff
2a89061940 Use correct source mode.
[SVN r72407]
2011-06-05 14:34:45 +00:00
Christopher Kohlhoff
e5818e7994 Include the io_service::service class's private member functions in the documentation.
[SVN r72406]
2011-06-05 14:09:04 +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
ee9089cea9 * Prevent truncation of some handler tracking output.
* Using directive only needed in write_line() function.


[SVN r72141]
2011-05-24 23:28:14 +00:00
Christopher Kohlhoff
da4617cc90 * Add move constructors and assignment operators to endpoint and address classes.
* Add support for platforms that have no signal support.

* Use using declarations when finding customisation hooks.


[SVN r72024]
2011-05-17 21:46:54 +00:00
Christopher Kohlhoff
9ec95f5fb0 Fix move-related bug in strand implementation. Refs #5515.
[SVN r71738]
2011-05-05 13:22:29 +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
1a6b11f287 Changes for openssl 1.0.
[SVN r71706]
2011-05-03 23:55:03 +00:00
Christopher Kohlhoff
56ce545fda * Use variadic templates when supported.
* On Windows, ensure the count of outstanding work is decremented for
  abandoned operations (i.e. operations that are being cleaned up within
  the io_service destructor).

* Fix basic_socket_streambuf compile error when using MSVC 10's std::array.

* Preserve the value of errno across the signal handler.

* Fix unused return value warning.

* Fix various minor documentation errors.


[SVN r70751]
2011-03-30 12:58:14 +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
9d47d1066b Fix error in doxygen comment. Regenerate documentation.
[SVN r70104]
2011-03-18 02:00:08 +00:00
Christopher Kohlhoff
ad1c100832 New SSL implementation.
[SVN r70096]
2011-03-18 00:25:54 +00:00
Christopher Kohlhoff
77d5583fe3 Add asio::buffer() overloads for std::array.
[SVN r70095]
2011-03-18 00:17:32 +00:00
Christopher Kohlhoff
8bd4e3a589 Remaining changes for asio 1.5.2:
* Added support for C++0x move construction and assignment to sockets, serial
  ports, POSIX descriptors and Windows handles.

* Regenerate documentation.


[SVN r70092]
2011-03-17 23:35:59 +00:00
Christopher Kohlhoff
d5ec01e6cc Don't assume SIGRTMAX is a compile-time constant.
[SVN r69516]
2011-03-03 11:56:32 +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
Christopher Kohlhoff
6ddfb69440 Revision history.
[SVN r68178]
2011-01-16 01:38:16 +00:00
Christopher Kohlhoff
20306c3852 Use correct interrupt method when timerfd is not available. Refs #5045
[SVN r68169]
2011-01-15 09:32:13 +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
4b019c3d1d Fix out-of-bounds address_v4::broadcast() return value on 64-bit systems.
[SVN r68088]
2011-01-13 09:13:30 +00:00
Christopher Kohlhoff
678d7ff74e Version bump.
[SVN r68087]
2011-01-13 09:09:09 +00:00
Christopher Kohlhoff
b1dced94c8 Update copyright notice.
[SVN r68086]
2011-01-13 08:14:05 +00:00
Bryce Adelstein-Lelbach
8f2012da28 Pathscale 4.0.0's stdlib (rw) has a <streambuf> that doesn't include <iostream>;
added an include to <iostream> here as this file needs it.



[SVN r67851]
2011-01-09 04:47:56 +00:00
Christopher Kohlhoff
3d76a5a994 Fixed a Windows-specific problem where failures from accept() are incorrectly treated as successes. Refs #4859.
[SVN r66613]
2010-11-16 13:16:45 +00:00
Christopher Kohlhoff
60724f91ab MacPorts gcc also defines __APPLE_CC__, but to 1.
[SVN r66398]
2010-11-04 11:40:42 +00:00
Christopher Kohlhoff
ddc92ac35f Target workaround at non-Apple objective-c++ compilers only, as the previous
workaround broke those platforms. Pragmas push_macro and pop_macro are only
available on gcc 4.4 or later, so use plain ol' #define/#undef instead.


[SVN r66289]
2010-10-30 22:45:29 +00:00
Christopher Kohlhoff
200db06b39 More revision history.
[SVN r66241]
2010-10-28 20:51:01 +00:00
Christopher Kohlhoff
48e36ad46f Revision history.
[SVN r66176]
2010-10-25 13:06:29 +00:00
Christopher Kohlhoff
84ff434f23 Rename separate compilation header. Refs #4560.
[SVN r66174]
2010-10-25 12:26:06 +00:00
Christopher Kohlhoff
6fd0719fc4 Fix failure in socket_base test on NetBSD.
[SVN r66162]
2010-10-24 13:15:46 +00:00
Christopher Kohlhoff
24dade9009 Fix kqueue_reactor so that it compiles on NetBSD. Refs #4662.
[SVN r66159]
2010-10-24 07:58:23 +00:00
Christopher Kohlhoff
6fa2efadba Fix vector reallocation performance problem. Refs #4780.
[SVN r66158]
2010-10-24 02:06:46 +00:00
Christopher Kohlhoff
139642203c Fix for IBM C++ compiler.
[SVN r66156]
2010-10-24 00:26:10 +00:00
Christopher Kohlhoff
b4479ed01e Version check not required.
[SVN r66144]
2010-10-22 12:20:52 +00:00
Christopher Kohlhoff
5ea3ac4f9a Redefine Protocol and id to avoid clashing with Objective-C++ keywords. Refs #4191.
[SVN r66143]
2010-10-22 12:07:36 +00:00
Christopher Kohlhoff
25330ccc52 Fix unused parameter warnings.
[SVN r66075]
2010-10-18 12:27:12 +00:00
Christopher Kohlhoff
b12329f181 Fix so that read operations do not accept const_buffers_1 arguments. Refs #4746.
[SVN r66056]
2010-10-17 21:24:55 +00:00
Christopher Kohlhoff
f939fad2fc Version bump.
[SVN r66035]
2010-10-17 11:33:28 +00:00
Christopher Kohlhoff
99bb1215e2 Pass NULL for servname rather than empty string, as per POSIX. Refs #4690.
[SVN r66022]
2010-10-16 13:15:51 +00:00
Christopher Kohlhoff
056bbee611 Timers with expiry times set more than 5 minutes in the future need the
waitable timer to be periodic. Refs #4745.


[SVN r66020]
2010-10-16 12:59:29 +00:00
Christopher Kohlhoff
da63086d10 Fix Windows build when thread support is disabled. Refs #4680.
[SVN r66018]
2010-10-16 12:39:06 +00:00