Boost logo

Boost-Commit :

From: chris_at_[hidden]
Date: 2007-12-15 17:00:21


Author: chris_kohlhoff
Date: 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
New Revision: 42084
URL: http://svn.boost.org/trac/boost/changeset/42084

Log:
Merged revisions 41701-41702,41706,41708-41726,41728-41733,41737,41743-41769,41771-41774,41776-41777,41779-41787,41790,41792-41794,41796-41797,41799-41800,41803-41804,41806-41818,41820-41829,41831-41841,41843-41862,41865,41867-41870 via svnmerge from
https://svn.boost.org/svn/boost/trunk

........
  r41701 | chris_kohlhoff | 2007-12-05 08:28:42 +1100 (Wed, 05 Dec 2007) | 2 lines
  
  Prevent deprecated function warnings for MSVC >= 8.
........
  r41762 | chris_kohlhoff | 2007-12-06 08:46:19 +1100 (Thu, 06 Dec 2007) | 2 lines
  
  Don't use deprecated function workaround when compiling for Windows CE.
........
  r41823 | chris_kohlhoff | 2007-12-07 23:53:39 +1100 (Fri, 07 Dec 2007) | 2 lines
  
  Try to fix stall when sending large amounts of data over SSL.
........
  r41845 | chris_kohlhoff | 2007-12-08 11:18:59 +1100 (Sat, 08 Dec 2007) | 2 lines
  
  Documentation fixes.
........
  r41867 | chris_kohlhoff | 2007-12-09 00:00:45 +1100 (Sun, 09 Dec 2007) | 2 lines
  
  Documentation fixes.
........
  r41868 | chris_kohlhoff | 2007-12-09 00:48:52 +1100 (Sun, 09 Dec 2007) | 2 lines
  
  Suppress signed/unsigned warning.
........
  r41870 | chris_kohlhoff | 2007-12-09 01:03:40 +1100 (Sun, 09 Dec 2007) | 2 lines
  
  Ensure asio header comes before boost.thread header.
........

Properties modified:
   branches/release/ (props changed)
Text files modified:
   branches/release/boost/asio/detail/posix_fd_set_adapter.hpp | 2
   branches/release/boost/asio/detail/socket_ops.hpp | 12 +
   branches/release/boost/asio/ssl/detail/openssl_operation.hpp | 38 +++++-
   branches/release/libs/asio/doc/asio.qbk | 1
   branches/release/libs/asio/doc/examples.qbk | 12 +
   branches/release/libs/asio/doc/reference.qbk | 241 +++++++++++++++++++++++++--------------
   branches/release/libs/asio/doc/reference.xsl | 22 +++
   branches/release/libs/asio/example/chat/chat_client.cpp | 2
   branches/release/libs/asio/example/echo/blocking_tcp_echo_server.cpp | 2
   branches/release/libs/asio/test/io_service.cpp | 2
   branches/release/libs/asio/test/strand.cpp | 2
   11 files changed, 229 insertions(+), 107 deletions(-)

Modified: branches/release/boost/asio/detail/posix_fd_set_adapter.hpp
==============================================================================
--- branches/release/boost/asio/detail/posix_fd_set_adapter.hpp (original)
+++ branches/release/boost/asio/detail/posix_fd_set_adapter.hpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -38,7 +38,7 @@
 
   bool set(socket_type descriptor)
   {
- if (descriptor < FD_SETSIZE)
+ if (descriptor < (socket_type)FD_SETSIZE)
     {
       if (max_descriptor_ == invalid_socket || descriptor > max_descriptor_)
         max_descriptor_ = descriptor;

Modified: branches/release/boost/asio/detail/socket_ops.hpp
==============================================================================
--- branches/release/boost/asio/detail/socket_ops.hpp (original)
+++ branches/release/boost/asio/detail/socket_ops.hpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -1125,8 +1125,12 @@
 inline void gai_strcpy(char* target, const char* source, std::size_t max_size)
 {
   using namespace std;
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE)
+ strcpy_s(target, max_size, source);
+#else
   *target = 0;
   strncat(target, source, max_size);
+#endif
 }
 
 enum { gai_clone_flag = 1 << 30 };
@@ -1659,7 +1663,11 @@
       {
         return ec = boost::asio::error::no_buffer_space;
       }
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE)
+ sprintf_s(serv, servlen, "%u", ntohs(port));
+#else
       sprintf(serv, "%u", ntohs(port));
