Sat Jun 16 10:36:58 2001 Balachandran Natarajan * ace/Message_Block.h: * ace/Message_Block.cpp: * ace/Message_Block.i: This set of changes are to get around one of the problems that we have with the message blocks. For some reason the message blocks assume that the underlying data blocks are always allocated of the heap. If we try to construct a message block using a data block on the stack, the message blocks tries to delete that data block which gives problems. We have now added a flag in the class that indicates whether the data_block can be deleted or not. An extra flag argument has been added to the constructor that constructs a message block from a data block. The default value is from the heap. Added more methods to the ACE_Message_Block to query and change the flag values. * ace/CDR_Stream.cpp: * ace/CDR_Stream.h: Added an extra flag argument to the constructors which constructs a InputCDR stream from a ACE_Data_Block. Sat Jun 16 00:09:14 2001 Krishnakumar B * bin/nightlybuilds/builds.lst (WEB): Added IA-64 to the nightly builds. The tests are disabled for now. They will be enabled after TAO 1.2 is released. Fri Jun 15 20:46:01 2001 Sharath R. Cholleti * ace/CDR_Stream.{cpp,h,i}: WChar implementation of GIOP 1.2. Made changes in some of the ACE_InputCDR constructors, exchange_data_blocks () and steal_from (). Fri Jun 15 20:18:07 2001 Krishnakumar B * ace/Active_Map_Manager_T.i: * ace/Map_Manager.cpp: * ace/Map_Manager.h: * ace/Map_Manager.i: Fixed a bug in the Active_Map_Manager caused due to size_t being of different size under 32-bit platforms versus 64-bit platforms. The bug was triggered under Tru64. This has resulted in changing the implementation to use ACE_UINT32 throughout while maintaining a backward-compatible interface. Many thanks to Irfan for his help in finding a solution. Fri Jun 15 17:40:51 2001 Krishnakumar B * examples/Shared_Malloc/Malloc.cpp: Removed need for explicit instantiation of symbols when the compiler supports template specialization for the Single-threaded case. * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: Removed warning about conversion from pointer to integer of different size on IA-64. Thu Jun 14 16:20:57 2001 Frank Hunleth * ace/Stats.cpp: Changed formula to convert ticks to seconds to use ACE_HR_SCALE_CONVERSION to account for the fact that Win32 has different scale factor units than every other platform. Thu Jun 14 16:21:35 2001 Krishnakumar B * ace/config-all.h (ACE_UNUSED_ARG): Changed the way we define ACE_UNUSED_ARG to be more compatible with picky compilers. Thu Jun 14 16:10:54 2001 Krishnakumar B * ace/Makefile: * ace/RMCast/Makefile: Updated the dependencies as they seem to have gone out of sync. Thu Jun 14 15:42:57 2001 Nanbor Wang * ace/Obstack_T.cpp (release): Forgot to reset the in Obchunk. Thu Jun 14 14:35:09 2001 Frank Hunleth * bin/msvc_auto_compile.pl: Added Strategies, RTCORBA, and RTPortableServer to the core build list so that they get built before the tests that use them on the Win32 static builds. Thu Jun 14 08:24:03 2001 Christopher Kohlhoff * ace/Makefile.bor: Added missing source file Obchunk.cpp. Thu Jun 14 03:10:11 2001 Krishnakumar B * tests/TSS_Test.cpp: Fixed a error in the compile caused due to ACE_reinterpret_cast applied to a const int. Wed Jun 13 21:50:01 2001 Nanbor Wang * ace/Obstack_T.cpp (ACE_Obstack_T): Fixed a mismatched ACE_TRACE fuzz warning. Wed Jun 13 14:10:17 2001 Ossama Othman * ace/SSL/SSL_Context.cpp: * ace/SSL/SSL_SOCK_Acceptor.cpp: Explicitly include "ace/Log_Msg.h" to pull in ACE_DEBUG/ERROR macro definitions. This fixes a compile-time problem on SunWorkshop 3.0 builds. Thanks to Andrew Finnell for reporting this problem and suggesting the fix. Wed Jun 13 15:43:43 2001 Nanbor Wang * ace/Obchunk.cpp: Fixed include filename capitalization. Wed Jun 13 11:31:27 2001 Ossama Othman * ace/Makefile.am: Synchronized the source lists with those in the stock ACE Makefile. Wed Jun 13 14:18:22 2001 Steve Huston * ACE-INSTALL.html: Modified the platforms/compilers section to reflect the new roles of DOC, Riverace, OCI. Fixed up the Solaris section a bit. Wed Jun 13 11:08:26 2001 Nanbor Wang * tests/Thread_Pool_Test.cpp: Casted message block pointers to ACE_TCHAR* to compile with UNICODE on. Wed Jun 13 10:22:10 2001 Nanbor Wang * ace/Svc_Conf_l.cpp: Need to read the sizeof (ACE_TCHAR) of bytes to handle UNICODE svc.conf correctly. * ace/Svc_Conf.h: Changed the macro ACE_YY_INPUT to handle ACE_TCHAR instead of char. Thanks to Allen Kelly for sending the patches. * ace/Obstack_T.{h,i,cpp}: Templatized ACE_Obstack on the char type it handles. * ace/Obchunk.{h,i,cpp}: New files containing the non-template class ACE_Obchunk. * ace/Obstack.{h,cpp}: All the class definitions were moved to Obchunk.* and Obstack_T.*. These files typedef'ed ACE_Obstack_T to ACE_Obstack for backward compatibility. * ace/Obstack.i: Removed file. * ace/ace_dll.dsp: * ace/ace_lib.dsp: * ace/Makefile: Added Obchunk and Obstack_T. * ace/Service_Config.cpp: * ace/Svc_Conf_y.cpp: * ace/Svc_Conf.h: Changed ACE_Obstack to ACE_Obstack_T to handle UNICODE files when needed. * ace/Configuration.cpp (set_string_value): When storing wchar strings, the datasize passed to RegSetValueEx is the total size in bytes, not the string length. Wed Jun 13 08:42:31 2001 Christopher Kohlhoff * include/makeinclude/ace_flags.bor: Added support for new RTCORBA libraries. * include/makeinclude/build_lib.bor: Suppress noisy warnings when creating a static library. * tests/Makefile.bor: Added Thread_Pool_Reactor_Resume_Test. Tue Jun 12 21:22:19 2001 Ossama Othman * bin/nightlybuilds/builds.lst: Added the new gcc 3.0 build to nightly build list. Tue Jun 12 23:06:36 2001 Krishnakumar B * examples/ASX/Event_Server/Event_Server/Options.cpp: * examples/ASX/Event_Server/Event_Server/Options.cpp: * examples/ASX/Message_Queue/buffer_stream.cpp: * examples/ASX/UPIPE_Event_Server/Options.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i: * examples/Shared_Malloc/test_malloc.cpp: * examples/Shared_Malloc/test_position_independent_malloc.cpp: * examples/Threads/thread_manager.cpp: * examples/Threads/thread_specific.cpp: Fixes for warnings under IA-64 Linux. This involves using the new ACE_[S]SIZE_T_FORMAT_SPECIFIER and appropriate uses of ACE_reinterpret_cast. This completes the fixes needed to compile ACE and TAO on IA-64 Linux (as of today). Now the tests remain examples/examples/to be fixed. Tue Jun 12 18:53:25 2001 Krishnakumar B * ace/config-linux-common.h: Added new printf specifier ACE_SIZE_T_FORMAT_SPECIFIER, ACE_SSIZE_T_FORMAT_SPECIFIER for use with types size_t and ssize_t. * ace/Basic_Types.h: 1. Changed default base address on IA-64 to be 64-bit little endian. 2. Added default values for ACE_SIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER. 3. Changed size of LONG_DOUBLE for IA-64. * ace/Configuration.cpp: * ace/Naming_Context.cpp: * ace/Task.cpp: Added a reinterpret_cast to silence gcc. * tests/MEM_Stream_Test.cpp: * tests/MT_Reactor_Timer_Test.cpp: * tests/Message_Block_Test.cpp: * tests/TSS_Test.cpp: * tests/Thread_Manager_Test.cpp: * tests/Thread_Pool_Test.cpp: 1. Fixed usage of ACE_DEBUG with types size_t and ssize_t. 2. Added ACE_reinterpret_cast to silence warnings about conversion from integer to pointer of different size. ACE runs on Intel IA-64/Linux. Tue Jun 12 15:06:06 2001 Krishnakumar B * tests/run_test.lst: Thread_Pool_Reactor_Resume_Test should not run on Single threaded configurations. Tue Jun 12 11:07:18 2001 Douglas C. Schmidt * ace/Synch_T.{h,i}: Added "const" to the locked() method. Mon Jun 11 21:06:43 2001 Douglas C. Schmidt * tests/SOCK_Connector_Test.cpp (find_another_host): Pre-increment, rather than post-increment, the candidate_count loop counter to avoid "off-by-one" errors. Thanks to Scott Snyder for reporting this. * ace/OS.h: Added some default values of 0 to the wr_fds and ex_fds parameters to ACE_OS::select(). This helps simplify for the "common case" and is consistent with what we show in our book ;-). * ace/OS.i (read): Fixed a nasty bug where "count = len" should have been "count == len" in the PSOS arm of the code. Thanks to James Maynard for reporting this. Thu Jun 7 19:26:05 2001 Douglas C. Schmidt * ace/Auto_Ptr.cpp: Instantiate the "alloc" template typedef explicitly. Thanks to Cristian Ferretti for pointing this out. * examples/Timer_Queue/Thread_Timer_Queue_Test.{h,cpp}: Removed the unused cancelled() method. Thanks to Ron Heald for reporting this. * include/makeinclude/platform_irix6.x_sgic++.GNU, * include/makeinclude/platform_osf1_4.0.GNU, * ace/config-irix6.x-sgic++.h, * ace/config-osf1-4.0.h, * ace/Log_Msg.cpp: Added support for threads=0 on Tru64. Thanks to Steve Vranyes for contributing these fixes. * ace/Timer_Wheel_T.cpp (expire): earliest_pos_ was never set in the expire() method, and maintains its value until another timer event is scheduled/cancelled/etc. Thanks to Gil Rapaport for fixing this. Mon Jun 4 14:33:08 2001 Douglas C. Schmidt * ace/Synch.h: Clarified that ACE_Event only supports "global naming" on Win32. Thanks to Jerry Thomas for reporting this. Mon Jun 11 16:53:55 2001 Balachandran * ACE version 5.1.17 released. Mon Jun 11 13:08:00 2001 Balachandran Natarajan * include/makeinclude/platform_tru64_kcc.GNU: Fixed a spurious newline in the file. Thanks to Scott Snyder for reporting this. Sun Jun 10 16:03:19 2001 Balachandran Natarajan * tests/run_test.lst: Time_Service_Test will not run in static configurations. It looks for ACE_DLL's. Sun Jun 10 06:56:45 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Removed a few AVStreams tests from the nightly builds. They seem to be crashing with a SEGV. Sat Jun 09 17:03:37 2001 Ossama Othman * ace/Acceptor.cpp (open): Fixed problem where the handle of an uninitialized peer acceptor was set into non-blocking mode, resulting in a failed ioctl() call. The acceptor member in the "accept strategy" should be used instead, since it was the one that was just opened. Sat Jun 09 10:07:06 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (recv_i): Moved call to SSL_peek() within the do/while(SSL_pending()) loop. A full record must be read before returning to an event loop (e.g. in a Reactor). If a SSL_ERROR_SYSCALL error occurs, only interpret it as an error if an EOF did not occur. Thanks to Boris Temkin for providing an example that demonstrated the problem. (send_i): Shutdown the SSL session if an SSL_ERROR_ZERO_RETURN error occurs. Sat Jun 9 07:16:12 2001 Balachandran Natarajan * ace/QoS/QoS_Session_Impl.cpp: Do not hard code the max sdu size. This should be a configurable parameter through the ACE_Flow_Spec::max_sdu_size. This change was made by Craig Rodrigues . Just checking in the changes for him. Fri Jun 08 08:17:15 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): Fixed "fuzz" errors. Fri Jun 08 07:33:03 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.cpp (send): Fixed an "unused argument" warning. Fri Jun 08 07:01:59 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.h: * ace/SSL/SSL_Accept_Handler.cpp: * ace/SSL/SSL_Connect_Handler.h: * ace/SSL/SSL_Connect_Handler.cpp: New event handlers that are designed to complete non-blocking SSL passive (accepts) and active connections (connects). They are registered with the Reactor (either the singleton Reactor or a user-supplied one) after the TCP 3-way handshake is completed. Once registered, the Reactor does its voodoo and invokes the appropriate event handler. This fixes several inter-related problems: (1) the ACE_SSL wrappers now work with the ACE_WFMO_Reactor, [Bug 614] (2) non-blocking SSL accepts/connects and finally work, (3) fixes a CORBA::TRANSIENT exception in TAO's SSLIOP pluggable protocol that occured when the client attempted to connect to the server. Thanks to Andrew Finnell for suggesting that an event loop was necessary to complete the SSL connection after 3-way handshake was necessary, and for persisting in his effort to hammer that point into me. :-) * ace/SSL/SSL_SOCK_Stream.h (send_i, recv_i): New low-level helper methods that refactor the common underlying SSL IO calls. * ace/SSL/SSL_SOCK_Stream.i (send): Fixed problem where one of the low-level send() methods returned zero instead of the number of bytes sent. Thanks to Boris Temkin and Dan Levi for reporting the problem. (send_i, recv_i): Refactored code common to all send()/recv() methods. Thanks to Boris for suggesting this. This will help prevent problems such as the one that was described above from happening again since there is no code duplication. * ace/SSL/SSL_SOCK_Stream.cpp (sendv_n, recv_n): Greatly improved the speed of these methods by removing all allocations and copies. The allocations and copies were unnecessary. These methods are now zero-copy implementations. (send): Don't bother attempting to implement this method using a scatter write (sendv). The SSL_SOCK_Stream scatter write implementation simply emulates this functionality. That emulation does not work well when using non-blocking IO. Instead, just use send_n(). Added missing "va_end()." * ace/SSL/SSL_SOCK_Acceptor.h (reactor): * ace/SSL/SSL_SOCK_Acceptor.i (reactor): * ace/SSL/SSL_SOCK_Connector.h (reactor): * ace/SSL/SSL_SOCK_Connector.i (reactor): New methods to set and get the Reactor to use when completing non-blocking SSL passive/active connections. * ace/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL_SOCK_Connector.cpp (ssl_connect): Added new overload methods that accept a timeout value. These new methods will register the event handlers described above in order to complete a non-blocking SSL connection. (shared_connect_start, shared_connect_finish): Removed these unused methods. (connect): Actually do a non-blocking SSL connect if the timeout value is non-zero. This code was previously broken. Even though the underlying TCP connect was non-blocking, the SSL connect was always blocking. * THANKS: Added Andrew Finnell and Dan Levi to the "Hall of Fame." Boris Temkin (see above) was already on it. :-) Fri Jun 08 07:52:48 2001 Joe Hoffert * Makefile: Removed PACE from the list of directories. (There are problems on FreeBSD.) Thanks to cuma for reporting this. Wed Jun 06 10:16:39 2001 Steve Huston * ace/config-hpux-11.00.h: Fixed the settings for ACE_MALLOC_* and ACE_PI_MALLOC_* so that both the malloc header and the control block are multiples of 8 bytes (required alignment for larger datatypes, i.e double). Malloc_Test now runs clean. Wed Jun 6 07:04:57 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Removed all the AVStream tests from the daily builds. Looks like they are not getting fixed. Mon Jun 4 05:53:57 2001 Douglas C. Schmidt * ace/File_Lock: Added an "unlink_in_destructor" flag to ACE_File_Lock to control whether or not the underlying file is unlinked in the destructor. Thanks to Yuval Yosef for suggesting this. Sun Jun 3 18:08:39 2001 Douglas C. Schmidt * ace/Configuration_Import_Export.cpp, * ace/Configuration.cpp: Added ACE_ASSERTS to make sure that open() is called... Thanks to Jerry Odenwelder for fixing this. Sat Jun 2 13:05:20 2001 Douglas C. Schmidt * ace/Connector.cpp: Removed the ACE_Errno_Guard from the create_AST() method and instead have the connect_i() method check to see if create_AST() succeeded and explicitly set errno = EWOULDBLOCK in this case. Thanks to Boris Temkin for motivating this change. * ace/Timer_Wheel_T.cpp: Since we removed the call to is_empty() from earliest_time() we need to modify the code in reschedule() to test for is_empty. * tests/Cached_Accept_Conn_Test.cpp (accept_svc_handler): Use the ACE_Accept_Strategy::acceptor() accessor method rather than accessing the acceptor_ directly. * TAO/rules.tao.GNU (TAO_IDL_DEP), * include/makeinclude/rules.local.GNU: Added support for the new EXEEXT Makefile macro. Thanks to Cristian Ferretti for pointing this out. * include/makeinclude/platform_gnuwin32_common.GNU: Added a number of fixes for the mingw platform. Thanks to Cristian Ferretti for pointing this out. * ace/Configuration.{h,cpp}: "Un-inlined" the == and != operators for the ACE_Configuration_Win32Registry class. * ace/Configuration.cpp (get_binary_value): Changed the type of "data" from "unsigned char" to "BYTE". Thanks to Cristian Ferretti for pointing this out. * ace/config-win32-mingw.h: Removed the #define ACE_AS_STATIC_LIBS macro. Thanks to Cristian Ferretti for pointing this out. * ace/config-win32-common.h: Protect certain DLL export macros with #if !defined (__MINGW32__). Thanks to Cristian Ferretti for pointing this out. * ace/ACE.cpp (handle_timed_complete): Added an ACE_UNUSED_ARG for the is_tli flag for ACE_WIN32 to keep the compiler happy. Thanks to Cristian Ferretti for pointing this out. * ace/Acceptor.cpp: Fixed the comment and logic in accept_svc_handler() so that it now cleans up the svc handler whenever accept() returns -1. Thanks to Boris Temkin for suggesting this and to Irfan for helping clarify what needed to be done. * ace/Strategies_T.cpp: When the number of clients connecting to a server exceeds the process handle limit the server would busy loop. The ACE_Accept_Strategy accept_svc_handler() method is called which (1) constructs a handler and (2) attempts to accept the connection, which fails (because there is no available handle). The handler is destructed, but the connect request is still queued and so the acceptor gets called back again.... and so on until one of the client which is already connected disconnects and frees up a descriptor. Changed the accept_svc_handler() method in ACE_Accept_Strategy to close and reopen the connection when accept() fails. A check is done to make sure address reuse is set. So this fix will only work in case where it is set. Thanks to Dominic Hughes for this fix and to Irfan for recognizing that it ought to be added to ACE_Accpt_Strategy. * ace/Strategies_T.cpp (open): Fixed the strategy acceptor so that it uses non-blocking semantics to handle certain failure cases correctly. This is a safe-guard against the race condition that can otherwise occur between the time when