+#endif
     }
     else
     {
@@ -1678,7 +1686,11 @@
         {
           return ec = boost::asio::error::no_buffer_space;
         }
+#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE)
+ sprintf_s(serv, servlen, "%u", ntohs(port));
+#else
         sprintf(serv, "%u", ntohs(port));
+#endif
       }
 #if defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS)
       ::pthread_mutex_unlock(&mutex);

Modified: branches/release/boost/asio/ssl/detail/openssl_operation.hpp
==============================================================================
--- branches/release/boost/asio/ssl/detail/openssl_operation.hpp (original)
+++ branches/release/boost/asio/ssl/detail/openssl_operation.hpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -101,6 +101,10 @@
       &openssl_operation::do_async_write,
       this, boost::arg<1>(), boost::arg<2>()
     );
+ read_ = boost::bind(
+ &openssl_operation::do_async_read,
+ this
+ );
     handler_= boost::bind(
       &openssl_operation::async_user_handler,
       this, boost::arg<1>(), boost::arg<2>()
@@ -123,6 +127,10 @@
       &openssl_operation::do_sync_write,
       this, boost::arg<1>(), boost::arg<2>()
     );
+ read_ = boost::bind(
+ &openssl_operation::do_sync_read,
+ this
+ );
     handler_ = boost::bind(
       &openssl_operation::sync_user_handler,
       this, boost::arg<1>(), boost::arg<2>()
@@ -135,7 +143,7 @@
   int start()
   {
     int rc = primitive_( session_ );
- int sys_error_code = ERR_get_error();
+
     bool is_operation_done = (rc > 0);
                 // For connect/accept/shutdown, the operation
                 // is done, when return code is 1
@@ -145,6 +153,8 @@
     int error_code = !is_operation_done ?
           ::SSL_get_error( session_, rc ) :
           0;
+ int sys_error_code = ERR_get_error();
+
     bool is_read_needed = (error_code == SSL_ERROR_WANT_READ);
     bool is_write_needed = (error_code == SSL_ERROR_WANT_WRITE ||
                               ::BIO_ctrl_pending( ssl_bio_ ));
@@ -212,6 +222,10 @@
 
         return start();
       }
+ else if (is_read_needed)
+ {
+ return read_();
+ }
     }
 
     // Continue with operation, flush any SSL data out to network...
@@ -223,10 +237,12 @@
   typedef boost::function<int (const boost::system::error_code&, int)>
     int_handler_func;
   typedef boost::function<int (bool, int)> write_func;
+ typedef boost::function<int ()> read_func;
 
   ssl_primitive_func primitive_;
   user_handler_func user_handler_;
   write_func write_;
+ read_func read_;
   int_handler_func handler_;
     
   net_buffer send_buf_; // buffers for network IO
@@ -250,8 +266,15 @@
     throw boost::system::system_error(error);
   }
     
- int async_user_handler(const boost::system::error_code& error, int rc)
+ int async_user_handler(boost::system::error_code error, int rc)
   {
+ if (rc < 0)
+ {
+ if (!error)
+ error = boost::asio::error::no_recovery;
+ rc = 0;
+ }
+
     user_handler_(error, rc);
     return 0;
   }
@@ -316,8 +339,8 @@
     }
     
     // OPeration is not done and writing to net has been made...
- // start reading...
- do_async_read();
+ // start operation again
+ start();
           
     return 0;
   }
@@ -340,7 +363,7 @@
       handler_(error, rc);
   }
 
- void do_async_read()
+ int do_async_read()
   {
     // Wait for new data
     socket_.async_read_some
@@ -355,6 +378,7 @@
         boost::asio::placeholders::bytes_transferred
       )
     );
+ return 0;
   }
 
   void async_read_handler(const boost::system::error_code& error,
@@ -433,8 +457,8 @@
       // Finish the operation, with success
       return rc;
                 
- // Operation is not finished, read data from net...
- return do_sync_read();
+ // Operation is not finished, start again.
+ return start();
   }
 
   int do_sync_read()

Modified: branches/release/libs/asio/doc/asio.qbk
==============================================================================
--- branches/release/libs/asio/doc/asio.qbk (original)
+++ branches/release/libs/asio/doc/asio.qbk 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -17,7 +17,6 @@
     [authors [Kohlhoff, Christopher]]
     [category template]
     [category generic]
- [last-revision $Date$]
 ]
 
 [template mdash[] '''&mdash; ''']

Modified: branches/release/libs/asio/doc/examples.qbk
==============================================================================
--- branches/release/libs/asio/doc/examples.qbk (original)
+++ branches/release/libs/asio/doc/examples.qbk 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -50,8 +50,8 @@
 [heading HTTP Client]
 
 Example programs implementing simple HTTP 1.0 clients. These examples show how
-to use the [link boost_asio.reference.read_until] and [link
-boost_asio.reference.async_read_until] functions.
+to use the [link boost_asio.reference.read_until read_until] and [link
+boost_asio.reference.async_read_until async_read_until] functions.
 
 * [@../../example/http/client/sync_client.cpp]
 * [@../../example/http/client/async_client.cpp]
@@ -139,7 +139,8 @@
 
 [heading Iostreams]
 
-Two examples showing how to use [link boost_asio.reference.ip__tcp.iostream].
+Two examples showing how to use [link boost_asio.reference.ip__tcp.iostream
+ip::tcp::iostream].
 
 * [@../../example/iostreams/daytime_client.cpp]
 * [@../../example/iostreams/daytime_server.cpp]
@@ -170,7 +171,7 @@
 This example demonstrates how to integrate custom functionality (in this case,
 for logging) into asio's [link boost_asio.reference.io_service io_service], and
 how to use a custom service with [link
-boost_asio.reference.basic_stream_socket].
+boost_asio.reference.basic_stream_socket basic_stream_socket<>].
 
 * [@../../example/services/basic_logger.hpp]
 * [@../../example/services/daytime_client.cpp]
@@ -192,7 +193,8 @@
 [heading SSL]
 
 Example client and server programs showing the use of the [link
-boost_asio.reference.ssl__stream] template with asynchronous operations.
+boost_asio.reference.ssl__stream ssl::stream<>] template with asynchronous
+operations.
 
 * [@../../example/ssl/client.cpp]
 * [@../../example/ssl/server.cpp]

Modified: branches/release/libs/asio/doc/reference.qbk
==============================================================================
--- branches/release/libs/asio/doc/reference.qbk (original)
+++ branches/release/libs/asio/doc/reference.qbk 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -3879,7 +3879,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -3894,7 +3894,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -3925,7 +3925,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -3940,7 +3940,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -8445,7 +8445,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -8460,7 +8460,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -8491,7 +8491,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -8506,7 +8506,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -11089,7 +11089,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -11104,7 +11104,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -11135,7 +11135,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -11150,7 +11150,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -13870,7 +13870,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -13885,7 +13885,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -13916,7 +13916,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -13931,7 +13931,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -17346,7 +17346,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -17361,7 +17361,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -17392,7 +17392,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -17407,7 +17407,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -19793,7 +19793,7 @@
 
 The default buffer size.
 
- static const std::size_t default_buffer_size;
+ static const std::size_t default_buffer_size = implementation_defined;
 
 
 
@@ -20963,7 +20963,7 @@
 
 The default buffer size.
 
- static const std::size_t default_buffer_size;
+ static const std::size_t default_buffer_size = implementation_defined;
 
 
 
@@ -22881,7 +22881,7 @@
 
 
 
- static const boost::system::error_category & addrinfo_category;
+ static const boost::system::error_category & addrinfo_category = boost::asio::error::get_addrinfo_category();
 
 
 
@@ -23087,6 +23087,66 @@
 [endsect]
 
 
+
+[section:error__get_addrinfo_category error::get_addrinfo_category]
+
+
+
+ const boost::system::error_category & get_addrinfo_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_misc_category error::get_misc_category]
+
+
+
+ const boost::system::error_category & get_misc_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_netdb_category error::get_netdb_category]
+
+
+
+ const boost::system::error_category & get_netdb_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_ssl_category error::get_ssl_category]
+
+
+
+ const boost::system::error_category & get_ssl_category();
+
+
+
+[endsect]
+
+
+
+[section:error__get_system_category error::get_system_category]
+
+
+
+ const boost::system::error_category & get_system_category();
+
+
+
+[endsect]
+
+
 [section:error__make_error_code error::make_error_code]
 
 
@@ -23178,7 +23238,7 @@
 
 
 
- static const boost::system::error_category & misc_category;
+ static const boost::system::error_category & misc_category = boost::asio::error::get_misc_category();
 
 
 
@@ -23210,6 +23270,11 @@
     [Element not found. ]
   ]
 
+ [
+ [fd_set_failure]
+ [The descriptor cannot fit into the select system call's fd_set. ]
+ ]
+
 ]
 
 
@@ -23222,7 +23287,7 @@
 
 
 
- static const boost::system::error_category & netdb_category;
+ static const boost::system::error_category & netdb_category = boost::asio::error::get_netdb_category();
 
 
 
@@ -23271,7 +23336,7 @@
 
 
 
- static const boost::system::error_category & ssl_category;
+ static const boost::system::error_category & ssl_category = boost::asio::error::get_ssl_category();
 
 
 
@@ -23300,7 +23365,7 @@
 
 
 
- static const boost::system::error_category & system_category;
+ static const boost::system::error_category & system_category = boost::asio::error::get_system_category();
 
 
 
@@ -27770,7 +27835,7 @@
 
 Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
- static const int address_configured;
+ static const int address_configured = implementation_defined;
 
 
 
@@ -27785,7 +27850,7 @@
 
 If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
 
- static const int all_matching;
+ static const int all_matching = implementation_defined;
 
 
 
@@ -27886,7 +27951,7 @@
 
 Determine the canonical name of the host specified in the query.
 
- static const int canonical_name;
+ static const int canonical_name = implementation_defined;
 
 
 
@@ -27925,7 +27990,7 @@
 
 Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
 
- static const int numeric_host;
+ static const int numeric_host = implementation_defined;
 
 
 
@@ -27940,7 +28005,7 @@
 
 Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
 
- static const int numeric_service;
+ static const int numeric_service = implementation_defined;
 
 
 
@@ -27955,7 +28020,7 @@
 
 Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
 
- static const int passive;
+ static const int passive = implementation_defined;
 
 
 
@@ -27995,7 +28060,7 @@
 
 If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
 
- static const int v4_mapped;
+ static const int v4_mapped = implementation_defined;
 
 
 
@@ -28267,7 +28332,7 @@
 
 Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
- static const int address_configured;
+ static const int address_configured = implementation_defined;
 
 
 
@@ -28279,7 +28344,7 @@
 
 If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
 
- static const int all_matching;
+ static const int all_matching = implementation_defined;
 
 
 
@@ -28291,7 +28356,7 @@
 
 Determine the canonical name of the host specified in the query.
 
- static const int canonical_name;
+ static const int canonical_name = implementation_defined;
 
 
 
@@ -28303,7 +28368,7 @@
 
 Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
 
- static const int numeric_host;
+ static const int numeric_host = implementation_defined;
 
 
 
@@ -28315,7 +28380,7 @@
 
 Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
 
- static const int numeric_service;
+ static const int numeric_service = implementation_defined;
 
 
 
@@ -28327,7 +28392,7 @@
 
 Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
 
- static const int passive;
+ static const int passive = implementation_defined;
 
 
 
@@ -28339,7 +28404,7 @@
 
 If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
 
- static const int v4_mapped;
+ static const int v4_mapped = implementation_defined;
 
 
 
@@ -33256,7 +33321,7 @@
 
 The maximum length of the queue of pending incoming connections.
 
- static const int max_connections;
+ static const int max_connections = implementation_defined;
 
 
 
@@ -33268,7 +33333,7 @@
 
 Specify that the data should not be subject to routing.
 
- static const int message_do_not_route;
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -33293,7 +33358,7 @@
 
 Process out-of-band data.
 
- static const int message_out_of_band;
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -33305,7 +33370,7 @@
 
 Peek at incoming data without removing it from the input queue.
 
- static const int message_peek;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -33862,7 +33927,7 @@
 
 Implement various bug workarounds.
 
- static const int default_workarounds;
+ static const int default_workarounds = implementation_defined;
 
 
 
@@ -34091,7 +34156,7 @@
 
 Disable SSL v2.
 
- static const int no_sslv2;
+ static const int no_sslv2 = implementation_defined;
 
 
 
@@ -34106,7 +34171,7 @@
 
 Disable SSL v3.
 
- static const int no_sslv3;
+ static const int no_sslv3 = implementation_defined;
 
 
 
@@ -34121,7 +34186,7 @@
 
 Disable TLS v1.
 
- static const int no_tlsv1;
+ static const int no_tlsv1 = implementation_defined;
 
 
 
@@ -34450,7 +34515,7 @@
 
 Always create a new key when using tmp_dh parameters.
 
- static const int single_dh_use;
+ static const int single_dh_use = implementation_defined;
 
 
 
@@ -34874,7 +34939,7 @@
 
 Do not request client certificate on renegotiation. Ignored unless verify_peer is set.
 
- static const int verify_client_once;
+ static const int verify_client_once = implementation_defined;
 
 
 
@@ -34889,7 +34954,7 @@
 
 Fail verification if the peer has no certificate. Ignored unless verify_peer is set.
 
- static const int verify_fail_if_no_peer_cert;
+ static const int verify_fail_if_no_peer_cert = implementation_defined;
 
 
 
@@ -34920,7 +34985,7 @@
 
 No verification.
 
- static const int verify_none;
+ static const int verify_none = implementation_defined;
 
 
 
@@ -34935,7 +35000,7 @@
 
 Verify the peer.
 
- static const int verify_peer;
+ static const int verify_peer = implementation_defined;
 
 
 
@@ -35251,7 +35316,7 @@
 
 Implement various bug workarounds.
 
- static const int default_workarounds;
+ static const int default_workarounds = implementation_defined;
 
 
 
@@ -35367,7 +35432,7 @@
 
 Disable SSL v2.
 
- static const int no_sslv2;
+ static const int no_sslv2 = implementation_defined;
 
 
 
@@ -35379,7 +35444,7 @@
 
 Disable SSL v3.
 
- static const int no_sslv3;
+ static const int no_sslv3 = implementation_defined;
 
 
 
@@ -35391,7 +35456,7 @@
 
 Disable TLS v1.
 
- static const int no_tlsv1;
+ static const int no_tlsv1 = implementation_defined;
 
 
 
@@ -35443,7 +35508,7 @@
 
 Always create a new key when using tmp_dh parameters.
 
- static const int single_dh_use;
+ static const int single_dh_use = implementation_defined;
 
 
 
@@ -35455,7 +35520,7 @@
 
 Do not request client certificate on renegotiation. Ignored unless verify_peer is set.
 
- static const int verify_client_once;
+ static const int verify_client_once = implementation_defined;
 
 
 
@@ -35467,7 +35532,7 @@
 
 Fail verification if the peer has no certificate. Ignored unless verify_peer is set.
 
- static const int verify_fail_if_no_peer_cert;
+ static const int verify_fail_if_no_peer_cert = implementation_defined;
 
 
 
@@ -35492,7 +35557,7 @@
 
 No verification.
 
- static const int verify_none;
+ static const int verify_none = implementation_defined;
 
 
 
@@ -35504,7 +35569,7 @@
 
 Verify the peer.
 
- static const int verify_peer;
+ static const int verify_peer = implementation_defined;
 
 
 
@@ -38992,12 +39057,12 @@
 
 [endsect]
 
-[section:error__addrinfo_errors__gt_ error::addrinfo_errors >]
+[section:is_error_code_enum_lt__addrinfo_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::addrinfo_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >
 
 
 [heading Data Members]
@@ -39005,18 +39070,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__addrinfo_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__addrinfo_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::addrinfo_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::addrinfo_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39026,12 +39091,12 @@
 
 [endsect]
 
-[section:error__basic_errors__gt_ error::basic_errors >]
+[section:is_error_code_enum_lt__basic_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::basic_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::basic_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::basic_errors >
 
 
 [heading Data Members]
@@ -39039,18 +39104,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__basic_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__basic_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::basic_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::basic_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39060,12 +39125,12 @@
 
 [endsect]
 
-[section:error__misc_errors__gt_ error::misc_errors >]
+[section:is_error_code_enum_lt__misc_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::misc_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::misc_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::misc_errors >
 
 
 [heading Data Members]
@@ -39073,18 +39138,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__misc_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__misc_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::misc_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::misc_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39094,12 +39159,12 @@
 
 [endsect]
 
-[section:error__netdb_errors__gt_ error::netdb_errors >]
+[section:is_error_code_enum_lt__netdb_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::netdb_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::netdb_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::netdb_errors >
 
 
 [heading Data Members]
@@ -39107,18 +39172,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__netdb_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__netdb_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::netdb_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::netdb_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 
@@ -39128,12 +39193,12 @@
 
 [endsect]
 
-[section:error__ssl_errors__gt_ error::ssl_errors >]
+[section:is_error_code_enum_lt__ssl_errors__gt_ boost::system::is_error_code_enum< boost::asio::error::ssl_errors >]
 
 
 
   template<>
- struct is_error_code_enum< boost::asio::error::ssl_errors >
+ struct boost::system::is_error_code_enum< boost::asio::error::ssl_errors >
 
 
 [heading Data Members]
@@ -39141,18 +39206,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.error__ssl_errors__gt_.value [*value]]]
+ [[link boost_asio.reference.is_error_code_enum_lt__ssl_errors__gt_.value [*value]]]
     []
   ]
 
 ]
 
 
-[section:value error::ssl_errors >::value]
+[section:value boost::system::is_error_code_enum< boost::asio::error::ssl_errors >::value]
 
 
 
- static const bool value;
+ static const bool value = true;
 
 
 

Modified: branches/release/libs/asio/doc/reference.xsl
==============================================================================
--- branches/release/libs/asio/doc/reference.xsl (original)
+++ branches/release/libs/asio/doc/reference.xsl 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -103,6 +103,9 @@
 <xsl:template name="strip-asio-ns">
   <xsl:param name="name"/>
   <xsl:choose>
+ <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
+ <xsl:value-of select="$name"/>
+ </xsl:when>
     <xsl:when test="contains($name, 'asio::')">
       <xsl:value-of select="substring-after($name, 'asio::')"/>
     </xsl:when>
@@ -116,6 +119,9 @@
 <xsl:template name="strip-ns">
   <xsl:param name="name"/>
   <xsl:choose>
+ <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
+ <xsl:value-of select="$name"/>
+ </xsl:when>
     <xsl:when test="contains($name, '::') and contains($name, '&lt;')">
       <xsl:choose>
         <xsl:when test="string-length(substring-before($name, '::')) &lt; string-length(substring-before($name, '&lt;'))">
@@ -143,6 +149,18 @@
 <xsl:template name="make-id">
   <xsl:param name="name"/>
   <xsl:choose>
+ <xsl:when test="contains($name, 'boost::system::')">
+ <xsl:call-template name="make-id">
+ <xsl:with-param name="name"
+ select="substring-after($name, 'boost::system::')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($name, 'boost::asio::error::')">
+ <xsl:call-template name="make-id">
+ <xsl:with-param name="name"
+ select="concat(substring-before($name, 'boost::asio::error::'), substring-after($name, 'boost::asio::error::'))"/>
+ </xsl:call-template>
+ </xsl:when>
     <xsl:when test="contains($name, '::')">
       <xsl:call-template name="make-id">
         <xsl:with-param name="name"
@@ -793,7 +811,9 @@
 <xsl:template name="variable">
 <xsl:text>
   </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:value-of
- select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>;
+ select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>
+ <xsl:if test="count(initializer) = 1"><xsl:text> =</xsl:text>
+ <xsl:value-of select="initializer"/></xsl:if>;
 </xsl:template>
 
 

Modified: branches/release/libs/asio/example/chat/chat_client.cpp
==============================================================================
--- branches/release/libs/asio/example/chat/chat_client.cpp (original)
+++ branches/release/libs/asio/example/chat/chat_client.cpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -11,9 +11,9 @@
 #include <cstdlib>
 #include <deque>
 #include <iostream>
-#include <boost/thread.hpp>
 #include <boost/bind.hpp>
 #include <boost/asio.hpp>
+#include <boost/thread.hpp>
 #include "chat_message.hpp"
 
 using boost::asio::ip::tcp;

Modified: branches/release/libs/asio/example/echo/blocking_tcp_echo_server.cpp
==============================================================================
--- branches/release/libs/asio/example/echo/blocking_tcp_echo_server.cpp (original)
+++ branches/release/libs/asio/example/echo/blocking_tcp_echo_server.cpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -10,10 +10,10 @@
 
 #include <cstdlib>
 #include <iostream>
-#include <boost/thread.hpp>
 #include <boost/bind.hpp>
 #include <boost/smart_ptr.hpp>
 #include <boost/asio.hpp>
+#include <boost/thread.hpp>
 
 using boost::asio::ip::tcp;
 

Modified: branches/release/libs/asio/test/io_service.cpp
==============================================================================
--- branches/release/libs/asio/test/io_service.cpp (original)
+++ branches/release/libs/asio/test/io_service.cpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -17,9 +17,9 @@
 #include <boost/asio/io_service.hpp>
 
 #include <sstream>
-#include <boost/thread.hpp>
 #include <boost/bind.hpp>
 #include <boost/asio.hpp>
+#include <boost/thread.hpp>
 #include "unit_test.hpp"
 
 using namespace boost::asio;

Modified: branches/release/libs/asio/test/strand.cpp
==============================================================================
--- branches/release/libs/asio/test/strand.cpp (original)
+++ branches/release/libs/asio/test/strand.cpp 2007-12-15 17:00:19 EST (Sat, 15 Dec 2007)
@@ -17,9 +17,9 @@
 #include <boost/asio/strand.hpp>
 
 #include <sstream>
-#include <boost/thread.hpp>
 #include <boost/bind.hpp>
 #include <boost/asio.hpp>
+#include <boost/thread.hpp>
 #include "unit_test.hpp"
 
 using namespace boost::asio;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk