Mon Dec 31 09:32:59 2001 Douglas C. Schmidt * ace/Hash_Map_Manager_T.h: Added ACE_UNIMPLEMENTED_FUNC() for the assignment operator and copy constructor of class ACE_Hash_Map_Manager_Ex. Thanks to Johnny Willemsen for reporting this. Mon Dec 31 16:33:17 2001 Johnny Willemsen * ace/OS.{h,i}: Added ACE_OS::freopen. This method reassigns an existing stream with a new stream. This is not supported on WinCE Mon Dec 31 15:09:12 2001 Johnny Willemsen * apps/drwho/BM_Server.cpp: * apps/drwho/Options.cpp: * apps/drwho/PM_Client.cpp: * apps/drwho/PMC_Ruser.cpp: * apps/drwho/PMC_Ruser.cpp: * apps/gperf/src/Options.cpp: * docs/tutorials/010/message_queue.cpp: * docs/tutorials/011/message_queue.cpp: * docs/tutorials/012/message_queue.cpp: * docs/tutorials/013/message_queue.cpp: * examples/IOStream/server/iostream_server.cpp: * examples/Reactor/WFMO_Reactor/test_multithreading.cpp: * netsvcs/clients/Logger/direct_logging.cpp: * tests/Pipe_Test.cpp: * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i: Changed occurences of atoi with ACE_OS::atoi because the normal atoi gives problems when compiling with ACE_USES_WCHAR defined Mon Dec 31 14:40:12 2001 Johnny Willemsen * ace/Get_Opt.cpp: Replaced ACE_TEXT by ACE_LIB_TEXT because ACE_LIB_TEXT must be used within the ACE library instead of ACE_TEXT Sun Dec 30 16:54:18 2001 Douglas C. Schmidt * ace/Parse_Node.cpp: Now that ACE::strnew() checks for a NULL parameter, we can remove the checks in the ACE code. * ace/ACE.i (strnew): Check to see if the pointer passed to ACE::strnew() is non-NULL. Thanks to Don Hinton for reporting this. Sat Dec 29 18:36:13 2001 Douglas C. Schmidt * ace/OS.i (putenv): Fixed a typo. Thanks to Venkita for reporting this. * ace/OS.i (getenv): Return ACE_NOTSUP_RETURN(0) if we're compiling on a platform that lacks getenv(), e.g., WinCE. Thanks to Venkita for reporting this. Sat Dec 29 16:14:41 2001 Balachandran Natarajan * ace/OS.h: * ace/Default_Constants.h: Moved some constants from this file to OS.h as it needed includes in OS.h. Need to take a better look before any other dissection can be performed. Sat Dec 29 12:08:40 2001 Balachandran Natarajan * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added new header files into the project. Sat Dec 29 11:57:40 2001 Balachandran Natarajan * ace/Default_Constants.h: A new header file that houses some of the constants that are used widely by ACE and applications based on ACE. The motivation for this one is the same as that of creating Global_Macros.h. * ace/Global_Macros.h: Moved some constant definitions from this file to Default_Constants.h. * ace/OS.h: Moved some constant definitions out of this file. There are some more that needs moving and will be done over a period of time hopefully. Sat Dec 29 06:31:50 2001 Douglas C. Schmidt * tests/MEM_Stream_Test.cpp (test_concurrent): Added an ACE_UNUSED_ARG(connect_client) to silence complaints on certain compilers about unused arguments. Sat Dec 29 12:54:45 2001 Johnny Willemsen * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp: * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp: * examples/Mem_Map/file-reverse/file-reverse.cpp: * examples/Reactor/Multicast/Log_Wrapper.cpp: * examples/Reactor/Multicast/server.cpp: Made these files compiling when ACE_USES_WCHAR is set * examples/Map_Manager/test_hash_map_manager.cpp: Made this file partly compiling when ACE_USES_WCHAR is set Sat Dec 29 10:42:12 2001 Johnny Willemsen * tests/SSL/Makefile.bor: Added SSL_LIB to lib files Sat Dec 29 02:55:24 2001 Venkita Subramonian * ace/OS.i: Fixed problem with idl compiler segmentation fault. replaced # if !defined ACE_LACKS_ENV with # if defined ACE_LACKS_ENV in ACE_OS::strenvdup. Fri Dec 28 16:01:58 2001 Balachandran Natarajan * ace/Global_Macros.h: Fixed a fuzz error. Fri Dec 28 15:15:42 2002 Steve Huston * ace/Select_Reactor_T.h: Improved Doxygenization of some comments. Fri Dec 28 13:41:23 2001 Douglas C. Schmidt * ace/OS.{h,i,cpp} (putenv,getenv,strenvdup,getenvstrings): * ace/Get_Opt.cpp (ACE_Get_Opt): Removed the #ifndef (ACE_LACKS_ENV) from Get_Opt.cpp and move this into OS.i where it belongs! Thanks to Venkita and Don Hinton for reporting this. Fri Dec 28 19:56:12 2001 Johnny Willemsen * performance-tests/Misc/test_naming.cpp: * performance-tests/Server_Concurrency/Latency_Stats.h: * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp: * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp: * performance-tests/TCP/tcp_test.cpp: * performance-tests/UDP/udp_test.cpp: Made these files compiling when ACE_USES_WCHAR is set * Makefile.bor: Added the performance-tests directory to this BCB makefile. All files in this directory now compile when ACE_USES_WCHAR is set Fri Dec 28 10:45:33 2001 Steve Huston * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: Make the string arguments to ACE_SSL_Context char * - don't use any ACE_* macros. Fixes build problems on Borland Unicode builds. Thanks to Johnny Willemsen for this fix. Fri Dec 28 06:31:46 2001 Venkita Subramonian * ace/Get_Opt.cpp: Changed #ifndef check to ACE_LACKS_ENV instead of ACE_LACKS_GETENV. Fri Dec 28 05:20:29 2001 Douglas C. Schmidt * ace/Get_Opt.cpp (ACE_Get_Opt): Protect the call to ACE_OS::getenv() with a #ifndef (ACE_LACKS_GETENV). Thanks to Bala and Venkita for reporting this! Fri Dec 28 10:52:12 2001 Johnny Willemsen * tests/SSL/Makefile.bor: Added ACE_SSL_LIB to fix linker errors in BCB build Thu Dec 27 22:14:30 2001 Balachandran Natarajan * ace/Global_Macros.h: A new file that will house the macros used by ACE and applications. Have moved a very few macros from OS.h to this file. The real need for this was the need to include OS.h even if one wants to use a simple macro like ACE_UNIMPLEMENTED_FUNC or something as simple as that. Over a period of time we need to move more macros into this file so that applications can use this instead of OS.h. It would be nice to split this file into pieces having macros for every specific functionality. That was getting too tedious and error prone. Thought that this could be a first step to move further. * ace/OS.h: Moved a few macros into Global_Macros.h file. Also included the file in OS.h The need for inclusion comes from the fact that there are dependencies that exist between the macros moved and the stuff that exist in OS.h. Thu Dec 27 20:43:43 2001 Nanbor Wang * ace/Configuration_Import_Export.cpp: The .ini reader didn't handle equal signs in values even if they are quoted. Changed the strrchr in import_config() to strchr. Thanks to Glen Coakley for reporting and submitting the patch. Thu Dec 27 15:47:22 2001 Steve Huston * examples/OS/Process/imore.cpp: Fixed typo in optind -> opt_ind() conversion. Thu Dec 27 09:52:56 2001 Douglas C. Schmidt * tests/Get_Opt_Test.cpp: Added ACE_TEXT macros to the various strings so they will compile on Unicode builds. Thanks to Venkita for noticing this! Thu Dec 27 14:53:49 2001 Steve Huston * ace/SSL/SSL_SOCK_Acceptor.(h cpp): * ace/SSL/SSL_SOCK_Connector.(h cpp): Removed #include "ace/Reactor.h" from the .h files and added #include "ace/Handle_Set.h" to the .cpp files. Reactor is no longer needed for the class, but ACE_Handle_Set is used in the implementation. * ace/SSL/Makefile: Removed Reactor*.* from dependencies. Thu Dec 27 12:56:31 2001 Steve Huston * ace/SSL/SSL_SOCK_Stream.i (close): Reverted this change: Fri Dec 7 10:22:25 2001 Ossama Othman The reactor is not used, so no workaround for it is needed. If the ACE_SSL_SOCK_Stream is closed, the handle is invalidated. Thu Dec 27 11:39:48 2001 Steve Huston * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp: Changed ACE_TEXT to ACE_TEXT_ALWAYS_CHAR for the file names passed to ACE_SSL_Context. The underlying SSL calls want a char *, so it appears pointless to change ACE_SSL_Context to accept wide chars. Thu Dec 27 09:38:24 2001 Balachandran Natarajan * examples/Reactor/Proactor/test_timeout.cpp: * examples/Reactor/Proactor/test_multiple_loops.cpp: * examples/Reactor/Proactor/post_completions.cpp: * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.h: Added #includes to prevent compilation errors on Win32. Thanks to Venkita for pointing this out. Thu Dec 27 06:41:24 2001 Douglas C. Schmidt * tests/Proactor_Timer_Test.cpp: Added #ifndefs to guard against trying to compile this test on platforms that don't support the Proactor! Thanks to Venkita for noticing this. Wed Dec 26 15:51:28 2001 Venkita Subramonian * ace/Get_Opt.h: ace/Get_Opt.cpp: Fixed compiler warnings. Changed order of member variable initialization. Wed Dec 26 11:18:31 2001 Douglas C. Schmidt * ace/Get_Opt.cpp (permute): Add ACE_TEXT() around the "--" string to make things work properly on Unicode builds. Thanks to Johnny Willemsen and Don Hinton for contributing this fix! Wed Dec 26 09:07:45 2001 Douglas C. Schmidt * tests/*.cpp: Replaced all uses of getopt.optarg with getopt.opt_arg() and all uses of getopt.optind with getopt.opt_ind(). * ace/Logging_Strategy.cpp ace/Naming_Context.cpp ace/Service_Config.cpp ace/Service_Manager.cpp performance-tests/Misc/basic_perf.cpp performance-tests/Misc/childbirth_time.cpp performance-tests/Misc/context_switch_time.cpp performance-tests/Misc/preempt.cpp performance-tests/Misc/test_guard.cpp performance-tests/RPC/client.cpp performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp performance-tests/TCP/tcp_test.cpp performance-tests/UDP/udp_test.cpp apps/Gateway/ gperf/Options.cpp drwho/Options.cpp netsvcs/clients/Tokens/collection/collection.cpp netsvcs/clients/Tokens/collection/rw_locks.cpp netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp netsvcs/clients/Tokens/manual/manual.cpp netsvcs/clients/Tokens/mutex/test_mutex.cpp netsvcs/clients/Tokens/rw_lock/rw_locks.cpp netsvcs/lib/Client_Logging_Handler.cpp netsvcs/lib/Name_Handler.cpp netsvcs/lib/TS_Server_Handler.cpp netsvcs/lib/Server_Logging_Handler_T.cpp netsvcs/lib/TS_Clerk_Handler.cpp netsvcs/lib/Token_Handler.cpp examples/ASX/Event_Server/Event_Server/Options.cpp examples/ASX/Event_Server/Transceiver/transceiver.cpp examples/ASX/UPIPE_Event_Server/Options.cpp examples/ASX/UPIPE_Event_Server/Peer_Router.cpp examples/Connection/blocking/SPIPE-connector.cpp examples/Connection/blocking/SPIPE-acceptor.cpp examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp examples/IPC_SAP/SSL_SAP/SSL-client.cpp examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp examples/Logger/Acceptor-server/server_loggerd.cpp examples/Logger/simple-server/server_loggerd.cpp examples/Mem_Map/IO-tests/test_io.cpp examples/Misc/test_get_opt.cpp examples/NT_Service/main.cpp examples/OS/Process/process.cpp examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp examples/QOS/Change_Sender_TSpec/QoS_Util.cpp examples/QOS/Simple/QoS_Util.cpp examples/Reactor/Multicast/client.cpp examples/Reactor/Ntalker/ntalker.cpp examples/Reactor/Proactor/simple_test_proactor.cpp examples/Reactor/Proactor/test_cancel.cpp examples/Reactor/Proactor/test_proactor.cpp examples/Reactor/Proactor/test_proactor2.cpp examples/Reactor/Proactor/test_proactor3.cpp examples/Reactor/Proactor/test_udp_proactor.cpp examples/Reactor/WFMO_Reactor/test_multithreading.cpp examples/Reactor/WFMO_Reactor/test_talker.cpp examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i examples/Shared_Malloc/Options.cpp examples/Shared_Malloc/test_position_independent_malloc.cpp examples/Synch/proc_sema.cpp examples/Threads/process_manager.cpp examples/Threads/reader_writer.cpp examples/Threads/recursive_mutex.cpp examples/Web_Crawler/Options.cpp: Replaced all uses of getopt.optarg with getopt.opt_arg(). * examples/Misc/test_get_opt.cpp (main): * examples/OS/Process/imore.cpp (parse_args): * examples/NT_Service/main.cpp (parse_args): Replaced all uses of getopt.optind with getopt.opt_ind (). * ace/Get_Opt.h: Made the optind, optarg, opterr, argv_, and argc_ data members public rather than private to avoid breaking existing code. Also removed the new optind and optarg macros to avoid breaking existing code that used those names as identifiers! Wed Dec 26 06:19:32 2001 Douglas C. Schmidt * ace/Proactor.cpp: * ace/Proactor.h: The #include "ace/Proactor.i" must come inside of the #ifdefs that determine if the Proactor will be available on a particular platform. * examples/Reactor/Misc/test_reactors.cpp: Removed a duplicate ACE_Atomic_Op_Ex instantiation. Tue Dec 25 19:43:34 2001 Balachandran Natarajan * Updated dependencies that were left behind from the last one. Tue Dec 25 09:30:14 2001 Douglas C. Schmidt * tests/Makefile: * tests/Makefile.bor: Added the new Proactor_Timer_Test. * tests/run_test.lst: Added the new Proactor_Timer_Test. * tests: Added the new Proactor_Timer_Test.cpp and Proactor_Timer_Test.dsp to exercise the new high-resolution support in the ACE_Proactor. Thanks to Miljenko Norsic for contributing this. * ace/Proactor.cpp: Added support for high-resolution timers to the proactor. Thanks to Miljenko Norsic for contributing this. * ace/OS.{h,i}: Changed the ACE_OS::event_timedwait() method to allow callers to specify either relative or absolute time. Thanks to Miljenko Norsic for contributing this. * ace/Synch.{h,cpp}: Changed the timed wait() method on ACE_Event so allow callers to specify either relative or absolute time. Thanks to Miljenko Norsic for contributing this. Tue Dec 25 12:55:56 2001 Carlos O'Ryan * Updated all dependencies. Tue Dec 25 09:30:14 2001 Douglas C. Schmidt * tests/Get_Opt_Test.cpp: Make the "test_args" parameter to parse_args() a *const* ACE_TCHAR rather than just an ACE_TCHAR. * tests/Get_Opt_Test.cpp (main): Added an ACE_UNUSED_ARG(argv) and replaced the name of the test so the log file stuff will work properly. * ace/Get_Opt.{h,i}: Changed the return type of opt_ind() from int to int& so that optind++ will work correctly! Thanks to Don Hinton for this fix. Tue Dec 25 09:07:07 2001 Balachandran Natarajan * examples/Threads/tss2.cpp: * examples/Threads/TSS_Task.h: * examples/Threads/task_two.cpp: * examples/Threads/reader_writer.cpp: * examples/Threads/manual_event.cpp: * examples/Threads/future2.cpp: * examples/Threads/future1.cpp: * examples/Reactors/Misc/teste_reactors.cpp: * netsvcs/lib/Server_Logging_T.cpp: * netsvcs/lib/Server_Logging.cpp: Added #include of Atomic_Op.h. Added template instantiations for ACE_Atomic_Op_Ex in places that was required. * netsvcs/lib/Makefile: * netsvcs/servers/makefile: Updated dependencies. Mon Dec 25 01:05:43 2001 Balachandran Natarajan * ace/Atomic_Op.h: Added a #include to get it compiling on win32 platforms. Mon Dec 25 00:18:43 2001 Balachandran Natarajan * Merry Christmas to the members of the doc_group and to all the users the world over. * ace/ace_lib.dsp: * ace/ace_dll.dsp: Added Atomic_Op.{h,cpp} to the project files. Mon Dec 24 23:52:43 2001 Balachandran Natarajan * ace/Synch_T.cpp: * ace/Synch_T.h: Removed ACE_Atomic_Op to a new file. * ace/Atomic_Op.h: * ace/Atomic_Op.i: * ace/Atomic_Op.cpp: The class ACE_Atomic_Op is in this file now. * ace/Functor.h: * ace/Functor.i: Added template specializations for some base types like ACE_UINT16. Thanks to Joe Hoffert for giving the patches. * ace/RMCast/RMCast_Reassembly.cpp: Removed a template instantation for ACE_Equal_To. * tests/Atomic_Op_Test.cpp: * tests/Auto_IncDec_Test.cpp: * tests/Cache_Map_Manager_Test.cpp: * tests/Future_Set_Test.cpp: * tests/Future_Test.cpp: * tests/Hash_Map_Bucket_Iterator_Test.cpp: * tests/MEM_Stream_Test.cpp: * tests/Map_Manager_Test.cpp: * tests/Message_Queue_Notifications_Test.cpp: * tests/Notify_Performance_Test.cpp: * tests/Reactors_Test.cpp: * tests/Reader_Writer_Test.cpp: * tests/Upgradable_RW_Test.cpp: Added #include of Atomic_Op.h in all the above files. Mon Dec 24 20:12:05 2001 Balachandran Natarajan * ace/Synch_T.h: * ace/Synch_T.cpp: Changed a copy constructor in ACE_Atomic_Op to take ACE_Atomic_Op as an argument instead of ACE_Atomic_Op_Ex. This should fix compile errors in g++. * ace/Atomic_Op.i: Made a cosmetic change. Mon Dec 24 08:08:40 2001 Douglas C. Schmidt * ace/Atomic_Op.i: Make sure to initialize the mutex_ reference in the ACE_Atomic_Op_Ex copy constructor. * ace/OS.cpp (pwrite): The lseek() call must use SEEK_CUR rather than SEEK_SET. Thanks to Duane Binder for reporting this. This fixes bugid 1095. * ace/Proactor.i (run_event_loop): Refactored the code to use the new ACE_Proactor::check_reconfiguration() static method, just like the Reactor! * ace/Proactor.h: Added the check_reconfiguration() static method to ACE_Proactor, a la the Reactor! * tests/Thread_Pool_Reactor_Resume_Test.cpp, * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp, * tests/Thread_Pool_Reactor_Test.cpp: Changed the signature of the reactor_event_hook() method to conform to the minor modifications outlined below. * ace/Reactor.h: Changed the signature of ACE_Reactor::check_reconfiguration() to reflect the following change. * ace/Reactor.h: Changed the REACTOR_EVENT_HOOK typedef to take a pointer to the ACE_Reactor. Thanks to Alex Libman for suggesting this. * performance-tests/Synch-Benchmarks/Synch_Lib/Benchmark_Base.cpp: * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.cpp: * examples/Threads/tss2.cpp: * examples/Reactor/Misc/test_reactors.cpp: * examples/Reactor/Proactor/post_completions.cpp: * examples/Reactor/Proactor/test_timeout.cpp: * examples/Threads/manual_event.cpp: * examples/Threads/future1.cpp: * examples/Threads/future2.cpp: * examples/Threads/reader_writer.cpp: * examples/Threads/task_two.cpp: * tests/Atomic_Op_Test.cpp: * tests/Auto_IncDec_Test.cpp: * tests/Future_Set_Test.cpp: * tests/Future_Test.cpp: * tests/MEM_Stream_Test.cpp: * tests/Message_Queue_Notifications_Test.cpp: * tests/Notify_Performance_Test.cpp: * tests/Reactors_Test.cpp: * tests/Upgradable_RW_Test.cpp: * tests/Reader_Writer_Test.cpp: Added explicit template instantiation for ACE_Atomic_Op_Ex<>. * ace/Malloc_Allocator.cpp: Added explicit template instantiation for ACE_Atomic_Op_Ex. * ace/Atomic_Op.i, * ace/Synch_T.{h,cpp}: Factored out some of the structure/logic from ACE_Atomic_Op into a new base class called ACE_Atomic_Op_Ex. ACE_Atomic_Op_Ex uses extra parameter - reference to ACE_LOCK to allow several ACE_Atomic_Op_Ex share the same lock. ACE_Atomic_Op is derived from ACE_Atomic_Op_Ex and its interface is the same as it was. It has only constructors implementation and operators =. All other methods are inherited from ACE_Atomic_Op_Ex. Templates instantiation for ACE_Atomic_Op_Ex should be added to all files that have templates instantiation for ACE_Atomic_Op. Thanks to Alex Libman for contributing this. * ace/Service_Config.cpp (close_singletons): Add support to close the Proactor singleton, just like the Reactor singleton. Thanks to Alex Libman for contributing this. * ace/WIN32_Proactor.cpp: Make sure to remove all the pending results from the I/O completion port queue when we close down to avoid memory leaks. Thanks to Alex Libman for contribuging this. * ace/Proactor.{h,i,cpp}: Added Alex Libman's enhancements that make the ACE_Proactor behave more like the ACE_Reactor with respect to singletons etc. In particular: 1. For each static ACE_Proactor method XXX_event_loop there is the non-static proactor_XXX_event_loop method. 2. There is a new method proactor_post_wakeup_completions which is called from static post_wakeup_completions. 3. The end_event_loop_ and event_loop_thread_count_ are now instance members, not globals! 4. The proactor instance has its own mutex to protect work with end_event_loop_ and event_loop_thread_count_. 5. Method ACE_Proactor::instance() now has a second parameter delete_proactor (default value 0 means don't delete). It returns the pointer to the previous global instance of Proactor. The caller now is responsible for deletion of this previous instance. 6. Method ACE_Proactor::cleanup() is removed since the behavior of singleton is simular to Reactor singleton. 7. Methods ACE_Proactor::proactor_run_event_loop (....) have now an extra parameter: (PROACTOR_EVENT_HOOK = 0), where the PROACTOR event hook is defined as typedef int (*PROACTOR_EVENT_HOOK)(ACE_Proactor *); * ace/Logging_Strategy.cpp * ace/Naming_Context.cpp * ace/Service_Manager.cpp: Removed the explicit template instantiations for ACE_Array_Base<> to avoid problems with multiply defined symbols. * ace/Service_Config.cpp: Added explicit template instantiations for template class ACE_Array. * docs/tutorials/014/page02.html, * docs/tutorials/014/page03.html, * docs/tutorials/014/page04.html, * docs/tutorials/014/page05.html, * docs/tutorials/014/stream.cpp, * docs/tutorials/014/Task.{h,cpp}: Fixed the tutorial so that it uses the correct synchronization mechanism for the message blocks. Thanks to Ulrich Voigt for reporting this. * ace/Log_Msg.cpp: Moved the call to ACE_Log_Msg_Manager::close() to first in the ACE_Log_Msg::close() method to avoid memory leaks. Fixes BugId 1103. Thanks to Ahmed Riza for reporting this. Sun Dec 23 23:02:17 2001 Carlos O'Ryan * examples/QOS/Diffserv/Diffserv.dsw: * examples/QOS/Diffserv/diffserv_test.dsp: * examples/QOS/Diffserv/server.dsp: * examples/Reactor/FIFO/FIFO.dsw: * examples/Reactor/FIFO/client.dsp: * examples/Reactor/FIFO/server.dsp: * examples/Shared_Memory/Shared_Memory.dsw: * examples/Shared_Memory/test_MM.dsp: * examples/Shared_Memory/test_SV.dsp: Add more missing project files and workspaces. Mon Dec 24 00:48:34 2001 Nanbor Wang * tests/tests.dsw: * tests/Get_Opt_Test.dsp: Added this new project file. Sun Dec 23 12:25:55 2001 Don Hinton * ace/Logging_Strategy.cpp * ace/Naming_Context.cpp * ace/Service_Config.cpp * ace/Service_Manager.cpp * ace/Get_Opt{h,i,cpp}: Added long option support to ACE_Get_Opt that closely minimics getopt_long(3c) functionality as follows: made all member variables private; added accessor functions and macros wrappers to transparently provide backward compatibility; added new function, long_option(), that can be used to add long options with/without corresponding short options. * tests/Makefile * tests/Makefile.bor * tests/run_test.lst * tests/Get_Opt_Test.cpp: Added a new one-button test for ACE_Get_Opt that tests new long option support and demonstrates its use. Sat Dec 22 23:12:33 2001 Carlos O'Ryan * examples/Misc/Misc.dsw: * examples/Misc/test_XtReactor1.dsp: * examples/Misc/test_XtReactor2.dsp: * examples/Misc/test_dump.dsp: * examples/Misc/test_get_opt.dsp: * examples/Misc/test_profile_timer.dsp: * examples/Misc/test_read_buffer.dsp: * examples/Misc/test_set.dsp: * examples/Misc/test_sstring.dsp: * examples/Misc/test_trace.dsp: * examples/IPC_SAP/DEV_SAP/reader/reader.dsp: * examples/IPC_SAP/DEV_SAP/reader/reader.dsw: * examples/IPC_SAP/DEV_SAP/writer/writer.dsp: * examples/IPC_SAP/DEV_SAP/writer/writer.dsw: * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.dsp: * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.dsp: * examples/IPC_SAP/FIFO_SAP/FIFO-client.dsp: * examples/IPC_SAP/FIFO_SAP/FIFO-server.dsp: * examples/IPC_SAP/FIFO_SAP/FIFO-test.dsp: * examples/IPC_SAP/FIFO_SAP/FIFO_SAP.dsw: * examples/IPC_SAP/SPIPE_SAP/NPClient.dsp: * examples/IPC_SAP/SPIPE_SAP/NPServer.dsp: * examples/IPC_SAP/SPIPE_SAP/SPIPE_SAP.dsw: * examples/IPC_SAP/SPIPE_SAP/client.dsp: * examples/IPC_SAP/SPIPE_SAP/consumer_msg.dsp: * examples/IPC_SAP/SPIPE_SAP/consumer_read.dsp: * examples/IPC_SAP/SPIPE_SAP/producer_msg.dsp: * examples/IPC_SAP/SPIPE_SAP/producer_read.dsp: * examples/IPC_SAP/SPIPE_SAP/server.dsp: * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.dsp: * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.dsp: * examples/IPC_SAP/TLI_SAP/CPP-client.dsp: * examples/IPC_SAP/TLI_SAP/CPP-server.dsp: * examples/IPC_SAP/TLI_SAP/TLI_SAP.dsw: * examples/IPC_SAP/TLI_SAP/db-client.dsp: * examples/IPC_SAP/TLI_SAP/db-server.dsp: * examples/IPC_SAP/TLI_SAP/ftp-client.dsp: * examples/IPC_SAP/TLI_SAP/ftp-server.dsp: * examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.dsw: * examples/IPC_SAP/UPIPE_SAP/ex1.dsp: * examples/IPC_SAP/UPIPE_SAP/ex2.dsp: * examples/IPC_SAP/UPIPE_SAP/ex3.dsp: Add yet more missing project files. * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp: * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp: * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp: Fixed minor syntax errors for Win32 builds. Sat Dec 22 11:27:11 2001 Carlos O'Ryan * bin/auto_compile: Add missing -i flags for make_pretty.pl. Sat Dec 22 11:24:53 2001 Carlos O'Ryan * examples/Service_Configurator/IPC-tests/client/client.dsw: * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.dsp: * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.dsp: * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.dsp: * examples/Service_Configurator/IPC-tests/server/server.dsw: * examples/Service_Configurator/IPC-tests/server/Server.dsp: * examples/Service_Configurator/IPC-tests/server/Server_static.dsp: * examples/Service_Configurator/IPC-tests/server/server_test.dsp: Add missing project files and workspaces. * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h: * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h: * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h: * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h: * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h: * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h: * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h: * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h: * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h: * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h: Add export directives for Win32 builds. Fri Dec 21 14:39:57 2001 Carlos O'Ryan * examples/Map_Manager/Map_Manager.dsw: * examples/Map_Manager/test_hash_map_manager.dsp: * examples/ASX/CCM_App/CCM_App.dsp: * examples/ASX/CCM_App/CCM_App.dsw: * examples/ASX/CCM_App/CCM_App_static.dsp: * examples/ASX/CCM_App/SC_Client.dsp: * examples/ASX/CCM_App/SC_Server.dsp: * examples/Connection/misc/Connection_Handler.dsp: * examples/Connection/misc/misc.dsw: * examples/Connection/misc/test_upipe.dsp: * examples/IOStream/client/client.dsw: * examples/IOStream/client/iostream_client.dsp: * examples/IOStream/server/server.dsw: * examples/IOStream/server/iostream_server.dsp: * examples/Smart_Pointers/Smart_Pointers.dsw: * examples/Smart_Pointers/gadget_test.dsp: * examples/Smart_Pointers/widget_test.dsp: Add missing project files and workspaces. Fri Dec 21 16:22:39 2001 Steve Huston * ace/ace.icc: Corrected entries for String_Base_Const.(h cpp). Fri Dec 21 16:00:00 2001 Steve Huston * tests/SSL/Makefile.bor: Add $(SSL_CFLAGS) $(ACE_SSL_CFLAGS) to CFLAGS to pick up the SSL include dirs, etc. Fri Dec 21 11:30:01 2001 Carlos O'Ryan * examples/Shared_Malloc/multiple_mallocs.dsp: Add Malloc.cpp and Options.cpp to this project. Though not strictly required for Win32 the files are used in Unix builds. Having the .dsp and Makefile consistent is helpful for samwise. Fri Dec 21 14:14:51 2001 Steve Huston * ace/SSL/Makefile: Removed SSL_Accept_Handler.* and SSL_Connect_Handler.* from the dependencies. * tests/Makefile: Only build SSL tests if ssl eq 1. Fri Dec 21 16:13:54 2001 Balachandran Natarajan * Makefile: Added Makefile.bor to the list of controlled files for the release. Thu Dec 20 18:20:51 2001 Douglas C. Schmidt * ace/RB_Tree.cpp: Added checks in the RB_tree_predecessor() and RB_tree_successor() methods to guard against indirections via a NULL pointer. Thanks to Craig Ching for reporting this fix. Thu Dec 20 18:05:32 2001 Steve Huston * examples/Shared_Malloc/test_persistence.cpp: Added a nothrow variant of operator new to work with ACE_HAS_NEW_NOTHROW platforms. Thu Dec 20 15:04:52 2001 Steve Huston * ace/SSL/SSL_SOCK_Acceptor.h: Improved documentation. Changed "protocol_family" argument defaults from PF_INET to PF_UNSPEC to work correctly with IPv6 support. Thu Dec 20 13:53:48 2001 Steve Huston * ace/SSL/SSL_SOCK_Acceptor.cpp: * ace/SSL/SSL_SOCK_Connector.cpp: Fixed compile errors on Win32. Thu Dec 20 13:37:42 2001 Steve Huston * ace/config-all.h: Restructured the section for ACE_NEW_THROWS_EXCEPTIONS so that if ACE_HAS_NEW_NOTHROW is defined, the new(nothrow) version is used rather than setting up a try/catch. (Previously, this was only done for HP aC++). Also, check for __BORLANDC__ and set up the ACE_bad_alloc exception value properly. Thanks to Johnny Willemsen for reporting this problem. Thu Dec 20 11:43:29 2001 Steve Huston * tests/SSL: New directory for ACE_SSL tests. * tests/SSL/dummy.pem: * tests/SSL/key.pem: * tests/SSL/Makefile: * tests/SSL/Makefile.bor: Structure support for new tests. * tests/Thread_Pool_Reactor_SSL_Test.(h cpp): Tests the ACE_TP_Reactor with ACE_SSL wrappers. Thank you to Robert Handl for contributing this test. * tests/Makefile: * tests/Makefile.bor: Add SSL to build dirs if building with SSL. * THANKS: Added Robert Handl to the Hall of Fame. Thu Dec 20 11:34:51 2001 Steve Huston * ace/SSL/SSL_SOCK_Acceptor.(h cpp i): * ace/SSL/SSL_SOCK_Connector.(h cpp i): Series of changes: - Does not use an ACE_Reactor any longer. Waiting for socket I/O possibility is done using ACE::select. It's simpler and doesn't suffer on Win32. - The basic socket acceptance is referred to ACE_SOCK_Acceptor, so the shared_accept_start and shared_accept_finish methods are gone (in SSL_SOCK_Acceptor.*; no affect on Connector). - The timed and non-timed versions of ssl_accept/connect are now combined into one function. The timeout value passed to the ACE_SSL_SOCK_Acceptor::accept() method is used, and it correctly drives ACE::accept. * ace/SSL/SSL_Connector_Handler.(cpp h): * ace/SSL/SSL_Accept_Handler.(cpp h): These are no longer needed. since all of the accept handshaking activity is paced by ACE::accept, not a reactor. * ace/SSL/Makefile: * ace/SSL/Makefile.bor: * ace/SSL/ACE_SSL.dsp: * ace/SSL/ACE_SSL_LIB.dsp: Removed SSL_Accept_Handler and SSL_Connect_Handler. Thu Dec 20 09:03:12 2001 Johnny Willemsen * Makefile.bor: Only build ace and its tests because the rest is not fully unicode compliant Wed Dec 19 22:28:00 2001 Ossama Othman * ace/WFMO_Reactor.cpp (upcall): Corrected syntax error. Wed Dec 19 21:54:29 2001 Steve Huston * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_NEW_NOTHROW when exceptions are enabled. Wed Dec 19 11:10:35 2001 Douglas C. Schmidt * ace/WFMO_Reactor.cpp: Use the ACE_BIT_ENABLED macro rather than the '&' operator directly. 2001-12-18 Douglas C. Schmidt * Both Irfan Pyarali and Chris Gill are now *Dr.* Pyarali and *Dr.* Gill. Congrats to both on a job well done! Wed Dec 19 10:02:53 2001 Venkita Subramonian * Makefile.bor: Made changes for Borland ace-only builds as per Johnny Willemsen . Wed Dec 19 09:39:03 2001 Venkita Subramonian * tests/Message_Queue_Test_Ex.cpp: Fixed compiler warning. Deleted an unused variable declaration. Wed Dec 19 10:31:12 2001 Johnny Willemsen * tests/Makefile.bor: Added INET_Addr_Test * tests/INET_Addr_Test.cpp: Changed type of argv from char to ACE_TCHAR to solve link errors in the Unicode builds Tue Dec 18 19:15:42 2001 Steve Huston * tests/INET_Addr_Test.dsp: New test project for INET_Addr_Test. * tests/tests.dsw: Added INET_Addr_Test project. Tue Dec 18 18:50:29 2001 Steve Huston * ace/README: Added entry for new macro, ACE_HAS_NEW_NOTHROW. This setting should be enabled if the compiler offers new (nothrow). It enables nothrow variants of operator new where that operator is defined on ACE classes. * ace/config-hpux-11.00.h: Added ACE_HAS_NEW_NOTHROW for aCC. * ace/config-all.h: Changed ACE_NEW[_RETURN] for HP aC++ to use new(nothrow) rather than trying to catch exceptions, which works particularly poorly when exceptions are disabled. Even if they're disabled at compiler time, the run-time will still throw an exception if allocation fails. Fix decision making for how to do this correctly for both HP-UX 10.20 and 11.x. Correct ACE_throw_bad_alloc to compile correctly. * ace/Configuration.cpp (create_index_helper, value_open_helper, section_open_helper): * ace/Local_Name_Space_T.cpp (create_manager_i): * ace/Malloc_Allocator.cpp (ACE_Allocator::instance): Use naked placement new rather than ACE_NEW_RETURN. Placement new does not work with new(nothrow) and a placement new won't throw an exception that the ACE_NEW_* macros would catch anyway. * ace/Svc_Handler.(h cpp): Added a nothrow version of operator new if ACE_HAS_NEW_NOTHROW is defined. * ace/config-hpux-11.x-hpc++.h: As promised before ACE 5.1, this file is removed. config-hpux-11.00.h is the HP-UX 11.x config. * ace/config-aix-3.2.5.h: * ace/config-hpux-9.x.h: Removed. These are hopelessly out of date and the compilers don't support them any longer. Tue Dec 18 17:47:44 2001 Steve Huston * ace/Caching_Utility_T.cpp: Added #include "ace/Recyclable.h" to pick up def for ACE_RECYCLABLE_IDLE_AND_PURGABLE. * tests/INET_Addr_Test.cpp: ACEified. * tests/run_test.lst: Added INET_Addr_Test. Tue Dec 18 14:43:02 2001 Carlos O'Ryan * ace/Sock_Connect.cpp: * ace/config-cygwin32-common.h: Use the #include /**/ trick to shut up the WinCE warnings. Tue Dec 18 22:05:04 2001 Balachandran Natarajan * bin/make_release: Added comment to indicate the problem in producing diffs when a beta after a major or minor release is cut. This needs fixing. Will get to this when the other pending changes go in. Tue Dec 18 16:01:59 2001 Douglas C. Schmidt * ace/OS_Dirent.cpp (readdir_emulation): Fixed an "off-by-one" memory allocation error. Thanks to Kyle Brost for reporting this. Mon Dec 17 09:04:28 2001 Douglas C. Schmidt * ace/OS.i (ctime_r): Replaced ACE_OS::strsncpy() with ACE_OS::strncpy() to fix a bug on Linux. Thanks to Vlado Chovanec for reporting this. This fixes BugID 1101. Tue Dec 18 13:04:07 2001 Carlos O'Ryan * bin/make_pretty.pl: Incorporate numerous pending changes and improvements. Tue Dec 18 12:45:45 2001 Carlos O'Ryan * bin/nightlybuilds/builds.lst: Updated to use the new build standard. * bin/nightlybuilds/scoreboard_update.pl: Incorporate changes to support multiple "groups" (for external builds), to print out the last reported status of each build (such as "COMPILING"), and to adjust the build timeouts on a per-build basis. Tue Dec 18 11:11:29 2001 Steve Huston * ace/SPIPE.h: Improved comments for Doxygen processing. Mon Dec 17 18:30:41 2001 Steve Huston * ace/SPIPE_Acceptor.(h cpp): For Windows, use the event handle instead of the pipe handle for the handle value stored in the ACE_IPC_SAP class. The pipe handle is pretty useless for doing anything like detecting when the pipe connect is done - the event handle is what's really useful there, and it stays consistent across accepts, while the pipe handle changes. This change allows the get_handle() value to be registered with the reactor, albeit for signal, not input. Mon Dec 17 00:13:47 2001 Nanbor Wang * ace/String_Base_Const.h: * ace/String_Base_Const.cpp: Added a new base class for ACE_String_Base extracting out the static member data to circumvent a SunCC compilation problem which only happen when debug=0 is defined. * ace/String_Base.h: * ace/String_Base.cpp: Removed the offending static member sata. * ace/Makefile: * ace/Makefile.bor: * ace/ace_dll.dsp: * ace/ace_lib.dsp: * ace/ace.icc: * ace/ace-lib.icc: * ace/ace-dll.icc: Added String_Base_Const.* to various project files. Sun Dec 16 10:33:17 2001 Douglas C. Schmidt * ace/Select_Reactor_T.h: Improve the documentation of the ACE_Select_Reactor_T() constructor to clarify the mask_signals and disable_notify_pipe parameters. Thanks to Bob Jolliffe for motivating this. Sun Dec 16 16:42:12 2001 Johnny Willemsen * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.{h,cpp}: * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.{h,cpp}: * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp: * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp: * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: * examples/IPC_SAP/FILE_SAP/client.cpp: * examples/IPC_SAP/UPIPE_SAP/ex1.cpp: * examples/IPC_SAP/UPIPE_SAP/ex2.cpp: * examples/IPC_SAP/UPIPE_SAP/ex3.cpp: * examples/Log_Msg/test_callback.cpp: * examples/Log_Msg/test_log_msg.cpp: * examples/Log_Msg/test_ostream.cpp: Made these examples compile when ACE_USES_WCHAR is set Sun Dec 16 08:04:23 2001 Venkita Subramonian * tests/Message_Queue_Test_Ex.cpp : fixed a compiler error Sat Dec 15 09:30:31 2001 Douglas C. Schmidt * tests/Message_Queue_Test_Ex.cpp (main): Fixed a minor bug by removing the size-hint from the call to User_Class. Thanks to Venkita Subramonian for reporting this. * ace/config-win32-mingw.h. Added #define ACE_HAS_BROKEN_SAP_ANY so that it'll compile on MinGW32. Thanks to Ben Flight for reporting this. * tests/Logging_Strategy_Test.cpp: include ace/Logging_Strategy.h rather than ace/Logging_Strategy.cpp. Thanks to Mike Connors for reporting this. Sat Dec 15 16:20:28 2001 Balachandran Natarajan * ace/ace_os_dll.vcp: Added the files OS_QoS.{h,cpp}. Sat Dec 15 09:52:14 2001 Carlos O'Ryan * examples/Misc/test_set.cpp: Add missing #include for Tru64/DU/CXX, probably implicitly included on other platforms due to the ACE_TEMPLATES_REQUIRE_SOURCE. Sat Dec 15 09:30:31 2001 Douglas C. Schmidt * tests/Message_Queue_Test_Ex.cpp: Improved the example to use a user-defined class parameter for ACE_Message_Queue_Ex rather than ACE_Message_Block. Thanks to Bill Fulton for reporting this. * ace/Configuration.cpp: Make the return code of enumerate_values() consistent with enumerate_sections(). Thanks to Kevin Burge for reporting this. Fri Dec 14 21:36:29 2001 Steve Huston * ace/ace.icc: Adjusted file list as a result of split-apart Strategies.* files (Mon Dec 10 15:39:22 2001 Balachandran Natarajan) * ace/Connection_Recycling_Strategy.cpp: * ace/Hashable.cpp: * ace/Recyclable.cpp: * ace/Refcountable.cpp: Changed the ACE_RCSID to reflect the correct module name (they all still were named Strategies, from whence they came. Fri Dec 14 14:05:09 2001 Carlos O'Ryan * ace/svc_export.h: * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.dsp: Found a better way to deal with the inconsistencies in the ACE_Svc_Export macro. * netsvcs/clients/Naming/Dump_Restore/Dump_Restore_static.dsp: Fixed project file for static library. Fri Dec 14 11:35:01 2001 Craig Rodrigues * ace/SSL/SSL_SOCK_Acceptor.h: * ace/SSL/SSL_SOCK_Connector.h: * examples/QOS/Simple/Fill_ACE_QoS.h: * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h: * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h: Add #include "ace/OS_QoS.h". Thu Dec 13 22:16:02 2001 Carlos O'Ryan * ace/svc_export.h: Support ACE_Svc_BUILD_DLL also, to be consistent with all the other export macros. * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h: Add missing ACE_Svc_Export to the class. * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.dsw: * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.dsp: * netsvcs/clients/Naming/Dump_Restore/Dump_Restore_static.dsp: * netsvcs/clients/Naming/Dump_Restore/main.dsp: Add missing project files and a workspace. Fri Dec 14 00:08:57 2001 Craig Rodrigues * ace/OS.h: Move around definitions of ACE_SOCK_GROUP and ACE_OVERLAPPED_COMPLETION_FUNCTION_FUNC to fix Win32 builds. * ace/OS.cpp: Add #include "ace/OS_QoS.h" to fix Win32 builds. Thu Dec 13 22:21:52 2001 Balachandran Natarajan * Updated dependencies of many Makefile's. Thu Dec 13 21:36:15 2001 Craig Rodrigues * ace/OS.cpp: Remove ACE_INLINE from join_leaf(). * ace/OS_QoS.cpp: Remove ACE_INLINE. * ace/OS_QoS.h: Add include for pre.h. Thu Dec 13 16:53:00 2001 Ossama Othman * bin/auto_run_tests.lst: Added TAO/orbsvcs/tests/Security/Callback test to the list of tests to run in our automated regression test suite. Thu Dec 13 18:11:00 2001 Craig Rodrigues * ace/OS.h: Move QoS data structures to OS_QoS.h. Forward declare QoS data structures now contained in OS_QoS.h and OS_QoS.cpp. * ace/OS.i: * ace/OS.cpp: Move QoS enabled socket API functions from OS.i to OS.cpp. * ace/OS_QoS.h (added): * ace/OS_QoS.cpp (added): OS specific QoS data structures go here. * ace/MEM_Acceptor.h: * ace/SOCK_Acceptor.cpp: * ace/SOCK_Connector.cpp: * ace/QoS/QoS_Session.h: Add #include "ace/OS_QoS.h". * ace/QoS/QoS_Session_Impl.cpp: Add u_long casts to eliminate compiler warnings. * ace/Makefile: Add rule for OS_QoS. * ace/Makefile.bor: Same. * ace/ace_dll.dsp: Same. * ace/ace_lib.dsp: Same. Thu Dec 13 14:58:43 2001 Ossama Othman * THANKS: Added Greg Burley to our Hall of Fame. Thu Dec 13 14:11:26 2001 Carlos O'Ryan * ace/ace_dll.vcp: Remove Strategies.* from the WinCE project files, and add the new files that replace it. Thu Dec 13 16:41:39 2001 Steve Huston * examples/Reactor/WFMO_Reactor/test_multithreading.cpp: Changed call to ACE_Service_Config::close_singletons () to call ACE_Reactor::close_singleton() instead. Recent changes made it necessary to include "ace/Service_Config.h" here to use the former, and it seemed better to call the only needed singleton destroyer necessary in this case. * examples/Reactor/WFMO_Reactor/test_suspended_removals.cpp: * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: * examples/Bounded_Packet_Relay/BPR_Drivers.h: Added #include "ace/Reactor.h" - recent changes necessitate this. * examples/Reactor/WFMO_Reactor/test_talker.cpp: Added #include "ace/Reactor_Notification_Strategy.h" - recent changes necessitate this. Wed Dec 12 16:29:17 2001 Greg Burley * ace/SSL/SSL_Context.h: * ace/SSL/SSL_Context.inl: * ace/SSL/SSL_Context.cpp: Made it possible to specify certificate authority locations after the verification mode has been set. Wed Dec 12 12:38:16 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.cpp: * ace/SSL/SSL_Connect_Handler.cpp: Added missing "ace/Reactor.h" include. ACE_Reactor is only forward declared otherwise. Wed Dec 12 12:21:11 2001 Vladimir Chovanec * ace/SSL/SSL_Accept_Handler.cpp (handle_input, handle_output): On Win32 platforms, cancel any previously scheduled "wakeup" before attempting to perform IO. If necessary, a "wakeup" will be scheduled if the IO call would block. (ssl_accept): On Win32 platforms, it is necessary to schedule a "wakeup" in the Reactor if an IO call would block. This is necessary since Windows events are only notified once. Hence, event handlers must be rescheduled. * ace/SSL/SSL_Connect_Handler.cpp (handle_input, handle_output, ssl_connect): Likewise. Wed Dec 12 06:56:46 2001 Balachandran Natarajan * THANKS: Added Petr Tuma to the hall of fame. Wed Dec 12 07:29:12 2001 Johnny Willemsen * ace/Makefile.bor: Added Recycable Tue Dec 11 12:17:45 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.h (ACE_SSL_Accept_Handler): * ace/SSL/SSL_Connect_Handler.h (ACE_SSL_Connect_Handler): Accept a reference to the flag that causes the calling thread's event loop to stop on error. See below for details. * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): Return 1 if errno == EWOULDBLOCK and SSL_pending() return a value greater than zero. The event handler should be called back before waiting for more in events in the reactor. This change causes the behavior for this case to match that of the SSL_ERROR_WANT_{READ,WRITE} cases. Thanks to Vladimir Chovanec for providing this fix. (handle_close): Set the "handler_closed" flag to one. This will notify the event loop in the SSL_SOCK_{Acceptor,Connector} that it should stop handling events in the event of an error. * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): Pass a flag by reference to the event handler responsible for completing the non-blocking SSL connection. The event handler will set the flag to 1 in order to cause the event loop in this method to stop if the event handler is closed on error. Stop the event loop if a timeout occurs, i.e. handle_events() returns 0. In conjunction with the above change, this fixes an infinite loop that would occur in such a timeout situation. Tue Dec 11 07:59:12 2001 Johnny Willemsen * ace/Makefile.bor: Updated BCB makefile with the changes of the changelog entry Mon Dec 10 15:39:22 2001 Balachandran Natarajan * tests/MEM_Stream_Test.cpp: Removed wrong ; after an if statement in this test. This should fix the warning in the MSVC builds Mon Dec 10 19:10:22 2001 Balachandran Natarajan * ace/Refcountable.h: * ace/Recyclable.h: * ace/Hashable.h: * ace/Hashable.inl: * ace/Notification_Strategy.inl: * ace/Reactor_Notification_Strategy.inl: Fixed fuzz errors. Mon Dec 10 18:54:22 2001 Balachandran Natarajan * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added the new files and removed old ones. Mon Dec 10 15:39:22 2001 Balachandran Natarajan Merged from my branch. This checkin actually splits classes in Strategies.h to multiple files. We also remove Strategies.* files from the repo. Tue Nov 27 12:29:09 2001 Balachandran Natarajan * ace/Refcountable.h: Added a #define for the inlined file. * examples/Reactor/Misc/test_demuxing.cpp: * examples/Timer_Queue/Reactor_Timer_Queue_Test.h: * examples/Timer_Queue/main_reactor.cpp: Added #includes * examples/*/Makefile: * tests/Makefile: Updated dependencies Wed Nov 21 10:44:33 2001 Balachandran Natarajan * tests/Cached_Accept_Conn_Test.h: * tests/Cached_Conn_Test.cpp: * tests/Conn_Test.cpp: * tests/Message_Queue_Notifications_Test.cpp: * tests/Priority_Reactor_Test.cpp: * tests/Reactors_Test.cpp: * tests/Service_Config_DLL.cpp: * tests/RMCast/Makefile: Fixed compilation errors. Wed Nov 21 10:42:13 2001 Balachandran Natarajan * ace/Svc_Handler.cpp: * ace/Connector.h: * ace/Strategies_T.h: * ace/Acceptor.h: * ace/Svc_Handler.h: Fixed compilation errors. Tue Nov 20 12:48:39 2001 Balachandran Natarajan * ace/Strategies.h: * ace/Strategies.cpp: * ace/Strategies.i: Removed from the repo as the files are being replaced with multiple files, with one class per file. Please see below for details. The conglomeration of all the classes in the same file made very less sense. * ace/Connection_Recycling_Strategy.h: * ace/Connection_Recycling_Strategy.cpp: Added a new file for the class ACE_Connection_Recycling_Strategy * ace/Hashable.h: * ace/Hashable.cpp: * ace/Hashable.inl: New file for the class ACE_Hashable * ace/Notification_Strategy.h: * ace/Notification_Strategy.cpp: * ace/Notification_Strategy.inl: New file for the class ACE_Notification_Strategy. * ace/Reactor_Notification_Strategy.h: * ace/Reactor_Notification_Strategy.cpp: * ace/Reactor_Notification_Strategy.inl: New file for the class ACE_Reactor_Notification_Strategy * ace/Recyclable.h: * ace/Recyclable.cpp: * ace/Recyclable.inl: New file for the class ACE_Recyclable * ace/Refcountable.h: * ace/Refcountable.cpp: * ace/Refcountable.inl: New file for the class ACE_Refcountable. * ace/OS.h: Moved the enum ACE_Recyclable_State to Recyclable.h * ace/Acceptor.h: * ace/Caching_Utility_T.cpp: * ace/Message_Queue.h: * ace/Message_Queue_T.cpp: * ace/Strategies_T.h: * ace/Svc_Handler.cpp: Removed inclusion of Strategies.h. * ace/Procator.cpp: #included Service_Config.h * ace/Makefile: Added new file and generated dependencies * ace/SSL/Makefile: * ace/RMCast/Makefile: Generated dependencies. Mon Dec 10 14:10:00 2001 Nanbor Wang * Makefile.bor: Added an ace_only target for Borland_wchar nightly build. Sun Dec 9 08:54:38 2001 Douglas C. Schmidt * ace/Activation_Queue.cpp (enqueue): Fixed a leak where the dynamically allocated ACE_Message_Block wasn't being released if enqueue_prio() failed. Thanks to Dan Gilboa for reporting this. * tests/Logging_Strategy_Test.cpp (run_reactor): Fixed a warning. * tests/MEM_Stream_Test.cpp: Added a call to ACE_Thread_Manager::wait() to ensure the test shuts down in the right order. Thanks to Michael Searles for reporting this. * ace/Message_Queue_T.i (dequeue): Call dequeue_head() rather than queue_.dequeue() to get the proper type enforcement. Thanks to Bill Fulton for contributing this fix. Sat Dec 8 17:07:01 2001 Ossama Othman * bin/fuzz.pl (check_for_missing_rir_env): Check for TAO_ENV_ARG_PARAMETER instead of ACE_TRY_ENV. TAO now uses the former instead of the latter. Sat Dec 8 09:39:48 2001 Douglas C. Schmidt * ace/OS.cpp (string_to_argv): Improved the support for quoted strings. Thanks to Kevin Burge for reporting this. * ace/Profile_Timer.cpp, ace/OS.i, ace/OS.h, ace/OS.cpp, ace/High_Res_Timer.i, ace/High_Res_Timer.cpp, ace/config-win32-ghs.h, ace/config-win32-common.h: Added improved support for ACE_LACKS_LONGLONG_T. Thanks to Alain Decamps for contributing this. Fri Dec 7 07:57:12 2001 Douglas C. Schmidt * ace/OS.cpp (cond_timedwait): Fixed a bug in the WinCE semaphore simulation version of ACE_OS::cond_timedwait(). Thanks to Michael Graf for helping to find this. Fri Dec 07 14:28:33 2001 Carlos O'Ryan * tests/ACE_Init_Test.cpp: * tests/ACE_Init_TestDlg.cpp: Fix order of #includes to work under unicode builds. Fri Dec 07 15:42:44 2001 Nanbor Wang * ace/Registry_Name_Space.cpp: Changed to conditionally use char_rep for binding/unbinding/resolving name bindings. This is because ACE_CString and ACE_WString no longer allow initialization with different string type. Fri Dec 7 10:22:25 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (close): Do not invalidate the handle when closing the ACE_SSL_SOCK_Stream. Doing so causes subtle side-effects when a reactor invokes an event handler that uses a shutdown ACE_SSL_SOCK_Stream. For example, if an SSL handshake fails then the stream andle will be invalidated. This prevents the ACE_SSL_Accept_Handler from being removed from the reactor. Later when handle_events() is called the reactor will attempt to call the ACE_SSL_Accept_Handler with the shutdown ACE_SSL_SOCK_Stream, which appears to cause an access violation on Windows, and a "hang" on Unix platforms. Thanks to Vladimir Chovanec for tracking down this problem. Thu Dec 6 18:48:07 2001 Douglas C. Schmidt * ace/Lib_Find.cpp: Fixed the ldfind() method so that it does a case-insensitive comparison on Windows platforms. Thanks to Kevin Burge for reporting this. Thu Dec 6 09:02:06 2001 Douglas C. Schmidt * ace/Sock_Connect.cpp: Added MACOSX support. Thanks to John Michael Zorko for contributing this. * tests/Logging_Strategy_Test.cpp: Add a "wait()" at the end of the main function to avoid problems when the main thread exits before the reactor thread. Thanks to Michael Searles for reporting this. Thu Dec 06 20:28:02 2001 Nanbor Wang * ace/SString.cpp (ACE_NS_WString): Char string constructor only initialized the buffer length but not the string length. This was causing string comparisons to fail. Thu Dec 6 18:51:39 2001 Steve Huston * include/makeinclude/platform_sunos5_sunc++.GNU: Re this change: Wed Dec 5 12:37:56 2001 Carlos O'Ryan more than the Orbix stuff was removed... restored the setting of required link libraries and handling for the distrib option. Thu Dec 06 14:06:22 2001 Nanbor Wang * tests/Config_Test.cpp: The string literals used to initialize ACE_TString need to be enclosed in an ACE_TEXT macro. * ace/Registry_Name_Space.h: * ace/Registry_Name_Space.cpp: Changed ACE_WString to ACE_NS_WString. I missed these last time. * ace/SString.i: Added an ACE_NS_WString constructor that I missed. Thu Dec 6 11:19:18 2001 Venkita Subramonian * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: Fixed warnings in gcc 3.0.2 Thu Dec 6 11:15:28 2001 Balachandran Natarajan * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: Fixed Fuzz errors in these files. Thu Dec 6 07:39:07 2001 Chad Elliott * Added two new static functions for VxWorks only. spae() and spaef() which are similar to spa(), but allow more than 10 arguments with the help of double quoted strings. spaef() is similar to spae() except that a new task is not spawned to run the main function of the program. Thanks to Albert Wijnja for the idea and supplying the original code. Thu Dec 06 00:06:52 2001 Nanbor Wang * performance-tests/Misc/test_naming.cpp: Replaced the use of ACE_WString with ACE_NS_WString as ACE_WString no longer support initization using char string. Wed Dec 05 17:13:15 2001 Nanbor Wang * ace/SString.h: The concatenation oeprator needed to be exported. Wed Dec 5 19:58:42 2001 Steve Huston * ace/Logging_Strategy.cpp: Set the logger_key_ member to 0 (no key) unless/until the LOGGER flag is specified (and then the default key is set) or the -k option is given, which specifies a new key. Always passing a logger_key, even when there's no logger to be used, makes for some odd names in the syslog and NT Event Logs after the change:Sat Dec 1 19:39:22 2001 Steve Huston Thanks to Chris Kohlhoff for pointing this out. Wed Dec 5 15:35:20 2001 Carlos O'Ryan * apps/Makefile.am: * docs/ACE-categories.html: Removed left over references to Orbix handler. * apps/JAWS/remora/app/Makefile: * apps/JAWS/remora/app/stdmk: * apps/JAWS/remora/app/test.cc: * apps/JAWS/remora/app/remora.idl: * apps/JAWS/remora/app/Remora_Export.h: * apps/JAWS/remora/app/Remora_Export.i: * apps/JAWS/remora/app/Remora_Export.cc: * apps/JAWS/remora/app/Remora_Import.h: * apps/JAWS/remora/app/Remora_Import.i: * apps/JAWS/remora/app/Remora_Import.cc: Another directory that could only compile if ORBeline was still available. Wed Dec 05 14:47:32 2001 Carlos O'Ryan * ace/ace_dll.dsp: * ace/ace_lib.dsp: Removed CORBA_Handler.* and CORBA_Ref.* classes from the project files. Wed Dec 5 16:38:31 2001 Nanbor Wang * tests/SString_Test.cpp: * examples/Misc/test_sstring.cpp (main): Changed from ACE_WString to ACE_NS_WString so we can still initialize the test string from char strings. We can no longer initialize ACE_WString's with char strings. ACE_NS_WString maintains the old behavior, however. * ace/SString.h: * ace/SString.i: Added string contatenation operator ACE_NS_WString::operator+. Wed Dec 5 12:37:56 2001 Carlos O'Ryan * Removed all code to support Orbix and any references to it in the documentation (at least all references that I found). We haven't tested this code in ages, so it was probably broken, furthermore, IONA does not sell Orbix-2.X nor Orbix-3.X (the versions our code was based on), and will probably stop supporting old versions of Orbix before ACE-5.3 (or 6.0) come out. * ace/Makefile: * ace/Makefile.am: * ace/Makefile.bor: * ace/ace-dll.icc: * ace/ace-lib.icc: * ace/ace.icc: * ace/CORBA_Handler.h: * ace/CORBA_Handler.i: * ace/CORBA_Handler.cpp: * ace/CORBA_Ref.h: * ace/CORBA_Ref.cpp: * ace/config-hpux-9.x-orbix.h: * ace/config-sunos4-sun4.x-orbix.h: * ace/config-sunos5.4-sunc++-4.x-orbix.h: * ace/config-sunos5.x-sunc++-4.x-orbix.h: * apps/Makefile: * apps/Makefile.am: * apps/Orbix-Examples/Makefile: * apps/Orbix-Examples/Event_Comm/Makefile: * apps/Orbix-Examples/Event_Comm/README: * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp: * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h: * apps/Orbix-Examples/Event_Comm/Consumer/Makefile: * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp: * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h: * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp: * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp: * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h: * apps/Orbix-Examples/Event_Comm/Supplier/Makefile: * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp: * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h: * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp: * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh: * apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h: * apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h: * apps/Orbix-Examples/Event_Comm/include/Notifier_i.h: * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh: * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl: * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp: * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp: * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h: * apps/Orbix-Examples/Event_Comm/libsrc/Makefile: * apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl: * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl: * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp: * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h: * apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl: * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp: * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h: * apps/Orbix-Examples/Logger/Logger.cpp: * apps/Orbix-Examples/Logger/Logger.h: * apps/Orbix-Examples/Logger/Makefile: * apps/Orbix-Examples/Logger/Orbix.hostgroups: * apps/Orbix-Examples/Logger/Orbix.hosts: * apps/Orbix-Examples/Logger/README: * apps/Orbix-Examples/Logger/a1.tex: * apps/Orbix-Examples/Logger/client.cpp: * apps/Orbix-Examples/Logger/logger.hh: * apps/Orbix-Examples/Logger/logger.idl: * apps/Orbix-Examples/Logger/loggerS.cpp: * apps/Orbix-Examples/Logger/logger_i.cpp: * apps/Orbix-Examples/Logger/logger_i.h: * apps/Orbix-Examples/Logger/server.cpp: * examples/CORBA/Makefile: * examples/CORBA/Test.idl: * examples/CORBA/Test_i.cpp: * examples/CORBA/Test_i.h: * examples/CORBA/client.cpp: * examples/CORBA/server.cpp: * include/makeinclude/platform_hpux_orbix.GNU: * include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU: * include/makeinclude/platform_sunos5_centerline_orbix.GNU: * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Removed examples and classes to support orbix with ACE. * ACE-INSTALL.html: * FAQ: * README: * TODO: * acconfig.h: * ace/README: * ace/config-win32-common.h: * apps/README: * ace/config-tandem.h: * docs/ACE-configuration.txt: * include/makeinclude/platform_aix4_cset++.GNU: * include/makeinclude/platform_dgux4_epc.GNU: * include/makeinclude/platform_m88k.GNU: * include/makeinclude/platform_sunos4_g++.GNU: * include/makeinclude/platform_sunos5_g++.GNU: * include/makeinclude/platform_sunos5_kcc.GNU: * include/makeinclude/platform_sunos5_sunc++.GNU: * include/makeinclude/platform_unixware_g++.GNU: * include/makeinclude/platform_unixware_udk.GNU: * include/makeinclude/rules.local.GNU: * include/makeinclude/wrapper_macros.GNU: * m4/ace.m4: * performance-tests/README: * performance-tests/TTCP/C/README: Files that referenced Orbix support or documented how to use it. * examples/Reactor/Multicast/Log_Wrapper.h: * examples/Reactor/Multicast/Log_Wrapper.cpp: Fixed documentation, it was referencing Orbix but actually it uses UDP multicast, looks like a cut&paste error to me. Wed Dec 5 12:15:36 2001 Carlos O'Ryan * ace/SString.cpp: Add missing template instantiations, only a problem when inlining was disabled. * tests/Hash_Map_Manager_Test.cpp: Rename global variable 'alloc' to 'ace_test_allocator', the former conflicts with STL symbols under Linux. * tests/Map_Test.cpp: Rename the value_type and expanded_value global typedefs to have an ace_ prefix. Though only used in this test they conflict with some STL symbols by the same name. * tests/DLList_Test.cpp: Remove unused global variable 'alloc' looks like a cut&paste carry-over. Wed Dec 05 10:08:56 2001 Carlos O'Ryan * rpc++/*: Removed, this directory was not distributed with ACE and having it around just made the administration harder. Wed Dec 5 12:10:42 2001 Chad Elliott * bin/nightlybuilds/builds.lst: Temporarily disable the OCI nightly builds. Wed Dec 5 09:55:28 2001 Steve Huston * tests/INET_Addr_Test.cpp: Made the ipv4_addresses array const char *. Wed Dec 5 15:41:08 2001 Johnny Willemsen * ace/OS.h: Corrected doxygen docu of ACE_Countdown_Time::max_wait_time_ Wed Dec 5 14:14:32 2001 Johnny Willemsen * ace/String_Base.h: Corrected the description of the rep() method Wed Dec 5 09:21:12 2001 Johnny Willemsen * ace/SString.cpp: Fixed compile error and warning that appeared in BCB build Tue Dec 4 22:26:28 2001 Nanbor Wang * ace/OS_String.h: * ace/OS_String.i: * ace/OS_String.cpp (strncpy, wcsncat_emulation): One more string function that needs to be available. (See next entry.) Tue Dec 04 22:12:04 2001 Nanbor Wang * ace/OS_String.h: * ace/OS_String.cpp (strsncpy): Made the wchar_t version of this function available on all platforms and changed it to use type ACE_WCHAR_T. Tue Dec 04 20:08:49 2001 Nanbor Wang Merged in the new String_Base template class. * ace/Makefile: Added String_Base into the list of template files. * ace/Basic_Types.h: Added definitions of ACE_WCHAR_T and ACE_WINT_T which are defined to wchat_t and wint_t when ACE_HAS_WCHAR are defined, and ACE_USHORT16 otherwise. They are needed to support various "wide character" string operations that we need to support the templatized ACE_WString, which uses ACE_USHORT16 as the wide char type when wchar_t is not supported. * ace/OS_String.h: * ace/OS_String.inl: * ace/OS_String.cpp: Made several wchar version string functions available no matter ACE_HAS_WCHAR is defined or not. There are more functions (the ones that have *_emulation helpers available) that can be made availabe at all time, but I just fixed the ones that ACE_WString needed for now. We can add more later. * ace/SString.h: Changed the definition of ACE_WSTRING_TYPE to ACE_WCHAR_T. ACE_WCHAR_T is defined in the same fashion as ACE_WSTRING_TYPE was originally defined. * ace/Local_Name_Space.cpp: ACE_NS_WString::char_rep works just fine. We don't need to use ACE_Wide_To_Ascii::convert explicitly since it is not available when ACE_HAS_WCHAR isn't defined. * ace/SString.cpp (operator<<): Avoided the problem of printing wchar strings temporarily. Using ACE_Wide_To_Ascii didn't work on platforms that don't support wchar. Thanks to Keith Hamburg for pointing this out. * ace/String_Base.cpp: Fixed incorrect RCSID name. Thanks to Keith Hamburg for reporting it. * ace/SString.cpp: * ace/SString.h: * ace/SString.i: Changed ACE_WString to be a typedef of ACE_String_Base and added a subclass of it called ACE_NS_WString to maintain backward compatibility. * tests/Naming_Test.cpp: * ace/Local_Name_Space.cpp: * ace/Local_Name_Space.h: * ace/Local_Name_Space_T.cpp: * ace/Local_Name_Space_T.h: * ace/Name_Space.cpp: * ace/Name_Space.h: * ace/Naming_Context.cpp: * ace/Naming_Context.h: * ace/Remote_Name_Space.cpp: * ace/Remote_Name_Space.h: * netsvcs/clients/Naming/Client/Client_Test.cpp: * netsvcs/lib/Name_Handler.cpp: * netsvcs/lib/Name_Handler.h: Changed the use of ACE_WString to ACE_NS_WString. * tests/SString_Test.cpp: Added ACE_TEXT_WIDE to convert char strings to wchar strings for initializing ACE_WString as you can no longer initialize a ACE_WString with a char string. * ace/String_Base.h: * ace/String_Base.i: * ace/String_Base.cpp: Abstracted out ACE_CString and ACE_WString into a templatized String_Base. * ace/CDR_Stream.h: Removed forward declarating ACE_CString and added inclusion of . * ace/SString.h: * ace/SString.i: * ace/SString.cpp: Changed ACE_CString to be a typedef of ACE_String_Base. * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added String_Base.* to appropriate folders. Tue Dec 4 20:57:09 2001 Balachandran Natarajan * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: Added a outgoing queue to the test. This should more or less represent a simple CORBA invocation. Reduced a call to new to by using a shared data block with a lock. Tue Dec 4 19:10:22 2001 Steve Huston * ace/config-sunos5.6.h: Removed the setting of _POSIX_C_SOURCE to 199309L and __EXTENSIONS__. They aren't needed to pick up shm_open as previously believed, and they interfere with availability of some Solaris/C9x functions. Tue Dec 4 14:47:39 2001 Steve Huston * ace/OS.i (gethostbyaddr): Moved this up before getipnodebyaddr() to avoid a call to gethostbyaddr() before it's been seen inlined. Thanks to Bala for reporting this. Tue Dec 4 13:52:44 2001 Steve Huston * tests/Date_Time_Test.cpp: Add a test for the microseconds part. Tue Dec 4 09:27:21 2001 Ossama Othman * ace/OS.h: Reverted the change that added group write permissions to the default file and directory permissions. Doug correctly points out that this introduces a security hole. Users who need less restrictive permissions can redefine these macros in their config.h header. Tue Dec 4 10:07:31 2001 Steve Huston * bin/auto_compile: Add an optional 6th command line arg that is the module to check out from CVS. Defaults to ACE_wrappers so it works the same as it used to without the argument. Tue Dec 4 06:59:09 2001 Balachandran Natarajan * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.cpp: * performance-tests/Server_Concurrency/Leader_Follower/RT_CORBA_Leader_Follower.h: * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.h: * performance-tests/Server_Concurrency/Queue_Based_Workers/RT_CORBA_Workers.cpp: New tests for measuring the throughput of two different server concurrency architectures. The idea is to make it simpler than what is already there and hence the tests. The old tests were a bit confusing and very complicated. The old tests have been retained. The tests are for getting some ball-park figures for RT_CORBA and for TAO in general. Tue Dec 4 10:00:04 2001 Johnny Willemsen * examples/Reactor/Multicast/client.cpp: * examples/Naming/test_non_existent.cpp: * examples/Naming/test_open.cpp: * examples/Naming/test_writers.cpp: Made these files compiling when ACE_USES_WCHAR is set Mon Dec 3 18:19:11 2001 Ossama Othman * bin/fuzz.pl (check_for_id_string): Corrected capitalization of "\$Id\$" in output message. Mon Dec 3 16:30:07 2001 Ossama Othman * ace/OS.h: Added group write permissions to the default file and directory permission macros supplied by ACE. Allows the ACE_Process_Mutex to be used with process from different user in the same group. Thanks to Michael Brinkmann for providing a fix. Mon Dec 3 16:22:56 2001 Ossama Othman * ace/Process_Mutex.h: Corrected Doxygen documentation. Mon Dec 03 14:22:57 2001 Carlos O'Ryan * ace/ace_dll.dsp: * ace/ace_lib.dsp: Add UNIX-only files. Though strictly not required to compile ACE under NT, putting them in the project makes this directory more amenable for samwise. * ace/POSIX_Proactor.cpp: Remove duplicate ACE_BUILD_DLL macro, when needed this is defined via options in the project file. Mon Dec 3 13:59:06 2001 Ossama Othman * ace/README: The ACE_HAS_IP6 macro has been superceded by the ACE_HAS_IPV6 macro. Also added description of the ACE_USES_IPV4_IPV6_MIGRATION macro based on Steve's description below. Mon Dec 3 15:50:42 2001 Steve Huston * IPv6 changes done by John Aughey and myself. To enable IPv6 support for a build, put this in your config.h file: #define ACE_HAS_IPV6 If your build with IPv6 enabled must also run on systems where the IPv6 support in the kernel is not actually turned on (for example, Redhat Linux 7 by default), also add this to your config.h file: #define ACE_USES_IPV4_IPV6_MIGRATION * ace/ACE.cpp (format_hexdump): Add \n to last part of a dump line. * ace/INET_Addr.(h i cpp): If IPv6 is enabled, the inet_addr_ member is now a union of sockaddr_in and sockaddr_in6. Which one is legit is noted in ACE_Addr::type as well as the family member of either of the union members. The host name lookup functions can look up ipv6 as well as ipv4 names, and the caller can force one or the other by using the address_family argument to set(). * ace/OS.(h i): Removed ACE_OS::gethostbyname2; replaced it with the more correctly-named and more flexible ACE_OS::getipnodebyname. Also added ACE_OS::getipnodebyaddr. These are the IPv6-capable functions analogous to gethostbyname and gethostbyaddr. * ace/SOCK.cpp (get_remote_addr, get_local_addr): Set up the ACE_Addr's type properly to account for ipv4/6 possibilities. * ace/SOCK_Acceptor.(h cpp): Allow accepting on ipv4 and ipv6 sockets. * ace/SOCK_CODgram.h: * ace/SOCK_Connector.(cpp h ): * ace/SOCK_Dgram.(cpp h ): Change default protocol family from PF_INET to vary and take advantage of IPv6 if available. * ace/Sock_Connect.(cpp h): Added ACE_Sock_Connect::ipv6_enabled() method - it checks to see if the running kernel can do IPv6 sockets or not. * ace/Sock_Connect.cpp (get_ip_interfaces): Removed a #if 0'd block that had possible specializations for MSVC 4.2. It's been a number of years, and it's obviously not needed. * ace/MEM_Addr.cpp (same_host): Don't try to compare binary addresses directly... get ACE_INET_Addr objects, clear the port numbers, and compare them. * ace/MEM_Connector.cpp (connect): Print error text with message. * ace/Asynch_Acceptor.cpp (open): For the new socket, use the protocol family from the listen address, not PF_INET. * tests/INET_Addr_Test.cpp: New test. * tests/Makefile: Added INET_Addr_Test. Mon Dec 3 10:54:34 2001 Carlos O'Ryan * ace/OS.h: Document CDR default buffer sizes and control macros using Doxygen. Document memory alignment macros in Doxygen form. * ace/Sample_History.h: * ace/Sample_History.inl: Add accessor to get the samples saved on the history. * ace/RMCast/RMCast_Singleton_Factory.h: Document constructor in more detail. Mon Dec 03 07:54:04 2001 Johnny Willemsen * ace/Unbounded_Queue.{h,cpp}: Added const iterator for this container class Sun Dec 02 15:13:30 2001 Carlos O'Ryan * ace/OS.cpp: Fixed Fuzz problems, the ACE_TRACE calls in operator++/-- definitions had less whitespace than the actual operators. Sun Dec 02 15:17:47 2001 Nanbor Wang * ace/Thread_Manager.cpp (join): This method mistakenly used the local copy of Thread_Descriptor to change the thread status when it found a thread to join from the . This prevented the status of the original Thread_Descriptor to be updated correctly and the same descriptor got put into the again, which caused the same thread to be waiting on in some cases. Changed to manipulate the descriptor directly to avoid the problem. Thanks to Eyal Lubetzky for reporting the problem and providing a nice example to showcase it. Sun Dec 2 12:44:58 2001 Carlos O'Ryan * tests/ACE_Init_Test.cpp: * tests/ACE_Init_TestDlg.cpp: Protect this test against compilation on non-Win32 platforms, that makes it easier to compile using samwise. * tests/RMCast/RMCast_Fragment_Test.cpp: * tests/RMCast/RMCast_Membership_Test.cpp: * tests/RMCast/RMCast_Reassembly_Test.cpp: * tests/RMCast/RMCast_Reordering_Test.cpp: * tests/RMCast/RMCast_Retransmission_Test.cpp: * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp: Change #include "test_config.h" to #include "../test_config.h", it is easier to generate makefiles and projects files with samwise if we do that. Sun Dec 02 12:15:25 2001 Carlos O'Ryan * ace/OS.cpp: Fixed typos in ACE_Time_Value::operator++ implementations. Also moved the implementation outside the #ifdef ACE_WIN32 section. Sun Dec 2 12:17:09 2001 Balachandran Natarajan * ace/Reactor.i: Fixed a warning in TRU 64. Thanks to which reminded me of the fix in one of my workspaces. This shows up only in V6.3-013 (cxx) of the compiler. Sat Dec 1 19:39:22 2001 Steve Huston * ace/Date_Time.i (update): Use ACE_OS::gettimeofday for the time source. This gets both the seconds-since-epoch value from which the date and time are calculated and the microseconds value. Thanks to Jim Connelly for reporting this. * THANKS: Added Jim Connelly to the Hall of Fame. * ace/Log_Msg_NT_Event_Log.{cpp h} (open): * ace/Log_Msg_UNIX_Syslog.{cpp h} (open): If the caller passes a prog_name (logger_key) argument, use it for the Source field in the event log entries (or ident in the syslog entries). If not, use the program name (previous behavior). Added comments to define this behavior. * ace/Log_Msg.cpp (open): Don't refuse to open a backend if the arg is 0 and the SYSLOG bit is enabled. The SYSLOG backends, both UNIX and NT Event Log, work perfectly fine with a 0 logger_key. Thanks to Steve Witten for reporting this. Sat Dec 1 18:03:51 2001 Douglas C. Schmidt * ace/config-macosx.h: * include/makeinclude/platform_macosx.GNU: Added support so that ACE will build and run on Mac OS X 10.1. Thanks to John Michael Zorko for contributing this. Fri Nov 30 19:08:19 2001 Douglas C. Schmidt * ace/ARGV.cpp (dump): Fixed a bug with dump() so that it works properly even if argv_ changes. Thanks to Kyle Brost for this fix. Thu Nov 29 16:31:57 2001 Douglas C. Schmidt * ace/OS.{h,i,cpp}: Changed the return value of ACE_Time_Value::operator+= and operator -= to be ACE_Time_Value & rather than void. Also, added overloaded operator++ and operator--. This is all to make this stuff work better with ACE_Atomic_Op. Thanks to Kelly F. Hickel for suggesting this. * ace/Asynch_Acceptor.cpp (parse_address): Changed the "message_block.size () - 2 * this->address_size ()" argument to "bytes_to_read_" to work properly on Win32. Thanks to Kelly F. Hickel for reporting this. Wed Nov 28 17:44:26 2001 Douglas C. Schmidt * ace/OS_Dirent.cpp (readdir_emulation): Fixed a memory leak in the dirent emulation. Thanks to Olivier Brunet for reporting this. * ace/SPIPE_Acceptor.h (ACE_SPIPE_Acceptor): Clarified the return value of open(). Thanks to Garth Watney for motivating this. * ace/OS.h: Added a workaround to the Borland bug for ACE_OS::stat(). Thanks to Christopher Kohlhoff and Chris Able for reporting/fixing this. Sat Dec 01 09:26:27 2001 Balachandran * ACE version 5.2.1 released. Wed Nov 28 09:28:09 2001 Johnny Willemsen * ace/examples/IPC_SAP/SOCK_SAP/* * ace/examples/IPC_SAP/SPIPE_SAP/* * ace/examples/Misc/* * ace/examples/Naming/* * ace/examples/RMCast/Send_File/* * ace/examples/Reactor/DGram/* * ace/examples/Reactor/Ntalker/* * ace/examples/Registry/* * ace/examples/Threads/* * ace/examples/Service_Configurator/IPC_tests/client/* Made these examples compiling when ACE_USES_WCHAR is set Mon Nov 26 16:07:57 2001 Balachandran Natarajan * bin/make_release: The distribution will be available in bzip2 compressed format too. Made modifications to the release scripts to put out the beta in bzip2 compressed format. Sat Nov 24 10:23:00 2001 Douglas C. Schmidt * ace/Unbounded_Set.h (class ACE_Unbounded_Set): Moved the insert_tail() method from the private part of the class to the public part since it's needed by the examples/Misc/test_set.cpp file. * examples/Misc/test_set.cpp (main): Somehow the contents of this file got lost. Thanks to Johnny Willemsen for reporting this! Fri Nov 23 08:40:33 2001 Douglas C. Schmidt * tests/Refcounted_Auto_Ptr_Test.cpp: Added some ACE_DEBUGs to print out the reference count. * ace/Refcounted_Auto_Ptr.h: Added a count() accessor method to return the reference count. Thanks to Andrea Bernicchia for contributing this. Thu Nov 22 05:24:51 2001 Craig Rodrigues * examples/QOS/Diffserv: Added a simple example to illustrate how to set Diffserv Codepoints on an ACE_SOCK_CODgram. * examples/QOS/Makefile: Updated. Wed Nov 21 11:35:50 2001 Michael Kircher * ace/Bound_Ptr.h * ace/Bound_Ptr.i * ace/Future.cpp * ace/Future.h * ace/Refcounted_Auto_Ptr.h * ace/Refcounted_Auto_Ptr.i Made the memory allocation failure behavior consistent to the behavior prior to the change on Sun Oct 28 13:15:00 2001. Thanks to Christopher Kohlhoff who prepared this change. The problem was that with the above mentioned change failed allocations would return 0 in either case, if exceptions were enabled by the platform or not. This was incosistent to the behavior before, as new threw bad_alloc on allocation failure when exceptions were supported by the platform. To fix this we faced the following forces: - Not to introduce yet another macro - Minimize impact of changes, localize the problem - Keep the new calls wrapped by a ACE_NEW macro to allow users to eventually redefine the macro (using e.g. new (nothrow) As the ACE_NEW macros are quite restrictive in their supported semantics, e.g. you can only return on error, we decided to introduce a new method (as inline) internal_create which does the allocation. internal_create is called by create which does the differentiation between the exception-supported and exception-not-supported case. Wed Nov 21 09:07:37 2001 Douglas C. Schmidt * ace/OS.h: Updated the ACE_GUARD_ACTION macro and added a new ACE_GUARD_REACTION macro. Then, reimplemented the ACE_GUARD and ACE_GUARD_RETURN macros in terms of these new macros. Thanks to Don Hinton for contributing these. * ace/Log_Msg_Callback.h: Improved the comments to explain why ACE_Log_Msg_Callback isn't inherited. Thanks to Alexey Chalimov for motivating this. Tue Nov 20 15:36:52 2001 Douglas C. Schmidt * ACE-INSTALL.html: Pointed out that on Solaris with g++ you may need to use GNU as instead of /usr/ccs/bin/as, if you want -gstabs+ and -pipe support. Thanks to C Chan for reporting this. Mon Nov 19 07:24:05 2001 Douglas C. Schmidt * examples/Synch/proc_sema.cpp: Added the ACE_TEXT macro so that ACE_Get_Opt works correctly. Thanks to Johnny Willemsen for contributing this. * tests/Aio_Platform_Test.cpp (main): Fixed the code so that it compiles when ACE_USES_WCHAR. Thanks to Johnny Willemsen for reporting this. * docs/ACE-categories.html: Updated the Doxygen URLs to use the new format. Thanks to Peter J. Mason for reporting the problem. Fri Nov 16 10:39:52 2001 Douglas C. Schmidt * docs: Moved minimumTAO.html from $TAO_ROOT/docs/ to $ACE_ROOT/docs. * ace/OS.h: Added two new macros ACE_GUARD_ACTION and ACE_GUARD_ACTION_RETURN. Thanks to Boris Kaminer for suggesting these. * ace/NT_Service.cpp (state): Fixed a bug where calling ACE_NT_Service::state(x,x) while the service is stopped was causing the internal status variables of ACE_NT_Service to become corrupt. If the control_mask is set to SERVICE_ACCEPT_STOP in the constructor, the call to state will cause this mask to be reset (if the service is not running). This ultimately results in an NT Service that can be started but not stopped. Thanks to Kyle Brost for providing this fix. Wed Nov 21 10:00:20 2001 Chad Elliott * ace/config-irix6.x-common.h: Changed the size of a long double from 16 to 8 for the GNU compiler. * include/makeinclude/platform_irix6.x_sgic++.GNU: Add buildbits macro to allow 32 and 64 bit builds on IRIX. Wed Nov 21 12:49:08 2001 Johnny Willemsen * performance-tests/Misc/basic_perf.cpp * performance-tests/Misc/childbirth_time.cpp * performance-tests/Misc/context_switch_time.cpp * performance-tests/Misc/preempt.cpp * performance-tests/Misc/test_mutex.cpp * performance-tests/Misc/test_singleton.cpp Made these tests compiling when ACE_USES_WCHAR is set Wed Nov 21 08:49:12 2001 Johnny Willemsen * ace/OS.h Added ACE_LIB_TEXT around ACE_DEFAULT_RENDEZVOUS to make a unicode constant when ACE_USES_WCHAR is defined * tests/FlReactor_Test.cpp * tests/TkReactor_Test.cpp * tests/XtReactor_Test.cpp Changed type of argv argument of main from char to ACE_TCHAR so that these tests compile without problems when ACE_USES_WCHAR is defined * examples/IPC_SAP/ATM_SAP/CPP-client.cpp * examples/IPC_SAP/ATM_SAP/CPP-server.cpp * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp Made these example compiling when ACE_USES_WCHAR is set Tue Nov 20 12:02:16 2001 Ossama Othman * configure.in: Removed this file from the distribution. Some folks insist on attempting to build ACE/TAO with the configure script and reporting problems despite the fact we've explicitly disabled it. Tue Nov 20 13:30:36 2001 Balachandran Natarajan * ace/Strategies.h: * ace/Strategies.cpp: * ace/Strategies.i: Re-added files back into the main trunk. Got accidentally removed from the main when I was doing some work on a branch. Mon Nov 19 20:35:44 2001 Jaiganesh Balasubramanian * ace/SOCK_Dgram_Mcast.cpp: This class allow application to subscribe a single socket to many multicast groups. However, the unsubscribe operation failed to work with more than one group. For some strange reason it was storing the first multicast group subscription in a class member and using that member in all the paths for the unsubscribe methods. We have changed the unsubscribe(const ACE_INET_Addr&,...) method to work as adversited, i.e. unsubscribe the *given* multicast address, not the stored one, as an added benefit the method is now re-entrant. The unsubscribe(void) method works as before. The code has been re-factored to minimize duplication. Mon Nov 19 11:03:07 2001 Ossama Othman * ACE-INSTALL.html: Added missing build instructions for the ACE_SSL library, and updated the list of "make" flags recognized by ACE's Makefile scheme. Mon Nov 19 00:53:54 2001 Krishnakumar B * ace/Svc_Conf_y.cpp: * ace/Svc_Conf_l.cpp: * ace/Svc_Conf_Tokens.h: Fixed some bugs introduced by my previous checkin because of patch confusion. Replaced all the standard C system calls with ACE_OS calls. Made it more wchar friendly. * ace/Makefile: Removed the dependency on /pkg/gnu/bin/flex. It was broken. We now use $(LEX) and $(YACC) defined in $ACE_ROOT/include/makeinclude/wrapper_macros.GNU. * include/makeinclude/wrapper_macros.GNU: Changed the definition of YACC to bison (by default). If people want to change this, it can be overridden by a variable in the Makefile. But things are most likely to break if you use yacc. * etc/Svc_Conf_l.cpp.diff: * etc/Svc_Conf_y.cpp.diff: Regenerated the diffs. *Sigh* This patching business is ugly. Fri Nov 16 07:22:19 2001 Balachandran Natarajan * bin/make_release: Updated the script to copy the beta to a different location. Have tested this by creating a dummy repository and a dummy export directory. Things worked fine. Hopefully the beta should go through without any hassle. The script is tied to its usage on ace.cs. Needs to be changed. Will do that after this beta goes out. Having too many changes at the same time may not be good. Thu Nov 15 20:44:40 2001 Craig Rodrigues * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it. * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT. * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp. Thu Nov 15 08:26:57 2001 Douglas C. Schmidt * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT to be consistent... Thanks to Johnny Willemsen for reporting the inconsistencies and for Darrell Brunsch for clarifying what the right behavior should be. Wed Nov 14 07:43:20 2001 Douglas C. Schmidt * docs/ACE-guidelines.html: Updated the guidelines to explain the use of ACE_TCHAR for the argv parameter to main(). Thanks to Johnny Willemsen for reporting this. * ace/OS_Dirent.inl (opendir): Replace char * const cast with ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting this. * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid dividing by 0 and also initialized all pointers to NULL. Thanks to Johnny Willemsen for reporting this. Thanks fixes BudID 650. Tue Nov 13 15:25:04 2001 Douglas C. Schmidt * ace/ACE.h (ACE): Clarified what the time_len parameter is used for. Thanks to Tompa for reporting this. Sun Nov 11 09:50:52 2001 Douglas C. Schmidt * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to silence warning about "length" parameter and changed buf from char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting this. * tests/Aio_Platform_Test.cpp: The argv parameter of main() should be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for reporting this. Thu Nov 15 15:43:20 2001 Craig Rodrigues * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with ACE_LIB_TEXT. Fix supplied by Johnny Willemsen. Thu Nov 15 12:43:31 2001 Nanbor Wang * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT from "the authority." Wed Nov 14 21:36:42 2001 Ossama Othman * docs/usage-bugzilla.html: Corrected link to the DOC Center's bugzilla site. Wed Nov 14 23:11:59 2001 Craig Rodrigues * ace/Naming_Context.cpp (info): Fixed Unicode build problems by consistently using ACE_TCHAR instead of char, and by using Unicode aware string functions in ACE_OS_String instead of ACE_OS. * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0. * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror with ACE_LIB_TEXT(). Wed Nov 14 06:38:41 2001 Balachandran Natarajan * docs/ACE-bug-process.html (HREF): Changed references from ace.cs to deuce.doc. Thanks to Johnny Willemsen for reporting this. Tue Nov 13 15:04:15 2001 Carlos O'Ryan * html/Stats/index.shtml: * html/Stats/detailed_performance.shtml: Improved documentation about the test location, ORB, and network configuration used. Thanks to David Yongqiang Wang for pointing out the problems. Tue Nov 13 11:46:11 2001 Chris Cleeland * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print statements that were accessing the element of the unbounded set as an int rather than an UglyThing. Thanks to Ossama for pointing this out. Mon Nov 12 11:41:35 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.cpp (send, recv): In the va_arg versions of these methods, do not use send/recv_n() to as the underlying send/recv() method. It forces unnecessary blocking. Corrected return value semantics in versions of these methods that use loop to send/receive multiple buffers. If data was sent or received than do not return -1 on error. Instead return the amount of bytes sent/received. This is necessary to allow the caller to keep track of sent or received data. [Bug 882] Sun Nov 11 23:50:00 2001 Craig Rodrigues * tests/Date_Time_Test.cpp: Remove argv variable from main() to eliminate unused variable compiler warning. * tests/Arg_Shifter_Test.cpp: Same. Sun Nov 11 10:00:56 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream): Removed unused class members. * ace/SSL/SSL_SOCK_Stream.cpp (sendv): If an error occurs but data was sent on a previous loop iteration then return the amount of bytes sent, not the error. This extends previous check for EWOULDBLOCK and ETIME. All errors are now caught. The caller must always know if any data was successfully sent. [Bug 882] Do not continue on to the next loop iteration if the amount of data sent was less than the amount data given. This avoids a subtle problem where "holes" in the data stream would occur if partial sends of a given buffer in the iovec array occured. [Bug 882] Sun Nov 11 07:58:07 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.cpp (sendv): Fixed unused variable warnings. Sat Nov 10 23:25:50 2001 Ossama Othman * bin/auto_run_tests.lst: Added new SSLIOP "Big_Request" test to the list of regression tests to automatically run during the nightly builds. Sat Nov 10 22:13:54 2001 Krishnakumar B * ace/Svc_Conf_l.cpp: * ace/Svc_Conf_y.cpp: * ace/Svc_Conf_Tokens.h: Regenerated the files after fixing the warnings that showed up under Sun CC Forte Update. They were caused because Sun CC's preprocessor doesn't like the #line statements generated by flex and bison. Since these files are not modified on a daily basis, people debugging the lexer can turn it on by removing the flags '-l' and '-L' to bison and flex respectively in the Makefile. For now, this removes a lot of noise. * ace/Makefile: Added flags '-l' to bison and '-L' to flex. * etc/Svc_Conf_l.cpp.diff: Regenerated the diff to match the current version. * etc/Svc_Conf_y.cpp.diff: This file held the stuff which have been obsoleted by the move to use bison. So removed this file to avoid causing confusion in the future. Thanks to Ossama for pointing this out. Let's see some green :-) Sat Nov 10 19:27:36 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): If data is still buffered within OpenSSL's internal buffer, then force the Reactor to invoke the event handler (with the appropriate mask) before waiting for more events (e.g. blocking on select()) by returning a value greater than one. All pending data must be processed before waiting for more events to come in on the SSL handle. * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify): These methods are no longer needed. Removed them. (sendv): Added missing timeout parameter. * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close): Reverted code that notify()ed the Reactor if data was still pending in OpenSSL's internal buffers. The idea was to force the reactor to call the appropriate event handler before polling for events (e.g. blocking on select()). However, notifications are not dispatched until after events are polled which meant that there is no point in notify()ing the Reactor. * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): These methods are no longer needed. Removed them. (sendv): Fixed/improved the writev() semantics and emulation in this method. Previously, if an iov_base buffer was successfully sent, that success was not reported to the caller if subsequent sends in the emulation loop failed. The caller would end up thinking that no part of the message was sent. The improved semantics are now the following if the underlying send() call returns with an EWOULDBLOCK or ETIME error condition: - If no data was sent, then return -1. - If some data was sent on a previous loop iteration then return the number of bytes successfully sent. In both cases, errno is unchanged. [Bug 882] Incidentally, this fixes a problem in TAO's SSLIOP pluggable protocol when sending very large requests. Thanks to Andrew Finnell for providing an example that exhibited the problem. Lastly, the missing timeout support has been added. The timeout is decremented on each loop iteration. Sat Nov 10 17:16:59 2001 Nanbor Wang * ace/OS.cpp (fopen): Removed redundant parentheses. Sat Nov 10 09:29:48 2001 Douglas C. Schmidt * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the CreatePipe() call. Thanks to Bo Balders for reporting this. * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks to Martin Krumpolec for noticing this. Sat Nov 10 08:48:24 2001 Douglas C. Schmidt * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter so that it can handle both const char ** and char ** arguments. Fri Nov 9 07:42:41 2001 Douglas C. Schmidt * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter a "const" ACE_CHAR **. * tests/Arg_Shifter_Test.cpp (main): Added "const" to the args local variable to remove a warning from SunC++. Fri Nov 9 11:23:01 2001 Chris Cleeland * tests/Collection_Test.cpp: Fixed up things that caused problems on several platforms. Added the ARRAY tests back in. Thu Nov 8 14:52:39 2001 Steve Huston * ace/Log_Msg.h: Added a new 'M' option to print out the name of the log priority. Thanks to Vladimir Chovanec for reporting this. Thu Nov 8 10:41:44 2001 Douglas C. Schmidt * ace/OS_String.h: Enhanced the documentation so that it explains the differences between ACE_OS::strsncpy() and ACE_OS::strcpy() more precisely. Thanks to Alain Decamps for contributing this. * ace/Naming_Context.{h,cpp}: The info() method should have ACE_TCHAR ** rather than char **. Thanks to Johnny Willemsen for reporting this. * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen() method. Thanks to Johnny Willemsen for reporting this. Wed Nov 7 05:17:03 2001 Douglas C. Schmidt * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY to DEFAULT_PRIORITY. * ace/OS.i: In BCB the _wtempnam() has the following signature: wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix) This means that the arguments must be made non-const by a cast. The fix is to add some defines so that with BCB and no wchar the _tempnam is used (with the casts) and with BCB and wchar then the _wtempnam is used with the casts. Thanks to Johnny Willemsen for this fix. Thu Nov 8 14:52:39 2001 Steve Huston * ace/Arg_Shifter.h: Doxygen-ized some comments. * ace/Date_Time.i (update): Add 1900 to years value to convert from localtime's years-since-1900 value to now. Add 1 to the month to convert localtime's 0-11 range to 1-12. Thanks to Syed Wasim Ali for reporting this. * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time. * tests/tests.dsw: * tests/tests.icp: * tests/Makefile[.bor]: Added Date_Time_Test. * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test. Thu Nov 8 11:53:00 2001 Steve Huston * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter. * tests/tests.dsw: * tests/tests.icp: * tests/Makefile[.bor]: Added Arg_Shifter_Test. Thu Nov 8 13:05:12 2001 Chad Elliott * include/makeinclude/platform_irix6.x_sgic++.GNU: Added an option to suppress warnings about #pragma pack. Thu Nov 8 10:43:22 2001 Chad Elliott * ace/OS.cpp: Correct a build problem for GHS on Win32. Wed Nov 07 13:50:39 2001 Nanbor Wang * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to avoid VC7's internal compiler error. Thanks to Darrell for submitting the change. Wed Nov 7 10:59:00 2001 Craig Rodrigues * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT to CPPFLAGS if threads=1 Wed Nov 7 08:09:20 2001 Balachandran Natarajan * bin/nightlybuilds/builds.lst: Changed the name CC5 build as CC51. It uses version 5.1 of the compiler anyway. Tue Nov 6 14:39:28 2001 Douglas C. Schmidt * ace/SString.i (find), * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one" bugs with ACE_OS::strscpy(). Thanks to Alain Decamps for contributing this. Tue Nov 6 13:25:40 2001 Chris Cleeland * tests/Collection_Test.cpp: Committed an old change that uses an actual class as the element in the Unbounded_Set rather than an int. I wrote this to get a better understanding of how the iterator and accessors on the iterator worked. * tests/SString_Test.cpp (main): Added a test for the rep() method that insures that the char array returned is equivalent to the string in the ACE_CString from which it's obtained. Mon Nov 5 10:12:01 2001 Douglas C. Schmidt * ace/OS.cpp, * ace/Local_Name_Space_T.cpp, * ace/FILE_Addr.cpp, * ace/Acceptor.cpp, * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy(). Thanks to Alain Decamps for these fixes. Sun Nov 4 12:11:31 2001 Douglas C. Schmidt * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods to first check and see if the Reactor's been deactivated and to bailout immediately in this case. Thanks to Don Hinton for suggesting this. * ace/Reactor.i: Moved the reactor_event_loop_done() method from the *.cpp file into the *.i file and made inlineable. * ace/Select_Reactor_T.cpp: Be more careful about error handling in the dispatch_notification_handlers() method. If a failure occurs, when dispatch_notifications() is called, return -1, rather than erroneously "incrementing" the count of the number of handlers dispatched. Thanks to Don Hinton for reporting this. Sat Nov 3 11:15:43 2001 Douglas C. Schmidt * The following fixes are from Joachim Achtzehnter : In ace/config-pharlap.h we had to explicitly #undef ACE_HAS_WCHAR after the #include "ace/config-win32.h" directive. Without this change the resulting DLL depended on several wide character versions of Win32 system functions, such as _CreateMutexW. At least some of these dependencies were caused by ace/OS.i. In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a few more places in addition to the ones Bruce Trask had posted to avoid reference to the NT Eventlog functionality. At the top of ace/Log_Msg_NT_Event_Log.h and ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP) to completely bypass the contents of these two files. * ace/DEV_Addr.i (addr_to_string): * ace/Local_Tokens.i (name): * ace/Module.i (name): * ace/OS.i (asctime_r): * ace/SPIPE_Addr.i (addr_to_string): * ace/UNIX_Addr.i (addr_to_string): * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy(). Thanks to Alain Decamps for these fixes. Fri Nov 2 14:38:49 2001 Douglas C. Schmidt * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put() hook method. Thanks to Tommy Svensson for motivating this. Mon Nov 5 14:23:12 2001 Chad Elliott * ace/ACE.cpp: Remove a build warning for gcc 2.95.3 on SunOS 5.6. Mon Nov 5 14:21:30 2001 Chad Elliott * bin/nightlybuilds/builds.lst: Added the HP-UX nightly build back to the list. Mon Nov 5 13:31:15 2001 Chad Elliott * ace/ACE.cpp: Fix a build warning for 64-bit HP-UX. * ace/Active_Map_Manager_T.i: Cast the free list id to ACE_UINT32 to match up with the slot_index () type. On 64-bit HP-UX, the free list id type (size_t) is a 64 bit number and must be cast down to 32 bits. Otherwise, the slot_index is cast up to 64 bits and does not give the correct results. * include/makeinclude/platform_hpux_aCC.GNU: Add a -L./ to allow the 64-bit HP-UX builds to link properly. Mon Nov 5 11:17:20 2001 Carlos O'Ryan * bin/auto_compile: Add support for the new status.txt file in the scoreboard. Mon Nov 5 13:02:50 2001 Chad Elliott * ace/config-hpux-11.00.h: Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the declaration of dlopen(char*,unsigned int). * ace/OS.cpp: Changed the default thread scope to system (similar to Linux). Process thread scope is not supported in HP-UX. Sun Nov 04 11:18:31 2001 Nanbor Wang * ace/OS.cpp (fopen): Changed to forward call to fopen instead of _fopen on non-borland compilers when not using UNICODE. This change allows the code to compile on Win98. Thanks to Jstwo for submitting the fix. Thu Nov 1 16:21:51 2001 Chris Cleeland * bin/auto_run_tests.pl: Added snippet of code that puts the current directory ('.') in the PATH environment variable since auto_run_tests.pl depends on the current directory being there. Thu Nov 1 15:49:04 Balachandran Natarajan * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the CXX_VERSION definition to the global scope. * include/makeinclude/platform_tru64_cxx.GNU: Added -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only for v5.1, 1885. The pthreads.h in 1885 is messed up. The conditional include of c_asm.h is busted for DECCXX and v1885. Hence the change. We need to do this to protect ACE and TAO applications on this platform and compiler combinations. Thanks to Don Hinton for reporting the problem. Thu Nov 1 14:25:52 2001 Jeff Parsons * ace/config-win32-borland.h: Added fix sent in by Chris Kohlhoff to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a filename to which the preprocessor output is to be directed. There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp that carries out the redirection. Thu Nov 1 10:27:21 2001 Ossama Othman * ace/Select_Reactor_Base.h (open): * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open): Added a note about the "size" of the Select_Reactor on Unix platforms. On Unix platforms, the size parameter should be as large as the maximum number of file descriptors allowed for a given process. This is necessary since a file descriptor is used to directly index the array of event handlers maintained by the Reactor's handler repository. Direct indexing is used for efficiency reasons. Thu Nov 1 06:38:30 2001 Douglas C. Schmidt * ace/ACE.cpp: Fixed some minor formatting problems so that format_hexdump() works properly. Thanks to Kyle Brost for reporting this. * ace/config-win32.h: Include the config-cygwin32.h file when __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for reporting this. * ace/Synch.i (remove): Added some casts to make certain compilers happy? Thanks to Guillaume Renaud for reporting this. * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to Doron Rajwan for reporting this. Wed Oct 31 11:25:40 2001 Douglas C. Schmidt * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to Doron Rajwan for reporting this. Tue Oct 30 08:30:16 2001 Douglas C. Schmidt * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment in the operator=. Thanks to Johnny Willemsen for reporting this. Mon Oct 29 05:23:56 2001 Douglas C. Schmidt * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the .h file to the .cpp file to avoid multiple definitions. Thanks to Boris Kaminer for reporting this. Sun Oct 28 10:05:32 2001 Douglas C. Schmidt * ace/config-macosx.h: * include/makeincludes/platform_macosx.GNU Added new fixes to get this to work on MacOS X. Thanks to John Michael Zorko and Fikri Pribadi for contributing this. Wed Oct 24 23:59:13 2001 Douglas C. Schmidt * ace/Configuration_Import_Export.cpp: Fixed a bug where a check of a pointer was made rather than the character pointed to by the pointer. Thanks to Juan Jose Comellas for reporting this. Wed Oct 31 16:45:07 2001 Ossama Othman * ace/OS.h (llseek): Made ACE_OS::llseek() a static method, as it was originally intended to be. Thanks to Doron Rajwan for pointing out the problem. Tue Oct 30 22:53:57 2001 Ossama Othman * ace/Svc_Conf_l.cpp: Fixed incorrect #line preprocessor directives. * etc/Svc_Conf_l.cpp.diff: Regenerated this diff so that it includes recent updates. Mon Oct 29 20:12:40 2001 Ossama Othman * tests/run_test.lst: Added the Proactor test to the list of one-button tests to run. Mon Oct 29 20:04:40 2001 Ossama Othman * tests/Proactor_Test.cpp: More patches from Alexander Libman. The Proactor_Test appears to finally work on Linux. Mon Oct 29 17:49:21 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: Added some error checks at places where token where acquired. Mon Oct 29 16:59:58 2001 Balachandran Natarajan * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called acquire with a sleep hook. It was wrong. It should just unblock the thread by sending notify. A bad cut and paste error :(. Thanks to Graeme Clark for reporting this. This closes [BUGID 1077]. Sun Oct 28 20:36:56 2001 Ossama Othman * ace/Map_T.i (clone): Fixed syntax errors. * ace/Svc_Handler.cpp (new): Reverted Michael's change. It incorrectly altered the semantics of the new operator, particularly when compiling with native exception support enabled. Fixes a warning. Sun Oct 28 16:44:20 2001 Ossama Othman * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T): Corrected syntax error that was introduced in the changes described below by removing extraneous trailing bracket. Sun Oct 28 13:15:00 2001 Michael Kircher * ace/ACE.i: * ace/Activation_Queue.cpp: * ace/Bound_Ptr.i: * ace/Configuration.cpp: * ace/Configuration_Import_Export.cpp: * ace/Containers_T.cpp: * ace/Future.cpp: * ace/Handle_Gobbler.h: * ace/Local_Tokens.i: * ace/MEM_SAP.i: * ace/Map_T.i: * ace/Message_Block.cpp: * ace/OS_Errno.cpp: * ace/Object_Manager.cpp: * ace/Obstack_T.cpp: * ace/Refcounted_Auto_Ptr.i: * ace/Remote_Tokens.i: * ace/Strategies_T.cpp: * ace/Stream.cpp: * ace/Svc_Handler.cpp: * ace/Synch_T.cpp: * ace/TLI.cpp: * ace/Timer_Hash_T.cpp: * ace/Timer_Queue_T.cpp: * ace/Unbounded_Queue.cpp: * ace/Unbounded_Set.cpp: Changed almost all direct usages of operator new in ACE to use ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in Stream.cpp the semantics changed slightly if operator new would have been overloaded, see the "@@ Michael" comment. When new got used with placement most of the usages got replaced with ACE_NEW_MALLOC_RETURN. In some cases as in Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp special cases exist, where the macros would have incurred different semantics and performance penalties. Fri Oct 26 07:37:43 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Quoter example will not run in minimum_corba builds. Wed Oct 24 08:04:36 2001 Balachandran Natarajan * ace/Reactor.h: Improved the documentation of the end_reactor_event_loop (). Tue Oct 23 10:04:25 2001 Ossama Othman * tests/Proactor_Test.cpp: Replaced uses of a static global lock with the ACE_Static_Object_Lock singleton. Fixed incorrect uses of the "%l" format specifier. "%d" is the expected format specifier. (Acceptor): Initialize the "sessions_" member in the base member initializer list. Corrects a problem where the session number initially contained a "garbage" value. Mon Oct 22 17:55:00 2001 Craig Rodrigues * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris build. Mon Oct 22 15:54:29 2001 Steve Huston * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU. Mon Oct 22 15:50:35 2001 Balachandran Natarajan * THANKS: Added Chris Hughes name to the Hall of Fame Sun Oct 21 16:44:41 2001 Ossama Othman * tests/Proactor_Test.cpp (disable_signal): Fixed warnings regarding a method that "hid" virtual function with the same name, in addition to unused argument warnings. Sun Oct 21 15:22:57 2001 Ossama Othman * tests/Proactor_Test.cpp: Fixed warning about deprecated conversion of "const char *" to "char *" exhibited by GCC 3.0.x builds. Sun Oct 21 12:50:39 2001 Douglas C. Schmidt * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success without setting the I/O handle. Thanks to Rick Ohnemus for reporting this. * ace/config-freebsd-pthread.h: Changed #if (__FreeBSD_version > 430000) to #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4. Thanks to Gu Song for reporting this. Fri Oct 19 06:44:17 2001 Douglas C. Schmidt * examples/Reactor/WFMO_Reactor/test_window_messages.cpp: Don't use a global Event_Handler object since this violates the design rules for the ACE_Reactor. Sun Oct 21 13:39:27 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Added the Quoter example in $TAO_ROOT/examples to the list of tests in the daily builds. Thu Oct 18 20:56:53 2001 Ossama Othman * tests/Proactor_Test.cpp: Added no-op main() function for platforms that do not support asynchronous IO. Thu Oct 18 22:46:09 2001 Balachandran Natarajan * ace/TP_Reactor.h: * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds. Thu Oct 18 20:42:55 2001 Ossama Othman * tests/Proactor_Test.cpp: Fixed Unicode build errors. Thu Oct 18 19:52:44 2001 Craig Rodrigues * ace/SString.h: clarify example in comments to ACE_Tokenize so that constant strings are not passed in its constructor. * examples/OS/Process/process.cpp: do not pass constant strings to ACE_Tokenize constructor. Thanks to Werner Buchert and Don Hinton . Wed Oct 17 23:56:45 2001 Ossama Othman * tests/Proactor_Test.cpp: * tests/Proactor_Test.dsp: Proactor test contributed by Alexander Libman . * tests/tests.dsw: Added Proactor_Test project to the tests workspace. Wed Oct 17 18:59:53 2001 Christopher Kohlhoff * include/makeinclude/install.bor: Borland makefile fix to ensure that, when doing the install target, core executables are built correctly if they don't already exist. Wed Oct 17 09:15:10 2001 Douglas C. Schmidt * ace/config-linux-common.h: Clarified that this file should not be included directly! Thanks to Suresh N for reporting this. Wed Oct 17 16:00:19 2001 Balachandran Natarajan * THANKS: Added Graeme Clark to the Hall of Fame. Wed Oct 17 15:49:20 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: * ace/TP_Reactor.h: Added remove_handler () calls to the TP_Reactor. Before this, the call on the reactor used to be handled by the Select_Reactor's implementation. The implementation has a problem. It tries to call handle_close () (an upcall) as one of the calls after holding the token. This was asking for trouble. This could lead to deadlocks as mentioned in [BUG ID 1055]. The method in the TP_Reactor now calls remove_handler () on the Select_Reactor (its base class) with a DONT_CALL flag. Then it calls handle_close () on the Event_Handler if the user did not pass in the DONT_CALL mask. This two step process would get around the problem that was mentioned before. Thanks to Graeme Clark for reporting the problem and testing this fix. This should close [BUG ID 1055]. Wed Oct 17 10:40:17 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case, then continue the connection establishment loop. Do not return right away. Fixes non-blocking connection establishment on AIX. Thanks to Vladimir Chovanec for providing this fix. * ace/SSL/SSL_SOCK_Stream.h (notify): Made this method protected. It isn't intended to be used internally by the ACE_SSL_SOCK_Stream class. Wed Oct 17 12:15:15 2001 Chris Cleeland * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add vxworks to the ever-growing list of OSs which return unpredictable values in errno when there's a bad file descriptor in a select mask. [Bug 1058]. Thanks to Dave Arndt , Tad Hetke , and Erik Johannes for tracking down and providing this fix. Tue Oct 16 23:08:27 2001 Ossama Othman * ace/Svc_Conf.h (ACE_Svc_Conf_Param): Added a new ACE_Obstack attribute that is passed down to the parser and scanner. This obviates the need for the global pointer to the ACE_Obstack that was formally used, which in turn avoids a race condition. (ace_obstack): No longer a need to maintain a global pointer to the ACE_Obstack instance used during parsing/scanning. * ace/Svc_Conf.y: * ace/Svc_Conf.l: Retrieve the Obstack from the parameter passed down to yyparse() and yylex() instead of using the (now non-existent) global instance. This is part of a race condition fix. * ace/Svc_Conf_y.cpp: * ace/Svc_Conf_l.cpp: Updated to pull in the changes made to the source files from which these files were generated. * ace/Service_Config.cpp (process_directives_i): The global ACE_Obstack pointer used during each Service Configurator parse has been removed. An ACE_Obstack instance is now passed down to the parser and scanner in a reentrant/thread-safe manner via the new ACE_Svc_Conf_Param parameter. As such, there is no longer any need to maintain a global pointer to the ACE_Obstack instance in use, nor is it necessary to store/restore the previous value when performing nested or parallel Service Configurator directive processing. This fixes a race condition that was causing some memory corruption when parsing Service Configurator directives in parallel. Note that the ACE_Obstack is now instantiated on the stack rather than the heap, thus improving Service Configurator directive processing performance. Mon Oct 15 23:16:55 2001 Ossama Othman * ace/Service_Config.h (process_directives_i): Updated the signature of this method to accept a parameter that will eventually passed to the parser and the scanner. * ace/Service_Config.cpp: No need to include "ace/Svc_Conf_Lexer_Guard.h" and "ace/Object_Manager.h". (process_directives_i): Updated the signature of this method to accept a parameter that will eventually passed to the parser and the scanner. Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call. This is reentrant/thread-safe. Check the error count found in the "ACE_Svc_Conf_Param" object. It's count is incremented in a thread-safe/reentrant manner. (process_directive, process_directives): The ACE_Svc_Conf_Lexer_Guard and its accompanying synchronization has been moved to the generated scanner code. This makes locking finer grained. Specifically, instead of holding a lock for the duration of the scope within which service configurator directive parsing and scanning is performed (e.g. for the duration of the yyparse() call), the lock is only held for the duration of the scope where service configurator directive scanning occurs (i.e. the entire yylex() call is synchronized). This is part of the core fix that corrects a deadlock that occurred when activating an ACE_Task, in conjunction with the singleton instance of the ACE_Thread_Manager, during Service Object initialization. [Bug 1036] * ace/Service_Config.i: Cosmetic update. * ace/Svc_Conf.h: Added declaration and method definitions for the ACE_Svc_Conf_Param class. Instances of this class contain the state used when parsing/scanning a given service configurator file or service configurator directive. (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): There is no longer any hard-coded limit on the maximum depth nested service configurator directives may be processed. Only process resource limits limit the maximum nesting depth. (ace_yyparse, ace_yylex): Updated the parser and lexer entry points to accept an additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param object. (ace_yy_push_buffer, ace_yy_pop_buffer): Pass a pointer to the buffer that will be "switched" in our out when processing nested service configurator directives those that are processed in parallel. * ace/Svc_Conf.l: Removed array that implemented the service configurator directive stack. The "stack" is now implemented using the function call stack itself. Hence there is no hard-coded limit to the stack size. Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, COLON, STAR}. Just return their corresponding symbolic integer constants (e.g. ACE_COLON --> ':'). Increment error and line count in the ACE_Svc_Conf_Param object passed to the yylex() function from yyparse(). This improves reentrance/thread-safety when tracking error counts. (yy_push_buffer, yy_pop_buffer): Pass a pointer to the buffer that will be "switched" in our out when processing nested service configurator directives those that are processed in parallel. * ace/Svc_Conf.y: Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE, COLON, STAR}. Just use their corresponding symbolic integer constants (e.g. ACE_COLON --> ':'). Increment error and line count in the ACE_Svc_Conf_Param object passed to the yylex() function from yyparse(). This improves reentrance/thread-safety when tracking error counts. * ace/Svc_Conf_Lexer_Guard.h: Store a pointer the lexer buffer currently being scanned. * ace/Svc_Conf_Lexer_Guard.cpp: Updated constructor to accept a pointer to an ACE_Svc_Conf_Param object. If the buffer in that object is zero, it will be initialized. * ace/Svc_Conf_l.cpp: * ace/Svc_Conf_y.cpp: * ace/Svc_Conf_Tokens.h: Regenerated these files in order to pull in the updates made to their corresponding source files (i.e. Svc_Conf.{l,y}). Mon Oct 15 11:26:39 2001 Steve Huston * examples/C++NPv2: New directory for examples in "C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks" Moved these changes to the new directory, and reverted the C++NPv1 files to their ACE 5.2 state: Sun Oct 14 17:05:14 2001 Douglas C. Schmidt Tue Oct 9 07:46:20 2001 Douglas C. Schmidt Sun Oct 14 17:05:14 2001 Douglas C. Schmidt * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from a reference to a pointer so that it can be initialized correctly. Thanks to Kitty for reporting this. Fri Oct 12 14:54:58 2001 Craig Rodrigues * ace/OS.i: Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS, which was breaking various builds under Windows. Thanks to Jeff McNiel for pointing it out. Fri Oct 12 12:15:22 2001 Carlos O'Ryan * bin/nightlybuilds/builds.lst: The QNX machine is no longer running that OS, plus attempts to bring it back to life failed. The build is removed until further notice. Thu Oct 11 17:52:32 2001 Priyanka Gontla * ace/SOCK_Dgram_Mcast.cpp: Somehow the file didnt get committed yesterday. So, committing the following change now. Wed Oct 10 16:56:18 2001 Priyanka Gontla Thu Oct 11 10:57:58 2001 Carlos O'Ryan * ace/RB_Tree.h: * ace/RB_Tree.i: * ace/RB_Tree.cpp: Reverted to the 5.2 release state. The proposed changes were breaking some builds, and they were not bug fixes in any case. Wed Oct 10 16:56:18 2001 Priyanka Gontla * ace/SOCK_Dgram_Mcast.cpp: Reverted the following change as it ended up with some problems for multicast services. Fri Oct 5 14:40:03 2001 Balachandran Natarajan Wed Oct 10 06:16:52 2001 Douglas C. Schmidt * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that will control how the message blocks and data blocks are allocated. Thanks to Gil Rapaport for contributing this. * examples/Reactor/WFMO_Reactor/test_apc.cpp (main): * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't use a global Event_Handler since this violates the design rules for the ACE_Reactor. Thanks to Heping He and Hartmut Quast for reporting this and to Irfan for suggesting where the problem arose. Tue Oct 9 07:46:20 2001 Douglas C. Schmidt * examples/C++NPv1/Logging_Handler.h: Added a new constructor to class Logging_Handler that just takes an ACE_SOCK_Stream. We need to use this in C++NPv2. * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov for reporting this. * ace/TTY_IO.cpp (control): Inserted some useful ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand for reporting this. Mon Oct 8 20:19:44 2001 Nanbor Wang * examples/DLL/test_dll.cpp: There's no need to specify ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the correct DLL name. The ACE_ERROR_RETURN macro store and reset the errno so there's no need to use dll.error() with it. Changed to use "%p" to display the error. Thanks to Heping He for reporting the problem. Mon Oct 8 11:15:21 2001 Angelo Corsaro * ace/RB_Tree.h (class ACE_RB_Tree_Node): * ace/RB_Tree.i: Changed access privilege on the operator new/delete to be public, and added assertion in those method implementation to make sure that wrong use of these method are promptly notified. This changes should fix the problem that some compiling were still having with RB_Trees. Sat Oct 06 23:06:41 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close): Removed the do/while(SSL_pending()) loop. Its introduction into the code was a bit misguided. There is no need to flush the SSL buffer before returning to the Reactor's event loop since the code now sends a notification to the Reactor to force the Reactor to invoke the event handler before waiting in the event loop. This fixes some SSL protocol errors that manifested during multithreaded SSL communication. [Bug 943] * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): It is no longer necessary to call SSL_accept()/connect() to flush the SSL buffer before running the Reactor's event loop since the Reactor is notified that it should call the appropriate event handler before blocking on select() for WaitForMultipleObjects(), for example. * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler): New methods to set the Reactor and event handler associated with the ACE_SSL_SOCK_Stream. If each of these is set, then the Reactor will be notified if data is still pending in the SSL buffer. (~ACE_SSL_SOCK_Stream): Uninlined the destructor. There is no need for it to be inlined, and doing so only caused unnecessary code bloat. * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler): Added these new method declarations, in addition to the corresponding attributes. Updated documentation. * ace/SSL/SSL_SOCK_Stream.i (notify): Method that pushes the event handler on to the Reactor's notification pipe when necessary. Invoked by recv_i() and send_i(). * ace/SSL/SSL_SOCK_Acceptor.h: * ace/SSL/SSL_SOCK_Connector.h: * ace/SSL/SSL_Accept_Handler.h: * ace/SSL/SSL_Connect_Handler.h: Updated documentation. Sat Oct 6 16:04:29 2001 Angelo Corsaro * ace/RB_Tree.h: * ace/RB_Tree.i: The operator new and delete were declared to be No-Op but were not implemented as such. This was breaking some builds. Now the operator are declared as private and they also have a no-op implementation. This should solve some linking error that were occurring. Sat Oct 6 11:17:22 2001 Balachandran Natarajan * THANKS: Added Adrian Mercieca to the hallf of fame. Fri Oct 05 18:30:59 2001 Irfan Pyarali * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member initialization. Fri Oct 5 18:16:53 2001 Balachandran Natarajan * ace/SString.h: * ace/SString.cpp: Changes the usage of ostream to ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us know. Thu Oct 4 07:10:01 2001 Douglas C. Schmidt * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters to manage memory. Thanks to Airat A. Sadreev for reporting contributing this. Wed Oct 3 07:20:06 2001 Douglas C. Schmidt * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a unique name if the user doesn't supply one. Thanks to Tom Wagner for suggesting this. * ace/Synch.h: Clarified that the timed wait capabilities of ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to Bonifides Bautista for reporting this. Fri Oct 5 12:48:48 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (close): Reset the SSL object to allow another connection to be made using the existing ACE_SSL_SOCK_Stream instance. This prevents the previous SSL session state from being associated with the new SSL session/connection. Thanks to Vladimir Chovanec for pointing out this problem and suggesting a course of action. Fri Oct 5 14:40:03 2001 Balachandran Natarajan * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux) from the code. Looks like this had to be removed to get it working for RTI under Linux. The other ChangeLog entries that this change is concerned with are "Sat Feb 17 17:23:46 2001 Darrell Brunsch " and "Fri Jan 26 11:18:15 2001 Douglas C. Schmidt". Looks like the patch provided by Keith Nicewarner is being reverted. I remember a communication from Keith which seemed to hint that this may not be required. Thanks to Russ Noseworthy for suggesting this. Fri Oct 5 14:04:39 2001 Balachandran Natarajan * THANKS: Added Hagen Ulrich to the Hall of Fame. Fri Oct 5 13:55:02 2001 Balachandran Natarajan * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really sure where it is used. Further, added a tab to the place where rules for CHORUS are set. This should fix BUGID 1049. Thanks to Hagen Ulrich and Dr.David Levine for reporting and verifying the fix. Fri Oct 05 05:56:50 2001 Balachandran * ACE version 5.2 released. Thu Oct 4 17:38:21 2001 Steve Huston * ace/Synch.h: Added some comments to explain the rationale for the different return values from the blocking and timed versions of ACE_Null_Semaphore::acquire(). Thanks to Doug Schmidt for explaining this. Thu Oct 4 17:27:39 2001 Steve Huston * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that the payload message block is properly aligned for any CDR extraction. Many thanks to Bala for noticing this problem and sending code for the fix. Thu Oct 4 17:08:39 2001 Steve Huston * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: In prepare(), call ACE_Process_Options::command_line() rather than ACE_Process_Options::process_name() to set the program path for the child process. Thu Oct 4 13:18:37 2001 Steve Huston * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block, rather than hijacking a CDR block, to read the payload into. Thu Oct 4 10:14:34 2001 Balachandran Natarajan * THANKS: Added Donald Acton to the Hall of Fame. Thu Oct 4 06:39:20 2001 Balachandran Natarajan * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does not support mkstemp (). * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6 and above support it. Thanks to Don Hinton for reporting this problem and Chad Elliott for testing this out on a Sun OS 5.5 box. Wed Oct 3 16:37:41 2001 Balachandran Natarajan * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3 15:05:43 2001 Jeff Parsons ". This change is alone not enough to fix the problem that Brad reported. The sample program for the text needs to be fixed to get it working right. Wed Oct 3 15:05:43 2001 Jeff Parsons * ace/CDR_Stream.cpp (read_1); Reverted changed made in Fri Aug 17 16:56:16 2001 Jeff Parsons to read_1(). A similar change made in several other methods is ok, but in this case bytes can be copied into the input CDR stream without changing wr_ptr, so the check will fail unnecessarily. Thanks to Brad Hoskins for pointing this out. Wed Oct 2 12:18:37 2001 Steve Huston * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error. * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment. Tue Oct 2 21:52:31 2001 Steve Huston * examples/C++NPv1/Logging_Client.cpp: Reverted this: Mon Oct 1 18:27:41 2001 Steve Huston Tue Oct 2 19:52:57 2001 Balachandran Natarajan * Makefile: Removed some of the files that no longer exist in the repository. The inclusion of these files in the Makefile added noise during the beta cutting process. Tue Oct 02 15:34:49 2001 Carlos O'Ryan * etc/tao_cosevent.doxygen: * etc/tao_cosnotification.doxygen: Fixed typos in the tag file names. Tue Oct 2 15:52:27 2001 Balachandran Natarajan * THANKS: Added Sunny Leung to the Hall of Fame. Tue Oct 2 15:33:36 2001 Balachandran Natarajan * THANKS: Removed one instance of Peter Phillips from the Hall of Fame. Tue Oct 2 15:00:37 2001 Balachandran Natarajan * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor versions from the incoming CDR stream. Thanks to Sunny Leung for reporting this. This closes bugzilla #1043. Tue Oct 2 09:45:39 2001 Steve Huston * tests/libDLL_Test.icc: * tests/libService_Config_DLL.icc: Add link(exportAll) to the link options to export the entrypoints needed for the tests. Mon Oct 1 20:04:14 2001 Priyanka Gontla * THANKS: Added Tushar Nair to the THANKS file. Mon Oct 1 18:06:48 2001 Priyanka Gontla * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter): Removed the un-needed #if 0's. Left them before as a safety measure (in case something doesnt work) and forgot to remove them later. * ace/Log_Msg.cpp (instance): Fixed the seg faults that are raised when ace is compiled with ACE_NTRACE=0 on SunOS. Added a check before locking and releasing a lock. Thanks to Tushar Nair for reporting the problem and for providing a fix. Mon Oct 1 18:27:41 2001 Steve Huston * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional) arg from getline(). Using a char literal without further qualification causes confusion in Unicode builds. Mon Oct 1 14:44:13 2001 Ossama Othman * ace/SSL/SSL_Context.cpp (ssl_library_init): Initialize the locking callbacks in the crypto library before initializing the OpenSSL library. OpenSSL may require the locking callbacks to be initialized before its own initialization. * ace/SSL/SSL_Context.cpp (ssl_library_fini): Perform crypto library resource cleanup before reclaiming the locks used by the locking callbacks. Crypto library resource cleanup makes use of the locking callbacks. Mon Oct 1 15:19:11 2001 Douglas C. Schmidt * examples/C++NPv1/README: Added a section that illustrates the mapping of chapters onto files in the directory. Mon Oct 1 12:58:57 2001 Balachandran Natarajan * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem that started showing up this time is like this. One of the threads was dispatching an upcall. In the intermediate time the Reactor woke up another thread to close the handler, remember that this is possible with the TP_Reactor if the application resumes the handles (the way TAO does that). Now when the thread that that dispatched the upcall returned it tries to invoke a method on the already closed handle. To prevent that from happening we make an extra check to see whether the handle associated with the handler is still available in the internal map of the Reactor. As this check is done in the return path of the thread this should have less performance impact. This is another reason why we should have #1031 in place ASAP. Mon Oct 1 12:23:57 2001 Balachandran Natarajan * bin/nightlybuilds/builds.lst (WEB): Changed the name of the Sun's EGCS build. We have not been using EGCS but 2.95.x for a long time now. Mon Oct 1 10:46:15 2001 Balachandran Natarajan * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the word "ERROR" when files are left behind. This was creating noise in the daily builds. We have captured the problem in the bugzilla with id #1014. After 1.2 goes out, if someone is looking at this problem again we need to add this back so that our daily builds can pick them up. Sun Sep 30 17:25:33 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): Reset errno to prevent previous values (e.g. EWOULDBLOCK) from being associated with a fatal SSL error (e.g. an alert). Sun Sep 30 16:52:22 2001 Ossama Othman * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown): Return the "retval" variable instead of always returning -1. The actual return value may not always be -1. Thanks to Alain Totouom for providing this fix. * THANKS: Added Alain to the list of contributors. Sun Sep 30 09:13:04 2001 Ossama Othman * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): Made reactor mask constant to emphasize the fact that it is indeed a constant. Sat Sep 29 08:07:07 2001 Douglas C. Schmidt * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath for reporting this. * ACE-INSTALL.html: Yet more improvements courtesy of Chris Kohloff. Fri Sep 28 23:38:07 2001 Ossama Othman * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): Cleaned up the code. Do not attempt to verify the X.509 certificate. Only the application knows how best to do that. * ace/SSL/SSL_Context.cpp (ssl_library_init): Fixed some Unicode problems. Wrap strings within an ACE_TEXT macro. * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): * ace/SSL/SSL_SOCK_Stream.i: Corrected some comments. * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n): Added a "bytes transferred" pointer parameter. This allows the amount of bytes transferred to returned via this parameter, thus matching the semantics of their ACE_SOCK_Stream counterparts. * ace/SSL/SSL_SOCK_Stream.cpp (send): Do not block attempt a timed send() if data is available in OpenSSL's internal buffer. This prevents a condition where needlessly blocking on select() would occur. A similar fix for recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama Othman for details. (send_n, recv_n): If the "bytes transferred" pointer parameter is non-zero then return the amounts of bytes transferred through it. This makes these methods better match the semantics of their ACE_SOCK_Stream counterparts. Fri Sep 28 19:24:51 2001 Steve Huston * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent section to the aC++ section. (at least) gcc 3.0 distributed from HP can't handle compiling wide char stuff... it refers to wctype.h, only available in aC++. Fri Sep 28 12:46:25 2001 Ossama Othman * ace/SSL/SSL_Context.cpp (report_error): Don't bother displaying an error message if the error code is zero (i.e. no error). Fri Sep 28 12:31:39 2001 Ossama Othman * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): Transfer ownership of the Reactor to the previous owner for the SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec for pointing out this problem. Remove the SSL event handler from the reactor for the SSL_ERROR_ZERO_RETURN case. Previously, this method returned without removing it, resulting in a seg fault. * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): Ported the updates made to the ssl_accept() counterpart to this method. * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): * ace/SSL/SSL_SOCK_Stream.i (send_i): * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect): In the event a SSL_ERROR_SYSCALL error condition occurs, call ACE_OS::set_errno_to_last_error() to make sure errno is updated appropriately since OpenSSL does not do that. Fixes some "misbehaving" Reactor interactions. Thanks to Andrew Finnell for tracking down the problem and suggesting these fixes. Fri Sep 28 09:37:28 2001 Ossama Othman * ace/SSL/SSL_Context.h (report_error): * ace/SSL/SSL_Context.cpp (report_error): New SSL error reporting functions that use the ACE_Log_Msg facilities to dump error information. * ace/SSL/SSL_Context.cpp (set_mode): * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i): * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept): * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect): Use the new report_error() static method to display error information instead of OpenSSL's ERR_print_error_fp(). * ace/SSL/SSL_SOCK_Connector.cpp: Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions. Fixes compile-time problems on Tru64. Thanks to Martin Krumpolec for providing this fix. [Bug 1034] (ACE_SSL_SOCK_Connector): Wrap format specifier string in ACE_ERROR call with ACE_TEXT. Fixes mismatched Unicode/non-unicode strings. Fri Sep 28 06:17:27 2001 Douglas C. Schmidt * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for "already_connected_" to be "int". Thanks to Johnny Willemsen for reporting this. * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5. Thanks to Chris Kohloff for contributing this and to Jan Kalin for motivating this. * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method. Thanks to Airat A. Sadreev for reporting this. * ace/TTY_IO.h: Add a new field for Win32. Thanks to Airat A. Sadreev for reporting this. Thu Sep 27 06:12:21 2001 Douglas C. Schmidt * ace/config-win32.h: Added a special-case for Borland C++ Builder, which must include vcl.h before windows.h. Thanks to Chris Kohloff for reporting this. This fixes Bug ID 899 for the time being. * ace/Module.cpp (ACE_Module): The line this->name (""); was be replaced with this->name (ACE_TEXT("")); Thanks to Airat A. Sadreev for reporting this. This fixes bug id 1041. Thu Sep 27 13:09:19 2001 Bala * ACE version 5.1.21 released. Tue Sep 25 16:12:14 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (recv_i): Use ACE_OS::set_errno_to_last_error() set errno instead of doing so manually to get around broken compilers that reset the last error when assigning to errno. Thanks to Chris Kohloff for pointing out the problem and suggesting this fix. Tue Sep 25 13:00:37 2001 Nanbor Wang * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack exportable. I mistakenly used the underlying ACE_EXPORT_SINGLETON_DECLARATION macro directly. ACE_SINGLETON_DECLARATION is the right macro to use here. Thanks to Martin Krumpolec for reporting the bug. Tue Sep 25 09:12:28 2001 Andrew Finnell * ace/SSL/SSL_SOCK_Stream.i (recv_i): On MS Windows, OpenSSL does not store the last error in errno so explicitly do so. This corrects problems where a server is unaware that a client has forcefully disconnected. Tue Sep 25 00:01:59 2001 Irfan Pyarali * ace/Service_Repository.cpp (instance): There are three stages of the Object Manager: (a) starting up; (b) running; (c) shutdown. ACE_Service_Repository::instance() was not creating a new instance in (a) and (c). It was changed to allow creation (a). Mon Sep 24 01:55:29 2001 Ossama Othman * bin/auto_run_tests.lst: Added TAO's PICurrent test to the list of automated regression tests. Sun Sep 23 19:28:06 2001 Nanbor Wang * ace/Reactor.h (ACE_Reactor): Fixed comments for and . Both methods work on an instance of reactor, not the global singleton reactor. Thanks to Doug for noticing this. Sun Sep 23 10:02:59 2001 Balachandran Natarajan * ace/High_Res_Timer.h: Removed a question mark "?", in a line which read "or sometimes 3.579 Mhz??". This seems to remove the warning in VXWORKS builds. I have no clue about the problem that VXWORKS compiler sees. It took only more than an hour to figure this out. :(. Sat Sep 22 08:59:24 2001 Douglas C. Schmidt * ace/Service_Manager.cpp (handle_input): Added some logic to strip off newlines and carriage returns for Windows platforms. Thanks to Kyle Brost for contributing this. Sat Sep 22 12:28:21 2001 Ossama Othman * ace/SSL/ACE_SSL_LIB.dsp: Corrected code generation settings to use the multi-threaded DLL version of the run-time library. Corrects "legacy" build problems. Sat Sep 22 08:59:24 2001 Douglas C. Schmidt * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how to configure the timers properly on various platforms. Thanks to Alain Decamps for reporting this. * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS so that things will compile properly on MinGW32. Thanks to Jeff McNiel for reporting this. Fri Sep 21 15:54:55 2001 Douglas C. Schmidt * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly when used with ACE_TCHAR! Thanks to Olof Lindfors . Tue Sep 18 06:25:22 2001 Douglas C. Schmidt * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time". Thanks to Johnny Willemsen for reporting this. Sun Sep 16 11:53:38 2001 Douglas C. Schmidt * ace/Connector.cpp (handle_output): Fixed the comment to be ACE_WIN32. Thanks to Kobi Cohen-Arazi for reporting this. Fri Sep 21 17:11:52 2001 Balachandran Natarajan * ace/Message_Block.h: Tried rewording some comments in the ACE_Message_Block. Thanks to Tom Wagner for suggesting this. * THANKS: Added Tom Wagner to the Hall of Fame. Fri Sep 21 22:11:53 2001 Ossama Othman * ace/SSL/ACE_SSL_LIB.dsp: Removed hardcoded user-specific include paths, and user-specific preprocessor macro definitions. Thu Sep 20 18:15:49 2001 Steve Huston * tests/Config_Test.cpp: Added some more tests to verify correct string value reset and enumerate values/sections. Thu Sep 20 12:29:09 2001 Ossama Othman * ace/SSL/ACE_SSL_LIB.dsp: * ace/SSL/ACE_SSL_LIB.dsw: New static build MSVC++ project and workspace files for the ACE_SSL library contributed by Jonathan Reis . [Bug 1032] Thu Sep 20 12:16:13 2001 Ossama Othman * ace/SSL/SSL_SOCK.cpp (enable, disable): Removed unreachable "return" statements. [Bug 1033] * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream): * ace/SSL/SSL_SOCK_Stream.cpp: Moved constructor to the ".cpp" file since to prevent inclusion of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems with some platforms needing the Log_Msg include to pull in the ACE_ERROR macros without needlessly increasing inter-header dependencies and inclusions. [Bug 1034] Thu Sep 20 14:44:29 2001 Steve Huston * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_ initialization outside the !Win32 section. Thanks to Johnny Willemsen for this fix. Thu Sep 20 06:28:50 2001 Chad Elliott * ace/config-hpux-11.00.h: Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C. Schmidt ". HP-UX 11.00 does not actually support pread/pwrite. Wed Sep 19 16:56:02 2001 Irfan Pyarali * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on platforms that do not support threads. Wed Sep 19 16:54:04 2001 Jeff Parsons * ace/Containers_T.cpp: In copy constructor for ACE_Double_Linked_List, added line to copy the size of the rhs to the lhs. The new list was ending up with a garbage value for its size. Wed Sep 19 14:15:08 2001 Nanbor Wang * ace/ace_dll.dsp: * ace/ace_lib.dsp: Enabled generation of debug info even for release configurations. Thanks to Jonathan Reis for suggesting this. Wed Sep 19 10:23:06 2001 Carlos O'Ryan * html/index.html: Add couple of missing links to the RT-CORBA components Wed Sep 19 12:00:04 2001 Johnny Willemsen * ACE-INSTALL.html: Added BCB5 to some places as supported/used compiler * ace/Future.h: * ace/Test_and_Set.h: Removed the ACE_EXPORT from the templates ACE_Future_Holder and ACE_Test_and_Set * ace/Service_Config.{h,cpp}: Changed the type of the members be_a_daemon_ and no_static_svcs_ from char to int Tue Sep 18 13:57:36 2001 Carlos O'Ryan * */Makefile: * */Makefile.*: Updated dependencies, some of the paths were absolute leading to ambiguities in parallel builds. Tue Sep 18 12:18:26 2001 Carlos O'Ryan * bin/footprint_stats.sh: Fixed bug in footprint charts generation. Tue Sep 18 10:50:15 2001 Carlos O'Ryan * html/index.html: Add COS Event and COS Notification services to the index. Mon Sep 17 19:00:00 2001 Irfan Pyarali * ace/OS.h: - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined for NT. Added them. - Moved the following definitions of VxWorks around such that these defines are available even when PACE is not used. THR_INHERIT_SCHED THR_EXPLICIT_SCHED THR_SCHED_IO THR_SCOPE_SYSTEM THR_SCOPE_PROCESS * ace/OS.cpp: LinuxThreads do not have support for PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported. Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the thread scheduling scope. * ace/Sample_History.cpp: Added accessors for and . * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed Minimum CORBA dependency on these tests. Mon Sep 17 13:49:07 2001 Carlos O'Ryan * etc/tao_cosevent.doxygen: * etc/tao_cosnotification.doxygen: Add new Doxygen files for the Notification and COS Event Services * bin/generate_doxygen.pl: Add new doxygen files to the automatically generated documentation. Mon Sep 17 11:36:54 2001 Balachandran Natarajan * tests/run_tests.lst: This is the script used by the shell script in that directory. As the name is confusing this is being moved as a new file. * tests/run_tests_remote.lst: Renamed the run_tests.lst as run_tests_shell.lst. This is invoked by run_tests.sh * tests/run_tests.sh: Renamed as a new file. * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this one. This script can be used to run tests remotely on a CHORUS/ClassiX/MVME targets. Further this can also be used to run tests on platforms that dont support perl or do not have perl. Sun Sep 16 11:19:01 2001 Balachandran * ACE version 5.1.20 released. Sat Sep 15 16:58:08 2001 Balachandran Natarajan * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC 4.2. Fri Sep 14 05:28:13 2001 Douglas C. Schmidt * THANKS: We now have over 1,300 contributors to ACE+TAO! * ace/Basic_Types.{h,i}: Added "const" to various operators and methods. Thanks to Alain Decamps for reporting this. Thu Sep 13 11:02:41 2001 Douglas C. Schmidt * ace/Singleton.cpp: If we're not compiling with threading enabled, don't call the get_singleton_lock() code. Thanks to Charles Frasch for contributing this. Tue Sep 11 06:23:08 2001 Douglas C. Schmidt * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks to Johnny Willemsen for reporting this. Fri Sep 14 17:18:37 2001 Steve Huston * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the nanointerval is 0, change it to 1 to prevent divide-by-zero. Fri Sep 14 17:02:39 2001 Steve Huston * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet again!, for this fix. Fri Sep 14 11:39:03 2001 Balachandran Natarajan * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of Fame. Thu Sep 13 22:43:34 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the daily tests. Thu Sep 13 20:38:44 2001 Nanbor Wang * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default argument for the constructor from 0 to ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for pointing this out. Added better documentation to explain the purpose of each argument in ACE_Thread_Manager's constructor. Thanks to Nick Pratt for motivating the change. Thu Sep 13 13:38:41 2001 Steve Huston * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to work around a Borland C++Builder bug. Thanks very much to Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps for solving this problem. Thu Sep 13 13:33:29 2001 Steve Huston * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h". This was probably to get AIX to build clean, but it's been a while. Thu Sep 13 12:04:04 2001 Balachandran Natarajan * THANKS: Added Werner Buchert to the Hall of Fame. Wed Sep 12 15:10:41 2001 Steve Huston * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds), elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account for very fast clocks (> 1GHz). Thank you to Derek Dominish and Alain Decamps for identifying the problem and coming up with a good solution. This fixes Bugzilla #1024 (how appropriate! ;-) * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs): More adjustment to the Win32 scale factor adjusting. Thanks (again!) to Alain Decamps for identifying and supplying a fix for this. This fixes Bugzilla #948 (again). Wed Sep 12 14:33:29 2001 Steve Huston * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests for usec/nsec sanity checks on the calculated ACE_High_Res_Timer values. Thank you very much to Alain Decamps for this test. Tue Sep 11 12:40:01 2001 Balachandran Natarajan * Terror unleashed. The World Trade Center and the Pentagon attacked today. Looks like there could be lots of loss to precious lives. This is too horrible. We convey our condolences to the bereaved families. God save this world. Tue Sep 11 06:41:31 2001 Balachandran Natarajan * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a typo. This should fix most of the errors in the scoreboard. Mon Sep 10 18:59:24 2001 Douglas C. Schmidt * apps/Gateway/Peer/Peer.cpp (nonblk_put): * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put): Reverted Bala's changes below since the original code was correct. Also, added comments to clarify things to prevent confusion in the future. Mon Sep 10 17:31:11 2001 Balachandran Natarajan * ACE-INSTALL.html: Added a new platform to the list. Mon Sep 10 12:54:28 2001 Balachandran Natarajan * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Changed the condition that checks for EWOULDBLOCK after a send. It was erroneously written. Thanks to Nick Pratt for pointing this out. Mon Sep 10 12:36:07 2001 Balachandran Natarajan * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition that checks for EWOULDBLOCK after a send. It was erroneously written. Thanks to Nick Pratt for pointing this out. Mon Sep 10 08:17:08 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Will not run the File_IO test in the Minimum CORBA configuration. Mon Sep 10 08:05:39 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running in static builds. Sun Sep 9 10:20:59 2001 Balachandran Natarajan * */Makefile: Updated dependencies. Sun Sep 9 08:43:02 2001 Balachandran Natarajan * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were crashing which is not good and hence the fix. Sun Sep 9 08:28:52 2001 Balachandran Natarajan * ace/Reactor_Impl.h: * ace/Select_Reactor_Base.h: * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new method. This method, just figures out whether the buffer has any dispatchable info or not. * ace/WFMO_Reactor.h: * ace/WFMO_Reactor.cpp: Added the above method in the WFMO Reactor. * ace/TP_Reactor.cpp: The handle_notify_events () method now checks whether the buffer it has read is dispatchable or not. If it is then it gives up the token to make an upcall. Else, it just sits around to remove messages of the pipe, till it find one with a dispatchable info. The fix was necessary so that wake-up calls that are unanswered are removed of the pipe. Unanswered wakeup calls were filling up the pipe and they were blocking some application from writing further to the pipe. This should be in all probability be the final fix to the Reactor. Sat Sep 8 09:34:52 2001 Balachandran Natarajan * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving compile errors in VXWORKS builds. Fri Sep 7 16:40:37 2001 Priyanka Gontla * ace/OS.h: Added an if-def case for IP_MULTICAST_TTL too. Fri Sep 7 17:09:04 2001 Balachandran Natarajan * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock to null in the constrcutor before allocating memory for it. This was done to remove the ABW errors in purify. This should remove the problem that we see with this test in our daily builds with SunCC 4.2. Fri Sep 7 15:51:48 2001 Balachandran Natarajan * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h. Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp: * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:: * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp: * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp: * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:: * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp: * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp: * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp: * examples/QOS/Simple/Fill_ACE_QoS.cpp: Fixed compile errors. Fri Sep 7 14:17:41 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: Do not clear the notify handle bit when trying to dispatch notify calls. This shoudl fix the long pending problems with TRU 64 builds. Fri Sep 07 12:12:39 2001 Steve Huston * examples/C++NPv1/Iterative_Logging_Server.dsp: * examples/C++NPv1/Logging_Client.dsp: * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp: * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp: * examples/C++NPv1/Reactive_Logging_Server.dsp: * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp: * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp: Use relative paths to include and library files rather than $(ACE_ROOT). Makes it easier to use in place regardless of ACE version. * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline() method call. Thu Sep 6 21:14:05 2001 Balachandran Natarajan * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this suggestion. Thu Sep 06 18:42:39 2001 Steve Huston * examples/C++NPv1: New directory that contains all of the example code for Doug/my book, C++ Network Programming, Vol 1. Thu Sep 6 12:01:15 2001 Priyanka Gontla * ace/OS.h: Added a if-def case for IP_MULTICAST_IF. Seems like it is not defined in some of the OS versions. Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy * ace/OS.h: * ace/OS.i: * ace/QoS/QoS_Session_Impl.cpp: * ace/QoS/QoS_Session.h: Fixed compile errors. Thu Sep 6 10:24:15 2001 Ossama Othman * ace/Acceptor.cpp (accept_svc_handler): * ace/Strategies_T.cpp (accept_svc_handler): Do not close and reopen the peer acceptor on failed attempts to accept a connection. Several problems were fixed by removing this code: - A race condition existed where another thread or process could acquire the port that the peer acceptor was listening on before it was closed. Note that it is not enough to attempt to synchronize this code with a lock since an external process could still acquire the port. - If the port in the peer acceptor (assuming it is an ACE_INET_Addr based one) is the wildcard port (zero), then there is no guarantee that the acceptor will be opened on the same port upon which it is was previously listening. In such a case, IORs generated by TAO (for example) can be rendered invalid since the addressing information embedded in those IORs will no longer contain the actual port to connect to when making invocations. [Bug 962] - The above two problems actually introduced a denial-of-service attack vulnerability (now closed by this fix) since it was relatively easy to force a failed connection attempt, which would then cause the peer acceptor to be reopened on potentially a different port, or to shutdown completely if reopening failed. * ace/SSL/SSL_SOCK_Acceptor.i (close): Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor instance. Corrects problems arising from attempts to use a listening socket that has been shut down. * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): Perform an OpenSSL SSL_accept() in case OpenSSL buffered data that must be handled before entering the Reactor event loop used to complete a non-blocking SSL passive connection. If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down the partially initialized SSL stream/session since the peer has itself shut down. Thu Sep 6 11:00:46 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: The timer events are not included as a part of number of active handles from wait_for_multiple_events (). The check for event_count > 0 before processing timer events was wrong. Removed the check. Thanks to Chad Elliott for pointing this out. Further did some cosmetic changes like adding comments, removing comments that was not valid etc. Thu Sep 6 07:50:56 2001 Balachandran Natarajan * bin/auto_run_tests.lst: The AMI buffering test should not be run Single threaded builds. Thu Sep 6 02:30:14 2001 Christopher Kohlhoff * examples/Export/Makefile.bor: * examples/Export/export_dll.bor: * examples/Export/test.bor: * examples/Export/dll.h: Added makefiles for this example and fixed a template problem with Borland C++. Thanks to Charles Frasch for contributing this. Wed Sep 5 19:48:34 2001 Priyanka Gontla * ace/SOCK_Dgram.cpp (set_nic): Fixed the errors that raised in Win. Wed Sep 5 20:38:10 2001 Balachandran Natarajan * ace/OS.h: * ace/OS.i: * ace/QoS/QoS_Session_Impl.cpp: * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy ". The change broke builds. Further there was no reason why the QoS information should come inside OS.* files. Talk about increasing foot print. Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy * ace/QoS/QoS_Session.h: * ace/QoS/QoS_Session_Impl.h: * ace/QoS/QoS_Session_Impl.cpp: Added rapi_sender and rapi_reserve calls with null tspec and flow spec respectively to facilitate the tearing down of PATH and RESV messages. * ace/OS.h: * ace/OS.i: Changed the sending_flowspec_ and receiving_flowspec_ members of the ACE_QoS class to pointers so they can be initialized to null flow specs. Wed Sep 5 16:50:03 2001 Balachandran Natarajan * THANKS: Added Peter Phillips to the Hall of Fame. * ace/OS_String.cpp: Fixed a warning in TRU64 builds. Wed Sep 5 11:29:59 2001 Priyanka Gontla * ace/SOCK_Dgram.h: * ace/SOCK_Dgram.cpp: Added a new method to set the NIC address in the socket. Wed Sep 05 12:00:42 2001 Steve Huston * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather than separate major/minor; see entry below for further info. Wed Sep 05 11:52:39 2001 Steve Huston * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1, using Visual Age C++ 5. * ace/config-aix-4.1.x.h: * ace/config-aix-4.2.x.h: * ace/config-aix-4.3.x.h: * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS. * include/makeinclude/platform_aix_ibm.GNU: Rather than making separate major/minor OS version variables, use one that incorporates both to make it easier for config.h files to set upwardly-compatible feature flags. Wed Sep 5 06:55:44 2001 Chad Elliott * tests/Log_Msg_Test.cpp: Add ACE_TEXT() around the default program name for the Windows WChar Unicode build. Tue Sep 4 18:48:00 2001 Balachandran Natarajan * ace/Select_Reactor_Base.cpp: Changed the value returned from ACE_Select_Reactor_Notify_Handler::handle_input (). This now returns a 0 if we did not dispatch any handles or the number of handles dispatched. We were returning a -1 if we did not dispatch any handles, after reading the notification from the pipe. This should fix the Reactor_Notify_Test in the Implicit templates build. Tue Sep 4 12:46:50 2001 Balachandran Natarajan * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001 Balachandran Natarajan ". Thanks to Irfan for pointing that this change, changes the semantics of the methods. Tue Sep 4 09:14:36 2001 Chad Elliott * ace/CDR_Stream.i: * ace/CDR_Stream.cpp: Work around a compiler bug in the latest Green Hills Multi200. Casting a float to an ACE_CDR::ULong* caused internal compiler errors if the code was inlined. * ace/config-vxworks5.x.h: * include/makeinclude/platform_vxworks5.x_ghs.GNU: Updated support for Green Hills Multi2000. Tue Sep 4 07:41:42 2001 Balachandran Natarajan * THANKS: Added Eyal Neuman to the Hall of Fame. Tue Sep 4 07:37:17 2001 Balachandran Natarajan * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form returning the exact number of bytes from the for loop. If the loop had executed once and if we get 0 in the next recv_i () call, then we should be returning the number of bytes read in the previous iteration and not 0. Thanks to Eyal Neuman for this fix. This closes bug 1015. Tue Sep 4 07:08:30 2001 Balachandran Natarajan * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as a dumbo when I made this change yesterday:( Mon Sep 3 20:08:25 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds. Mon Sep 3 09:58:32 2001 Balachandran Natarajan * */Makefile: Updated dependencies Mon Sep 3 09:44:46 2001 Balachandran Natarajan * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit template builds. Mon Sep 3 08:21:36 2001 Balachandran Natarajan * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE. Mon Sep 3 07:54:32 2001 Balachandran Natarajan * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks to Johnny Willemsen for sending in patches for replacing L with ACE_TEXT_WIDE. Sun Sep 2 19:33:07 2001 Balachandran Natarajan * ace/Select_Reactor_Base.cpp: Fixed a small problem with the select reactor's notify () handling mechanism. This was more of a problem with me not checking the while () loop condition properly. This should fix most of the reactor problems seen in the daily builds. Sat Sep 1 14:10:08 2001 Douglas C. Schmidt * ace/System_Time.cpp, * ace/Stream_Modules.cpp, * ace/Service_Types.cpp, * ace/Service_Manager.cpp, * ace/SPIPE_Addr.cpp, * ace/OS.cpp, * ace/Memory_Pool.cpp, * ace/Mem_Map.cpp, * ace/Local_Name_Space_T.cpp, * ace/FILE_Addr.cpp, * ace/FIFO.cpp, * ace/Connector.cpp, * ace/Acceptor.cpp, * ace/Token_Collection.cpp, * ace/Name_Request_Reply.cpp, * ace/Local_Tokens.cpp, * ace/ACE.cpp, * ace/Log_Record.cpp, * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy() method. Thanks to Alain for reporting this. * ace/OS_String.{h,cpp}: Added a "safe" c string copy method: strsncpy(dst,src,maxlen). Changing an occurence off strncpy() to strsncpy() is less errorprone, but could break somebody's code if he/she is using the fact that the strncpy's where nul-padding the destination, but this is extremely unlikely. Using strsncpy() is also almost always (a lot) faster than strncpy(). Thanks to Alain Decamps for this method. Sat Sep 1 09:54:55 2001 Balachandran Natarajan * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that fixes the problem with VXWORKS builds. The old gcc compiler seems to have problems with forward declared types as template parameters. Chris solves the problem by defining a ABC properly and making the offending class inherit from it. This should fix our daily VXWORKS builds. Sat Sep 1 08:07:51 2001 Balachandran Natarajan * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the Notification queue portion of the code. Thanks to our daily builds for helping me with this testing. Fri Aug 31 22:12:26 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: * ace/Select_Reactor_Base.cpp: Fixed fuzz errors. Fri Aug 31 22:07:57 2001 Balachandran Natarajan * ace/WFMO_Reactor.h: * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to the WFMO_Notify_Handler. Fri Aug 31 19:14:52 2001 Balachandran Natarajan * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe (). Also changed the dispatch_notify () to take in a Notification buffer instead of a ACE_HANDLE. * ace/Select_Reactor_Base.cpp: * ace/Select_Reactor_Base.h: Made the following changes - Implemented read_notify_pipe (). Will read just one message from the notify pipe or one message from the notification queue. - Reimplemented dispatch_notify (). This method would just dispatch the upcall using the information in the notification buffer. - The handle_input () now uses the read_notify_pipe () and dispatch_notify () to achieve what it was doing before. - The notify () call now sends one notify message on the pipe for every message in the notification queue. * ace/TP_Reactor.cpp (handle_socket_events): * ace/TP_Reactor.h: * ace/TP_Reactor.i: We had a race condition. The race condition was because two threads were trying to read from the notify_pipe at the same instance. This race condition was fixed by adding a call to read_notify_pipe () with the lock held and then calling dispatch_notify () with the buffer read after releasing the lock. Did the following minor modifications - Changed dispatch_socket_events () as dispatch_socket_event () as we were dispatching only one event. - We dont grab the token in the constructor of the token. We have to make a call specfically to grab_token () to get the token. The above checkins should fix the correctness of the reactor problems that we have been seeing. Fri Aug 31 18:30:28 2001 Krishnakumar B * bin/auto_run_tests.lst: Added Blocking_Sync_None to the list of tests to be run on Tru64. * ACE-INSTALL.html: Added Linux/IA64 to the list of platforms supported. Fri Aug 31 15:27:09 2001 Balachandran Natarajan * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1 instead of true. Fri Aug 31 14:57:42 2001 Steve Huston * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class to work correctly with templates. Fri Aug 31 11:53:05 2001 Krishnakumar B * ace/OS.h: * ace/Timer_Queue_T.h: * ace/Timer_Queue_T.h: * ace/config-hpux-11.00.h: * ace/config-hpux11.h: * ace/config-irix6.x-common.h: * ace/config-linux-common.h: * ace/config-lynxos.h: * ace/config-osf1-4.0.h: * ace/config-pharlap.h: * ace/config-sunos4-g++.h: * ace/config-sunos4-lucid3.2.h: * ace/config-sunos4-sun3.x.h: * ace/config-sunos4-sun4.1.4.h: * ace/config-sunos4-sun4.x-orbix.h: * ace/config-sunos5.4-centerline-2.x.h: * ace/config-sunos5.4-g++.h: * ace/config-sunos5.4-sunc++-4.x-orbix.h: * ace/config-sunos5.4-sunc++-4.x.h: * ace/config-sunos5.5.h: * ace/config-tandem.h: Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in all the above files. Should help in removing some of the errors in TAO tests. Any test in ACE/TAO which breaks because of this change is broken and should be fixed. Fri Aug 31 12:00:00 2001 Steve Huston * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test. * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc, and libService_Config_DLL.icc. Fri Aug 31 11:40:31 2001 Steve Huston * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds. Fri Aug 31 08:13:26 2001 Chad Elliott * bin/perltest2cpp.pl: Added a -t option to set the timeout factor. Thu Aug 30 18:08:32 2001 Krishnakumar B * ace/config-linux-common.h: Added some more missing stuff which might break compilations. The previous change also removed the existing definition for ACE_TIMER_SKEW so add it back till the new version is checked in. Thu Aug 30 17:54:40 2001 Krishnakumar B * ace/config-linux-common.h: This file was checked in inadvertently when checking in fixes for ACE_NEEDS_HUGE_THREAD_STACKSIZE. Thu Aug 30 13:04:38 2001 Steve Huston * tests/run_test.lst: Added Bound_Ptr_Test. Thu Aug 30 11:40:39 2001 Steve Huston * tests/run_test.pl (run_program): Fixed the 'unlink' to get all of a test's log files; prevents seeing previous sub-logs from a test such as MEM_Stream_Test and falsely reporting errors. Thu Aug 30 10:46:51 2001 Steve Huston * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for a high-res timer mechanism, don't set the global_scale_factor_status_ away from 0 until _after_ getting the scale factor, to avoid a second parallel thread from using a bogus value. Thanks very much to Alain Decamps for this fix. Thu Aug 30 09:30:19 2001 Chad Elliott * tests/Log_Msg_Test.cpp: Fix for VxWorks when ace_main() is called with argc == 0. * tests/run_test.lst: Update the list of tests that run on VxWorks. * tests/Makefile: * tests/run_test.pl: Update the script to output VxWorks commands to a file. Thu Aug 30 09:58:38 2001 Steve Huston * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the msec modulus before converting it up to usecs. Thanks to Francois Rioux for reporting this. Thu Aug 30 00:42:41 2001 Christopher Kohlhoff * ace/Service_Config.cpp: Service_Object instances are now inserted into the Service_Repository only after they have been successfully initialised, to provide better support for recursive use of the service configurator. With this change, a service loaded from 'inside' another services's init() will be inserted into the repository first and unloaded last. This ensures that any recursively loaded services on which the original service depends still exist when the original service's fini() function is called. Thu Aug 30 00:27:05 2001 Krishnakumar B * ChangeLog: Removed bogus files from the previous entry. I should not play around with a lot of tasks at once. Wed Aug 29 19:57:29 2001 Krishnakumar B * ace/config-osf1-4.0.h: Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The default value seems to be good enough. * ace/config-vxworks5.x.h: * ace/config-lynxos.h: * ace/config-qnx-neutrino.h: * ace/config-rtems.h: Standardized the values to 64KB on these platforms. Don't know if these platforms need it. But I don't have access to any of these so playing it safe. Wed Aug 29 18:52:12 2001 Christopher Kohlhoff * tests/Bound_Ptr_Test.cpp: Removed a stray asterisk that was causing compilation failures. Wed Aug 29 17:54:52 2001 Steve Huston * tests/libDLL_Test.icc: * tests/libService_Config_DLL.icc: Fixed the "run after" directives to correctly build the lib*.a files. Also, fixed the cleanup directives to properly clean up both .a and shr.o files. Wed Aug 29 15:32:10 2001 Douglas C. Schmidt * ace/config-aix-4.x.h: * ace/config-hpux-11.00.h: * ace/config-osf1-4.0.h: Added better support for pread()/pwrite(). Thanks to Steve Vranyes for these fixes. Wed Aug 29 15:47:33 2001 Steve Huston * tests/run_test.lst: Re-enabled MEM_Stream_Test. Wed Aug 29 12:15:01 2001 Nanbor Wang * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects. * tests/tests.dsw: * tests/Bound_Ptr_Test.dsp: Added a new project for Bound_Ptr_Test. Wed Aug 29 11:01:22 2001 Steve Huston * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the proper number of threads/processes for the MT case, avoiding a hang. Wed Aug 29 07:08:23 2001 Douglas C. Schmidt * tests/run_tests.lst: * tests/Makefile * tests/Makefile.bor * ace/Makefile * ace/Bound_Ptr.{h,i} * tests/Bound_Ptr_Test.cpp * examples/Smart_Pointer: Added a pair of new smart pointer classes, ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to Christopher Kohlhoff for contributing these. Tue Aug 28 17:51:19 2001 Steve Huston * tests/run_test.pl: If a test has log files associated with the main log of the form -.log, e.g. MEM_Stream_Test-331.log the check_log function will scan those for errors/warnings too. Tue Aug 28 16:48:23 2001 Balachandran Natarajan * ace/TP_Reactor.i: We (the current thread) should not release the token unless we own it. This simple mistake just took 3 days to figure out. An 'if' condition was mixing and have added it. Shows how a small problem at lower levels can take days to fix. Tue Aug 28 17:45:22 2001 Steve Huston * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc. Tue Aug 28 13:16:31 2001 Chad Elliott * bin/vxworks_modify.pl: * bin/perltest2cpp.pl: Generated c++ files now pass the fuzz check. Tue Aug 28 11:02:08 2001 Ossama Othman * bin/nightlybuilds/builds.lst: Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're actually compiling with GCC 3.0.1, not GCC 3.0. The latter has bugs that prevent it from compiling ACE/TAO at the "-O3" optimization level. Tue Aug 28 10:19:18 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.i (recv_i): Corrected Borland warning using a more efficient fix (i.e. less function calls). Tue Aug 28 10:36:10 2001 Chad Elliott * bin/vxworks_modify.pl: * bin/perltest2cpp.pl: Added these scripts for use with VxWorks and the newly added TAO TestUtils. These scripts modify c++ and perl to generate "one-button" modules for TAO testing on VxWorks. Tue Aug 28 11:07:26 2001 Steve Huston * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the client end. Mon Aug 27 20:16:38 2001 Balachandran Natarajan * tests/run_test.lst: Removed the MEM_Stream_Test from the daily builds as they were hanging. This was causing the builds to choke. I will keep Steve Huston informed on this so that he can reenable them once he has fixed the test. Mon Aug 27 18:33:59 2001 Krishnakumar B * bin/nightlybuilds/builds.lst (WEB): Removed the stray yoda part of LIST which is causing the wrong results to show up. Mon Aug 27 18:14:38 2001 Krishnakumar B * bin/nightlybuilds/builds.lst (WEB): Added the IA-64 builds back again. We now have a faster machine running a better version of Linux. Mon Aug 27 09:39:33 2001 Balachandran Natarajan * ace/Timer_Queue_T.i (get_dispatch_info): * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS builds. How could I forget that there are a few compilers which cannot grok traits? Mon Aug 27 09:39:12 2001 Johnny Willemsen * examples/Makefile.bor: * examples/NT_Service/Makefile.bor Added BCB makefile for this example Sun Aug 26 22:08:32 2001 Balachandran Natarajan * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64 builds. Sun Aug 26 20:50:22 2001 Balachandran Natarajan * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in Borland builds. The warning was because a temporary variable was created. Sun Aug 26 20:45:24 2001 Balachandran Natarajan * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in Borland. Sun Aug 26 08:13:12 2001 Douglas C. Schmidt * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to Edan for this. Sun Aug 26 09:07:32 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2 Sun Aug 26 08:28:09 2001 Balachandran Natarajan * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable reported by KCC compilers. Sun Aug 26 08:13:12 2001 Douglas C. Schmidt * tests/Logging_Strategy_Test.cpp: Applied the following fixes from Edan: - Included ace/Logging_Strategy.h - Addition of -w switch to enable initial wipeout of logfile - Removal of the redundant ACE_LOG_MSG->open() - Explicitly close the previous log before applying the changes to the ACE_LOG_MSG - Moved remove_files() call higher, just before logfile close * ace/Logging_Strategy.{h,cpp}: Added the following fixes from Edan Ayal: - Logging_Strategy now supports any ACE_Log_Msg, not just the ACE_LOG_MSG singleton. - Added a check for success (ios::goodbit) of new ofstream creation. - Changed default values for max_size and interval. Now the default interval is 10 minutes (instead of 0) and the default log file size is 0 (was 16K). The timer is now activated only if both are non-zero. - Added a mutator to set the ACE_Log_Msg to work with, and a member variable - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1) be consistent with recent changes to Log_Msg.h and (2) to replace problematic use of strncpy(). Thanks to Alain Decamps for these fixes. Sat Aug 25 20:58:22 2001 Nanbor Wang * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the chain of Message_Blocks. The originally used ACE::send_n was causing problem on NT because send_n was restricted for sockets I/O on NT. Thanks to Doug for pointing this out. Sat Aug 25 10:16:21 2001 Douglas C. Schmidt * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler will close file_io, so we don't need to do it explicitly! * ace/Log_Msg.cpp (log): Changed range check from this->msg_ + ACE_Log_Record::MAXLOGMSGLEN to this->msg_ + sizeof this->msg_ to correspond to the change below. * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer used to store log records to account for the NUL-terminator. * tests/Svc_Handler_Test.cpp (main): Changed the buffer size and NUL-terminated the buffer so that things print correctly. Thanks to Nanbor for finding this. Sat Aug 25 09:00:28 2001 Balachandran Natarajan * ace/TP_Reactor.cpp: * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC builds. Sat Aug 25 08:42:57 2001 Balachandran Natarajan * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I am not sure how this fix will be accepted on different compilers. Things are always dicy when you want to delete a void *. Fri Aug 24 23:29:09 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Added File_IO test to our daily builds. Fri Aug 24 23:12:15 2001 Balachandran Natarajan * ace/WFMO_Reactor.h: * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on MSVC. Fri Aug 24 23:07:42 2001 Balachandran Natarajan * ace/Configuration_Import_Export.cpp: Fixed a compile error with g++. Fri Aug 24 21:55:00 2001 Craig Rodrigues * ace/QoS/QoS_Session_Impl.cpp: Check for null parameters in rsvp_callback(). Thanks to Yamuna Krishnamurthy . Fri Aug 24 20:32:39 2001 Steve Huston * tests/MEM_Stream_Test.cpp: Changed this test to use multiple processes on any platform without ACE_LACKS_FORK. It actually could be broader than this if desired. This is motivated by the fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO) the same file more than once in the same process. With this, MEM_Stream_Test goes a lot better on HP-UX, though not perfectly yet. Fri Aug 24 16:54:02 2001 Ossama Othman * ace/SSL/SSL_SOCK_Stream.h (recv_i): Added a timeout parameter. See below for details. * ace/SSL/SSL_SOCK_Stream.i (recv_i): Perform an SSL_read() before attempting to block on select() with a timeout. OpenSSL may buffer more data than requested since it is a record-oriented protocol. Fixes a problem where subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout when needlessly blocking on select() because the expected data has already been buffered by OpenSSL. Thanks to Martin Krumpolec for reporting and diagnosing the problem. [Bug 1006] * ace/SSL/SSL_SOCK_Stream.cpp (recv): Moved the timed recv() code to the lower level recv_i() method since timeout support must now be more tightly integrated with do/while(SSL_pending()) SSL_read() loop. Fri Aug 24 18:33:09 2001 Douglas C. Schmidt * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically allocate the pathname_ so we can delete it! Thanks to Don Hinton for reporting this. * ace/Configuration_Import_Export.cpp: Changed a couple of delete (char *) buf to delete (char *) [] buf. Thanks to Don Hinton for reporting this. Fri Aug 24 16:10:20 2001 Balachandran Natarajan Merged in changes from the reactor_deadlock branch. This set of changes actually fixes a long standing problem with the TP_Reactor. The TP_Reactor was holding the token too long and this created all sorts of problems for TAO. The changes have been merged from the branch and here are the relevant ChangeLog entries. Fri Aug 24 14:59:52 2001 Balachandran Natarajan * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes. Fri Aug 24 14:19:02 2001 Balachandran Natarajan * ace/Timer_Queue_T.i: * ace/Timer_Queue_T.h:Removed the default constructor and destructor for ACE_Timer_Node_Dispatch_Info_T allowing the compiler to do the job. Fri Aug 24 12:05:25 2001 Balachandran Natarajan * ace/Timer_Queue_T.cpp: Removed some vague debug statements. Fri Aug 24 11:34:11 2001 Balachandran Natarajan * ace/Timer_Queue_T.h: * ace/Timer_Queue_T.cpp: * ace/Timer_Queue_T.i: Added a new class ACE_Timer_Node_Dispatch_Info_T that has the dispatch information needed to make the upcall. Added methods, dispatch_info () and dispatch_info_i () in ACE_Timer_Queue_T. These methods return the dispatch information if there is a node in the queue whose timer value <= current time. Changed the expire () method to use this method to get dispatch information. * ace/Timer_Queue.h: Added a template specialisation for ACE_Timer_Node_Dispatch_Info_T. * ace/Timer_Queue.cpp: Added template instantiations for the specialisation. * ace/TP_Reactor.h: * ace/TP_Reactor.cpp: Added a new method handle_timer_events () that would handles timer events. Thu Aug 23 11:50:18 2001 Balachandran Natarajan * ace/Reactor_Impl.h: Added two new methods notify_handle () and dispatch_notify () to the ACE_Reactor_Impl class. * ace/Select_Reactor_Base.h: * ace/Select_Reactor_Base.cpp: Implemented the above two methods in the ACE_Select_Reactor_Notify class. The notify_handle () method returns the handle of the pipe on which it is listening. The dispatch_notify () call does a dispatch of just one notify () call in the notify pipe. The handle_input () call that used to process all the notify calls now calls the dispatch_notify () in a loop. The change essentially allows some extrenal client of this class to just process one notify at a time if needed. * ace/TP_Reactor.h: * ace/TP_Reactor.i: * ace/TP_Reactor.cpp (handle_events): Fixed a bug with handle_events (ACE_Time_Value &). This should be calling the handle_events () of the TP_Reactor and not the select reactor. Added a whole slew of new methods that basically allows us to do this - handle one event at a time - once the thread knows the event that needs handling it should release the token before dispatching the events The new methods that have been added are - handle_signals (), which handle signals that interrupted the select (). The implementation of this method is busted. The implementation has been copied from the existing setup - handle_notify_events (), which handles one notify on the notify_pipe at a time - handle_socket_events (), which handles socket events. Quite a few helper methods have also been added. They are get_notify_handle (), get_socket_event_info (), and dispatch_socket_events (). Removed the methods dispatch_i (), dispatch_i_protected () and notify_handle (). This checkin fixes the problem in 1002. But we still have to add handling timeouts into the TP_Reactor. Tue Aug 21 17:21:07 2001 Balachandran Natarajan * ace/TP_Reactor.i: * ace/TP_Reactor.h: * ace/TP_Reactor.cpp: Made lots of changes which havent been compiled yet. Added a new class ACE_TP_Token_Guard that helps in obtaining and releasing tokens. Moved the grab_token () from the ACE_TP_Reactor class to the TP_Token_Guard class. Added a new method for handling signals. They havent been compiled yet and this checkin is to put files from work to my home box. Tue Aug 21 07:58:42 2001 Balachandran Natarajan * ace/TP_Reactor.i: * ace/TP_Reactor.h: * ace/TP_Reactor.cpp (handle_events): Started refactoring some of the code to help with this bug. This change has not been compiled. This is just being done to transfer files from home to work. Fri Aug 24 14:25:31 2001 Balachandran Natarajan * THANKS: Added Massimo Pichini to the Hall of Fame. Fri Aug 24 13:40:01 2001 Balachandran Natarajan * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the timebeing. Looks like OCI is running different versions of the OS for their internal use. Fri Aug 24 10:17:00 2001 Balachandran Natarajan * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo Pichini . This prevents overflows with long strings that are used in printing hexdumps. Previously we had a buffer of 80 bytes on the stack. Fri Aug 24 10:03:29 2001 Steve Huston * ace/INET_Addr.(h cpp): Applied changes submitted by Alain Decamps to insure that get_host_name (char hostname[], size_t len) const always nul-terminates the hostname string. If the host lookup is successful, but the supplied buffer is too short, the function returns -1, errno == ENOSPC. Thu Aug 23 22:01:11 2001 Balachandran Natarajan * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug 23 05:24:57 2001 Douglas C. Schmidt" as this was giving warnings with MSVC 6.0 Thu Aug 23 11:49:15 2001 Paul Calabrese * bin/msvc_auto_compile.pl: Revert changes from Mon Aug 20 15:48:30 2001. Thanks to Darrell to showing me the error in my ways. Thu Aug 23 09:17:25 2001 Balachandran Natarajan * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to Alain Decamps for pointing this out. Thu Aug 23 08:11:22 2001 Steve Huston * ace/Configuration_Import_Export.cpp (process_previous_line_format): Prepend ACE_OS:: to atoi to work with both narrow and wide chars. Thu Aug 23 08:03:00 2001 Craig Rodrigues * ace/QoS/QoS_Session_Impl.cpp: Improve debugging messages. Return -1 inside rsvp_callback() if flowspec type is unknown. Thu Aug 23 05:24:57 2001 Douglas C. Schmidt * tests/Logging_Strategy_Test.cpp: Added new and improved test that it better documented and fixes some minor bugs. Thanks to Edan Ayal for this. Wed Aug 22 19:04:57 2001 Douglas C. Schmidt * tests/Logging_Strategy_Test.cpp: Enable this test to work on platforms that don't support DLLs. Thanks to Edan Ayal for suggestion this and providing the code. * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N' since that controls the max number of log files. Thanks to Edan Ayal for reporting this. Thu Aug 23 07:30:12 2001 Johnny Willemsen * ace/SString.{h,i}: Added clear() method to the ACE_CString and ACE_WString so that it is possible to clear a string in just one call * tests/SString_Test.cpp: Extended to test clear() method Wed Aug 22 15:30:05 2001 Carlos O'Ryan * bin/auto_compile: Use the print_config.pl script to print out the configuration. Wed Aug 22 17:33:29 2001 Steve Huston Applied fixes submitted by Jerry D. Odenwelder, to fix Bugzilla #953: * ace/Configuration.cpp (import_config, export_config): Changed from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp to preserve type information in the import/export files, and retain the ability to read an ACE 5.1-format file (with the changes next...) * ace/Configuration_Import_Export.(h cpp): Added a new ACE_Registry_ImpExp::process_previous_line_format() method that knows how to read an ACE 5.1-format config line. If ACE_Registry_ImpExp::import_config finds a line that does not begin with one of <"[#;> it calls process_previous_line_format to try to convert it using ACE 5.1-format rules. Note that the auto conversion works on import. If the object is subsequently exported, the new registry format will be used to write the file, effectively updating it from old to new format. Wed Aug 22 12:04:04 2001 Douglas C. Schmidt * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the work_pending() method isn't implemented and suggest what to do for a workaround. Thanks to Michelangelo Riccobene (michelangelo.riccobene@marconi.com) for reporting this. Wed Aug 22 10:38:08 2001 Carlos O'Ryan * bin/nightlybuilds/print_config.pl: Add new perl script to print out the build configuration, the script will be shared by the Unix and Win32 builds. Wed Aug 22 11:30:13 2001 Joe Hoffert * ace/OS_Memory.h: Removed include of pace/stddef.h. PACE does not have this file. There are no POSIX functions that typically reside in this header. Maybe PACE will need this later but it doesn't now. * ace/OS.h (ACE_cond_t): Modified #if guard to include ACE_cond_t class if we're on Win32. If we're using PACE then we don't want this method (since PACE takes care of it) unless we're on Windows. Win32 mutexes, semaphores, and condition variables are not yet supported in PACE. * ace/OS.cpp (ACE_OS::cond_destroy): Modified #if guard to include ACE_cond_t::cond_destroy if we're on Win32. If we're using PACE then we don't want this method (since PACE takes care of it) unless we're on Windows. Win32 mutexes, semaphores, and condition variables are not yet supported in PACE. * ace/OS.i (ACE_OS::waiters): Modified #if guard to include ACE_cond_t::waiters if we're not on Win32. If we're using PACE then we want this method (since PACE defines cond_t) unless we're on Windows. Win32 mutexes, semaphores, and condition variables are not yet supported in PACE. Tue Aug 21 08:26:30 2001 David L. Levine * docs/ACE-guidelines.html: changed the example referenced in: Sun Aug 19 08:17:14 2001 David L. Levine to be a bit more realistic. Tue Aug 21 06:58:49 2001 Balachandran Natarajan * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to Alain Decamps for giving this patch. Tue Aug 21 10:40:12 2001 Johnny Willemsen * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator getCurrentValue() const * ace/Map_Manager.*: Added a const iterator for the ACE_Map_Manager Mon Aug 20 18:20:51 2001 Steve Huston * ace/Process.cpp (pass_handle): Only try to compile the DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's right this time... Mon Aug 20 15:54:46 2001 Douglas C. Schmidt * ace/SUN_Proactor.cpp: Removed the instantiation of ACE_Condition. Thanks to David Trusty for reporting this. Mon Aug 20 15:48:30 2001 Paul Calabrese * bin/msvc_auto_compile.pl: Modify script to print config.h contents. Mon Aug 20 13:14:00 2001 Carlos O'Ryan * bin/auto_compile: Fixed chdir commands for the auto_compile scripts. Mon Aug 20 14:33:31 2001 Douglas C. Schmidt * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation of the message queue in wait_not_full_cond() or wait_not_empty_cond() make sure to decrement the "waiters" count accordingly! Thanks to Patrick Rabau for noticing this in the C++NPv1 book version! Mon Aug 20 07:01:31 2001 Douglas C. Schmidt * ace/Synch_T.i (release): If owner_ == -1 then return -1. Thanks to Don Hinton for suggesting this. Mon Aug 20 13:18:51 2001 Steve Huston * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected, not private. Thanks to Don Hinton for pointing this out. * THANKS: Added Don Hinton to the Hall of Fame. Mon Aug 20 11:00:50 2001 Chad Elliott * ace/OS.h: Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks. * tests/run_test.lst: Removed tests for VxWorks for which the platform has no support. * tests/CDR_File_Test.cpp: * tests/Svc_Handler_Test.cpp: Add VxWorks to the list of platforms that can't unlink the file in advance of the test completing. Mon Aug 20 01:49:12 2001 Christopher Kohlhoff * include/makeinclude/build_dll.bor: Build non-core DLLs into the common bin directory. This is necessary so that the tests can find all the DLLs they need on the path. * tests/run_test.pl: Removed the append of the ExeSubDir to the path, since it is no longer needed and never really worked properly anyway. Mon Aug 20 00:01:29 2001 Steve Huston * ace/SOCK_Connector.h: Clarify the conditions under which errno will be ETIME (caller-specified timeout expires w/o connect) vs. ETIMEDOUT (protocol layer timed out the connect). * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple places where an ACE_ERROR is _not_ done for certain conditions. * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout expires before the connect is resolved one way or the other, set errno to ETIME, not ETIMEDOUT. This makes it match the documented behavior in the ACE_SOCK_Connector man page. Sun Aug 19 20:33:39 2001 Carlos O'Ryan * bin/nightlybuilds/builds.lst: Update build list Sun Aug 19 15:36:23 2001 Carlos O'Ryan * bin/auto_compile: Add new 'Config' section at the end of the build, useful for the next generation scoreboard. Sun Aug 19 13:25:51 2001 Carlos O'Ryan * bin/footprint_stats.sh: * bin/performance_stats.sh: * bin/generate_footprint_chart.sh: * bin/generate_performance_chart.sh: * html/Stats/Stats.css: * html/Stats/configuration.shtml: * html/Stats/detailed_footprint.shtml: * html/Stats/detailed_performance.shtml: * html/Stats/footer.html: * html/Stats/index.shtml: * html/Stats/navigation.html: Put the scripts and HTML documents used to generate the Stats pages under CVS control. Now it is easier for people to add their own libraries and tests, as well as let our user community examine the way the pages are generated. * bin/auto_run_tests.lst: Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have been incorporated into the run_test.pl script. * bin/sandbox.cpp: Minor changes to the sandbox script, actually not very useful, the ACE classes to create processes start a new process group by default, therefore there is no simple way to kill all the subprocesses if a test fails. Sun Aug 19 08:17:14 2001 David L. Levine * docs/ACE-guidelines.html: replaced function call in ASSERT with simple comparison of a variable value. Thanks to Tino Schwarze for suggesting this. Sat Aug 18 18:26:24 2001 Balachandran Natarajan * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition of write_n (). Sat Aug 18 13:18:10 2001 Douglas C. Schmidt * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...) for file transfers that's the dual of send_n(...ACE_Message_Block *...). This helps out the C++NPv1 book symmetry. Thanks to Alain Decamps for motivating this. Fri Aug 17 18:17:38 2001 Douglas C. Schmidt * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not compiling on Linux. Thanks to Thomas Groth for reporting this. Fri Aug 17 19:04:31 2001 Steve Huston * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE, just do ACE_NOTSUP_RETURN (-1). It can't dup a handle. Fri Aug 17 16:56:16 2001 Jeff Parsons * ace/CDR_Stream.h: * ace/CDR_Stream.i: * ace/CDR_Stream.cpp: Added wr_ptr() accessor method to ACE_InputCDR, and added its use to adjust(), align_read_ptr(), read_1(), skip_string() and skip_bytes() instead of end(). Also added reset of good_bit_ to 0 upon failure in read_string() and read_wstring(). Thanks to Peter Phillips for reporting this bug, which was causing excessive memory allocation is some cases. [Bug 591, 944, 983] Fri Aug 17 13:31:45 2001 Chad Elliott * tests/run_test.pl: Added the ability to generate windsh commands to load and run the ace tests. * tests/Makefile: Added a rule to generate run_test.vxworks, using run_test.pl, which can be used to run the tests selected for the VxWorks OS. * tests/run_test.lst: Update this list to take into account the limitations of VxWorks. * tests/test_config.h: Change the permissions of the log file open (for VxWorks only) to use the symbolic permission names instead of 0x644. The permissions differ from the standard UNIX modes. * tests/run_tests.vxworks: This file was out of date and no longer needs to be maintained. So, it has been removed. Fri Aug 17 09:44:49 2001 Balachandran Natarajan * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001 Johnny Willemsen " as this was giving too much of warnings in the builds. Fri Aug 17 09:30:34 2001 Balachandran Natarajan * gperf/apps/tests/Makefile: Fixed the problem that was causing the builds to fail. Fri Aug 17 08:07:12 2001 Johnny Willemsen * ace/Map_T.(h i): made the return value of ACE_Incremental_Key_Generator::current_value const T& instead of T&. Added uppercase traits to the ACE_Map class. Thu Aug 16 19:27:29 2001 Steve Huston * ace/Process.cpp (ACE_Process_Options::pass_handle): Add "::" to front of "DuplicateHandle" so the WinCE compiler sees the right function. Also added ctor/dtor for ACE_Managed_Process to try and fix the can't find vtable error on Linux. * ace/Process.h: Added a constructor for ACE_Managed_Process to fix "can't find vtable" error on Linux. * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file. Thu Aug 16 15:10:42 2001 Steve Huston * ace/Process.h (pass_handle): Clarify comments for this method. * ace/Process_Manager.cpp: * ace/Process.(h i): Moved the ACE_Managed_Process class out of Process_Manager.cpp, exposing it for general use. Thu Aug 16 10:34:20 2001 Douglas C. Schmidt * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev Omenzel for reporting this and to Craig Rodrigues for fixing it and to John E Hein for fixing the fix ;-) Thu Aug 16 08:09:53 2001 Chad Elliott * tests/run_test.lst: Added the OTHER requirement to the Thread_Pool_Reactor_Test and the Thread_Pool_Reactor_Resume_Test. These are only built if OTHER is part of the ACE components list. Wed Aug 15 15:50:38 2001 Douglas C. Schmidt * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if notify_handler_ is 0. Thanks to Edan Ayal for reporting this. Wed Aug 15 11:33:26 2001 Carlos O'Ryan * bin/nightlybuilds/builds.lst: Remove one build from the list, the machine is being retargeted for performance testing. Wed Aug 15 11:10:22 2001 Balachandran Natarajan * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has been tested for a dynamic and a static library on Linux. If there are other platforms that gives problems, please feel free to revert the changes to the version 4.114 of the file. Wed Aug 15 09:35:19 2001 Chad Elliott * ace/Dirent_Test.cpp: Added #define's for VXWORKS that allow this test to function properly. Avoid hard-coded relative paths that may not exist on VxWorks. Wed Aug 15 09:08:40 2001 Chad Elliott * ace/Sock_Connect.cpp: Added an implementation to ACE_Sock_Connect::get_ip_interfaces(). With this, the Enum_Interfaces_Test works correctly. Wed Aug 15 07:54:49 2001 Balachandran Natarajan * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a bit. The patch that was applied to remove the hard coding of OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded again. This should fix the problems that we have been seeing in the builds. If at all we need to remove hardcoding the OBJDIRS, we either need to put the value of VDIR or VSHDIR. If we put both we are going to end up with duplicate targets. Now the killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I have test that out else I would be breaking builds again. Wed Aug 15 07:30:00 2001 Balachandran Natarajan * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a typo. But looks like it is not. Wed Aug 15 06:39:50 2001 Balachandran Natarajan * ace/Process.cpp: Fixed a warning with g++. Tue Aug 14 23:57:42 2001 Steve Huston * A set of changes to encapsulate passing handles to spawned processes. Thanks very much to Eamonn Saunders for suggesting that this could work and pointing out the Win32 details! * THANKS: Added Eamonn Saunders to the Hall of Fame * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This class is part of the OS subset. * ace/Process.h: Added the following methods: - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified handle to be passed to a child process when it's spawned. Has meaning mainly for Win32. The handle value will be included in the spawned process's command line as +H . The passed handle value will be duplicated if on Win32 less than NT4. - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const Get a copy of the handles the ACE_Process_Options duplicated for the spawned process. - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const Get a copy of the handles passed to the spawned process. This will be the set of handles previously passed to pass_handle(). - ACE_Process::close_dup_handles (). Close all the handles in the set obtained from ACE_Process_Options::dup_handles. - ACE_Process::close_passed_handles (). Close all the handles in the set obtained from ACE_Process_Options::passed_handles. Also moved the avoid_zombies() functions and flag out of the non-Win32 section - it can safely be ignored, maintain the intended semantics, and help apps stay portable. * Process.cpp: Implement the above new methods. Also, after spawning a process, the parent will call the above dup_handles/passed_handles methods to get any passed handles. The close_*_handles() methods can then close them. Also, the destructor will call close_dup_handles to be sure that no handles leak on Win32 less than NT4. * Process.i (command_line_buf ()): Added a new arg to receive the maximum length of the buffer pointed to on return. To maintain backward compatibility, the arg defaults to 0 (don't return the max length). * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group. * ace/ace.icc: Moved Handle_Set from DEMUX to OS. * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS. Tue Aug 14 21:42:24 2001 Balachandran Natarajan * include/makeinclude/wrapper_macros.GNU: Fixed a typo. Tue Aug 14 21:30:04 2001 Balachandran Natarajan * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There are several reasons for reverting. This breaks the builds. The Makefiles in the recursed directories are all messed up. The library dependencies doesnt seem trivial. Nobody may have time to fix this. Further, our daily builds return too quickly and we just needed more files to compile :-). Tue Aug 14 14:19:49 2001 Steve Huston * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release() here to free up the blocks allocated by the pool, else they're stranded and can't be freed. * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After freeing up the blocks, reset the allocated_chunks_ set to be sure they are also freed, and the chunks can't be freed again. Tue Aug 14 14:19:37 2001 Balachandran Natarajan * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss for ACE_Log_Msg::close () Tue Aug 14 13:55:42 2001 Balachandran Natarajan * include/makeinclude/platform_macosx.GNU: Added a patch from John Michael Zorko . Tue Aug 14 10:21:39 2001 Steve Huston * ace/Log_Msg.h: Clarified the defaults for the per-process and per-instance default priority masks. Mon Aug 13 14:01:35 2001 Douglas C. Schmidt * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded uses of .shobj and .obj. Thanks to Shashi Bhushan for contributing these. * ace/CDR_Stream.h: Added comments warning about the deletarious effects of not aligning buffers to ACE_InputCDR and ACE_OutputCDR properly. Thanks to Alain Decamps for reporting this. Sun Aug 12 14:46:07 2001 Douglas C. Schmidt * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so that callers can figure out what's going wrong in a consistent way. * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't try to purge the notifications if notify_handler_ is 0. thanks to Steve Rahn for reporting this. Mon Aug 13 20:09:04 2001 Balachandran * ACE version 5.1.19 released. Sun Aug 12 02:17:01 2001 Nanbor Wang * ace/MEM_Acceptor.cpp: * ace/MEM_Connector.cpp: On non-Win32 platforms, disable multithreaded MEM_IO if _ACE_USE_SV_SEM is defined. Sun Aug 12 01:27:51 2001 Steve Huston * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer retrieved from ACE_Log_Record::msg_data(). Sun Aug 12 00:34:42 2001 Steve Huston * ace/Log_Record.h: * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data() to: const ACE_TCHAR *msg_data (void) const. Makes it safer, and conforms to all current usage inside ACE. Also makes C++ Network Programming examples simpler :-) Sat Aug 11 09:01:11 2001 Douglas C. Schmidt * ace/Thread.h: * ace/Task.h: Added a list of other flags that can be passed to activate(). Fri Aug 10 19:39:48 2001 Krishnakumar B * bin/auto_run_tests.lst: Disabled the Blocking_Sync_None test from running under Tru64. Also changed the config parameter passed to the auto_compile script from TRU_64 to Tru64 in ~bugzilla/bin/auto_compile_tru64_cxx. This is so that the test is disabled only for the WashU builds. The reason being that Bala was not too happy with changing the default values for all the platforms and we also wanted to avoid more #ifdefs in the code. Other builds might have better values and the test might succeed. Have to confirm this though. Fri Aug 10 17:59:47 2001 Nanbor Wang * ace/Svc_Conf_y.cpp: * ace/OS.h: Added /**/ between #include and and to avoid warning from CE compiler. * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project. Fri Aug 10 13:40:46 2001 Chad Elliott * bin/nightlybuilds/builds.lst: I didn't realize the LIST definition was needed. I have added it for the Tru64 4.0f Compaq C++ 6.3-10 build. Fri Aug 10 11:45:03 2001 Chad Elliott * bin/nightlybuilds/builds.lst: Added the Tru64 4.0f Compaq C++ 6.3-10 build. Fri Aug 10 11:06:23 2001 Chad Elliott * apps/drwho/CM_Client.cpp: * apps/drwho/CM_Server.cpp: * apps/drwho/server.cpp: Changes to avoid warnings on HP-UX with aCC. Thu Aug 9 16:56:05 2001 Balachandran Natarajan * ace/Hash_Map_Manager_T.i: * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels again and again. A few months back we had a show stopper in a beta which was caused by usage of static cast. The cast was not to the liking of SunCC 4.2. Looks like we had to change a bunch of static cast sprayed in these two files to a C style cast as 4.2 doesnt like them. Compilers like Borland handle these better, but not 4.2. Thu Aug 9 11:51:10 2001 Balachandran Natarajan * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we have the -w flag removed from CCFLAGS in the above file. Looks like the -w disables lots of warnings that may be useful. Thu Aug 9 11:41:01 2001 Balachandran Natarajan * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor problem. The InputCDR class had two constructors which were similar if the default values for the arguments were exercised. Thanks to Torbjorn Backstrom for reporting this. Thu Aug 9 12:31:21 2001 Douglas C. Schmidt * ace/OS_String.cpp (strtok_r_emulation): Make sure to check for a NULL return from strtok() before calling strlen()! Thanks to Boris Sukholitko for reporting this. Wed Aug 08 21:27:50 2001 Ossama Othman * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0): The host these nightly builds were built on is now called "rumba" (previously "valinor"). Updated the build list accordingly. Wed Aug 08 21:19:09 2001 Ossama Othman * tests/Service_Config_Test.UTF-16.conf: Removed extraneous characters from this file that were causing the Service Configurator's underlying lexer to "choke." Wed Aug 8 16:23:31 2001 Carlos O'Ryan * bin/auto_run_tests.lst: Add the AMI_Buffering tests to the nightly regression testsuite. Wed Aug 8 16:07:26 2001 Balachandran Natarajan * bin/auto_run_tests.lst: The GIOP lite tests will not work in the static builds. It was adding more complications to the test than what is already there to get it working for the static builds. Wed Aug 8 14:06:36 2001 Krishnakumar B * ace/config-tru64.h: Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x versions. * ace/config-cxx-common.h: Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027. Thanks to Robert Burke for reporting this. * include/makeinclude/platform_osf1_3.2.GNU: * include/makeinclude/platform_osf1_4.0.GNU: * include/makeinclude/platform_osf1_4.0_g++.GNU: * include/makeinclude/platform_osf1_4.0_kcc.GNU: * include/makeinclude/platform_osf1_4.0_rcc.GNU: Removed the following files. * include/makeinclude/platform_osf1_3.2_cxx.GNU: * include/makeinclude/platform_osf1_4.x_cxx.GNU: * include/makeinclude/platform_osf1_4.x_g++.GNU: * include/makeinclude/platform_osf1_4.x_kcc.GNU: * include/makeinclude/platform_osf1_4.x_rcc.GNU: Added new versions of the removed files. * include/makeinclude/platform_tru64_pre.GNU: * include/makeinclude/platform_tru64_post.GNU: Moved a lot of duplicated code into these new files. * include/makeinclude/platform_tru64_cxx.GNU: * include/makeinclude/platform_tru64_g++.GNU: * include/makeinclude/platform_tru64_kcc.GNU: Removed a lot of old *cruft* like setting up compilation with cxx when gcc was asked for etc. etc. Somebody went overboard with cut'n paste and copied David's changes blindly. Still not completely satisfied. But it works and is better than before. This also fixes Bug Id 989. Wed Aug 08 11:30:26 2001 Ossama Othman * tests/Service_Config_Test.cpp (run_test): Don't check if "ACE_USES_WCHAR == 1" since some configurations neglect to set it an integer value. Instead, just check if it is defined. Wed Aug 8 12:31:51 2001 Balachandran Natarajan * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an LM_WARNING to an LM_DEBUG. Wed Aug 08 11:59:45 2001 Nanbor Wang * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been defined. Wed Aug 8 06:21:24 2001 Douglas C. Schmidt * ace/Makefile: Moved Message_Block from STREAMS_FILES to UTILS_FILES. * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to delete [] d->directory_name_. Thanks to Olivier Brunet for reporting this. Tue Aug 7 21:59:42 2001 Douglas C. Schmidt * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents of the temporary file to the log file. Tue Aug 7 19:14:24 2001 Douglas C. Schmidt * ace/CDR_Stream.i: * ace/SOCK_Stream.h: Fixed incorrect comments. Thanks to Alain Decamps for reporting these. Tue Aug 7 15:19:38 2001 Douglas C. Schmidt * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX. * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is an ACE-level #define. We use this in C++NP v1. Tue Aug 7 14:16:57 2001 Douglas C. Schmidt * ace/Svc_Handler.cpp: Reimplemented the flush() method to use the new send_n() method on the various ACE I/O classes. * ace/SOCK_Stream.{h,i}: * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all the s chained through their and pointers using the underlying OS gather-write operation to reduce the domain-crossing penalty. Tue Aug 7 17:27:16 2001 Balachandran Natarajan * tests/Collection_test.cpp: Fixed a compile error with g++. This is a patch that Johnny Willemsen sent as a part of his last checkin. Tue Aug 07 11:25:36 2001 Nanbor Wang * ace/config-freebsd-pthread.h: Made the following definition valid only for pre-4.2-RELEASE. #define ACE_LACKS_GETPGID #define ACE_LACKS_SETPGID #define ACE_LACKS_SETREGID #define ACE_LACKS_SETREUID Thanks to Robert Burke for reporting this. Tue Aug 07 16:40:12 2001 Johnny Willemsen * ace/Hash_Map_Manager_T.*: Added const_iterator to the Hash_Map_Manager so that it is possible to iterate over a hash map in a const method The operator= of the iterator now check the value of this to check that the iterator instance is assigned to itself * tests/Hash_Map_Manager_Test.cpp Extended this test to test the new const_iterator capabilities of the hash map * ace/Unbounded_Set.cpp: Implemented missing operator* for the const iterator * tests/Collection_test.cpp: Extended test to test the operator* of the Unbounded_Set_Const_Iterator Mon Aug 6 19:58:48 2001 Douglas C. Schmidt * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS. Thanks to Torbjorn Backstrom for reporting this. * ace/OS.h: Added a #include for for HP/UX. Thanks to Torbjorn Backstrom for reporting this. Mon Aug 6 12:51:35 2001 Douglas C. Schmidt * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error where acquire_write() should be acquire_read(). Thanks to Russell Mora for fixing this. Mon Aug 06 17:17:33 2001 Ossama Othman * ace/Service_Config.cpp: Fixed some debugging messages that were not wrapped within an ACE_LIB_TEXT macro. * tests/Service_Config_Test.UTF-16.conf: Interim UTF-16 encoded version of the UTF-8 encoded Service_Config_Test.conf. It was generated on a little-endian host. Its current purpose is simply to keep our Unicode regression testing happy until the on-the-fly generation is implemented. Once we start generating this file on-the-fly this file should disappear. * tests/Service_Config_Test.cpp (run_test): When using full Unicode support, use the version of the Service Configurator file that is UTF-16 encoded (as described above). Mon Aug 06 11:10:24 2001 Ossama Othman * ace/Svc_Conf_l.cpp: More Unicode fixes. Flex's allocation function uses malloc() as its underlying allocator. Since it only accepts the size in bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating string buffers. This should clear up some strange looking text "unknown character" messages emanating from the Service Configurator's underlying text scanner. Note that these changes do not fix the cause of the "unknown character." Those fixes should soon follow. Mon Aug 06 09:04:04 2001 Ossama Othman * ace/Svc_Conf.l: Unicode updates. Wrap debugging text within an ACE_LIB_TEXT macro. Sun Aug 5 14:31:10 2001 Balachandran Natarajan * tests/run_tests.lst: Ossama suggested that we dont run the Service_Config_Test in static builds. Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy * ace/QoS/SOCK_Dgram_Mcast_QoS.h: * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp: Made the open method public so we can open UDP sockets for non-multicast addresses. Fri Aug 03 22:19:31 2001 Steve Huston * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the wide char handling since Darrell so nicely straightened all the muck out throughout ACE. Thanks Darrell! Fri Aug 03 22:15:51 2001 Steve Huston * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and 'lc' forms are not allowed; HP-UX requires 'S' and 'C'. Fri Aug 3 13:10:59 2001 Ossama Othman * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER, ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER): Removed unnecessary and some incorrect format specifiers for the 32-bit platform case. In particular, the format specifier for an unsigned 64-bit integer was incorrectly set to "%Lu." "%L" is the format specifier for a "long double," not a "long long" integer on 32-bit platforms. "%llu" is the correct format specifier which `ace/Basic_Types.h' already defines. Fri Aug 3 09:55:38 2001 Ossama Othman * bin/auto_run_tests.lst: Added the new TAO "DLL_ORB" test to the list of tests to run. Fri Aug 3 08:26:45 2001 Balachandran Natarajan * ace/RW_Process_Mutex.cpp: Added a missing comma in the constructor. This should fix Win32 compile errors. Fri Aug 3 08:07:45 2001 Balachandran Natarajan * ace/CDR_Base.cpp: Added a check for a memory allocation failure in grow (). Thanks to Francis Paul for pointing this out. Thu Aug 2 18:37:23 2001 Douglas C. Schmidt * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS to the constructor call to ACE_RW_Process_Mutex so that it does the right thing on Win32. Thanks to Wayne Erchak for reporting this. This fixes bugid 996. Thu Aug 02 13:04:19 2001 Steve Huston * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES section. Thu Aug 02 06:59:39 2001 Steve Huston * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR. Wed Aug 1 16:05:49 2001 Carlos O'Ryan * Merged changes from the fix_886 branch Tue Jul 31 09:17:49 2001 Carlos O'Ryan * ace/Intrusive_List.h: * ace/Intrusive_List.inl: Add new methods to access the head and tail of the list. * ace/Intrusive_List.cpp: Fixed the implementation of remove(), if the element to be removed was the last on the list it wasn't removed at all. Left some code to check invariants, have to find a way to keep that code around with some optional compilation flags. Thu Jul 26 16:50:54 2001 Carlos O'Ryan * ace/Makefile: * ace/Makefile.am: * ace/Makefile.bor: * ace/Intrusive_List.h: * ace/Intrusive_List.inl: * ace/Intrusive_List.cpp: Add new template to implement intrusive lists, i.e. lists that assume their elements implement the next() and prev() methods. * ace/Intrusive_List_Node.h: * ace/Intrusive_List_Node.inl: * ace/Intrusive_List_Node.cpp: Helper class to add the requirements of ACE_Intrusive_List to any other class, simply do: class Foo : public ACE_Intrusive_List_Node Wed Aug 1 15:57:35 2001 Ossama Othman * ace/Message_Block.cpp (release, release_i): Obtain the pointer to the allocator from the object that will be destroyed before calling ACE_DES_FREE on the object. Previously we were obtaining the allocator after the object was destroyed, due to the way the ACE_DES_FREE macro works. Thanks to Hyman Rosen for reporting the problem, and to Carlos for suggesting a fix. [Bug 992] Wed Aug 1 15:00:21 2001 Douglas C. Schmidt * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter" to a "getter" method, which makes more sense. Thanks to Patrick Rabau for reporting this. Wed Aug 1 12:43:57 2001 Ossama Othman * ace/Svc_Conf_l.cpp: Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor Wang ) that enables proper handling of UNICODE Service Configurator directives. Wed Aug 1 07:14:42 2001 Douglas C. Schmidt * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new version of this file, which includes support for the Hitachi chip. Thanks to Frank Wolf for this. * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning. Thanks to Bala for reporting this. Tue Jul 31 22:53:26 2001 Ossama Othman * tests/libService_Config_DLL.icc: New Visual Age project file for the libService_Config_DLL library. * tests/Makefile.am: Added build targets/dependencies for the libService_Config_DLL library. Tue Jul 31 22:46:33 2001 Ossama Othman * tests/Service_Config_DLL.dsp: * tests/Service_Config_Test.dsp: Removed the static library configurations. The Service_Config_Test currently requires dynamically loadable objects. Fixes Win32 "LIB" build failures. Tue Jul 31 22:10:48 2001 Ossama Othman * tests/Service_Config_Test.cpp (run_test): Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT macro. Fixes Unicode conversion problems. Tue Jul 31 16:53:57 2001 Ossama Othman * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer, ace_yydirective): Remove these global function and variable declarations. They are no longer used. Tue Jul 31 16:43:33 2001 Ossama Othman * ace/Basic_Types.h: If "__LITTLE_ENDIAN__" is defined then assume that the architecture is little endian. Some compilers/platforms define that macro. Suggested by Frank Wolf" . * ace/Svc_Conf.h (yy_push_buffer): * ace/Svc_Conf.l (yy_push_buffer): * ace/Svc_Conf_l.cpp (ace_yy_push_buffer): * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard): * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard): The Service Configurator directive is an "ACE_TCHAR *" not a "char *". Updated these method/function parameters to accept the former. Fixes a compile-time problem on "wchar/Unicode" builds. Tue Jul 31 05:34:48 2001 Douglas C. Schmidt * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to Christina Junru for reporting this. Mon Jul 30 15:31:42 2001 Douglas C. Schmidt * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields are ACE_UINT32 or ACE_INT32 internally so that it'll always be the same on all platforms. Thanks to Fabris for reporting this. Tue Jul 31 10:22:38 2001 Ossama Othman * tests/Makefile: Only build the Service_Config_Test if shared libraries are enabled, since it attempts to dynamically load a shared library. Tue Jul 31 10:16:31 2001 Steve Huston * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this feature off, not on. Thanks to Don Hinton for noticing this. Mon Jul 30 13:41:00 2001 Nanbor Wang * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated docuementation to better explain the meaning of this constant. Thanks to Mike Vitalo for motivating the change. Mon Jul 30 09:43:06 2001 Douglas C. Schmidt * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro. Thanks to Bala for reporting this. Mon Jul 30 05:43:23 2001 Douglas C. Schmidt * ace/Synch.h (ACE_Semaphore): Corrected the comment on how to get POSIX Pthreads "implementation" of semaphores (which supports the timed acquire() option). Thanks to Grzegorz Sikora for reporting this. Sun Jul 29 19:03:56 2001 Douglas C. Schmidt * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be consistent wrt the errno for the timed acquire(), which should now always be set to ETIME rather than ETIMEDOUT and EBUSY. * ace/Message_Queue_T.cpp (wait_not_full_cond, wait_not_empty_cond): Fixed a nasty bug with the semaphore version of ACE_Message_Queue that would have reared it's ugly head if ACE_NULL_SYNCH were used when ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug also triggered the following changes. * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(), ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take ACE_Time_Value *. * ace/OS.i: For some odd reason the timeouts for the timed version of mutex_lock() were returning a random smattering of errnos. I've changed them to all be consistent with the ACE_Condition_Thread_Mutex::wait() errno, which is ETIME. * ace/Synch.h: Updated the documentation of all the timed acquire() methods to explain what the various return values mean. Sun Jul 29 22:10:40 2001 Ossama Othman * tests/Service_Config_DLL.cpp: * tests/Service_Config_DLL.h: * tests/Service_Config_DLL.dsp: * tests/Service_Config_DLL_Export.h: * tests/Service_Config_Test.conf: New files associated with the existing Service_Config_Test. They are used when testing the reentrance/thread-safety of the Service Configurator, in addition to testing the Service Configurator's ability to handle nested processing of Service Configurator directives. * tests/Service_Config_Test.cpp (run_test): Add arguments to the Service Configurator argument vector to make it process the newly added `Service_Config_Test.conf' file. (main): Make the ACE_Thread_Manager wait for all running threads before exiting the test. Processing the `Service_Config_Test.conf' file causes some threads to be spawned. Sun Jul 29 19:19:20 2001 Ossama Othman * ace/Service_Config.cpp (process_directive, process_directives): Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The ACE_Static_Object_Lock declaration is only visible if ACE_HAS_THREADS is defined. This truly fixes the single-threaded build problems. Sun Jul 29 19:06:11 2001 Ossama Othman * ace/Svc_Conf.y (ace_obstack): * ace/Svc_Conf_y.cpp: * ace/Svc_Conf_l.cpp: UNICODE updates and fixes. Sun Jul 29 10:50:45 2001 Ossama Othman * ace/Svc_Conf_Lexer_Guard.cpp: There is no longer any need to include "ace/Object_Manager.h" * ace/Service_Config.cpp: Include "ace/Object_Manager.h" to pull in the definition of ACE_Static_Object_Lock. Fixes a problem found in Sun builds and single-threaded builds. Sat Jul 28 23:03:24 2001 Ossama Othman The following are changes that make the Service Configurator reentrant and thread-safe. * ace/Svc_Conf.y: Generate a pure (reentrant) parser using Bison. BYACC doesn't support generation of reentrant parsers. * ace/Svc_Conf.l: Implemented "buffer stack" support. This feature makes it possible to process Service Configurator directives within a Service Object's init() method, i.e. support nested directive processing. (ace_yyerrno): Moved declaration of ace_yyerrno from this file to `Svc_Conf.y'. ace_yyerrno was not used in the generated scanner. It was only used in the generated parser. (yy_delete_parse_buffer): There is no longer any need for this function. The lexer buffer stack implementation handles memory management of lexer buffers. (yywrap): Do not call yy_delete_parse_buffer(). It is no longer necessary to do so, in addition to the fact that that function was removed (as described above). (<>): Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack implementation handles the buffer switching that ACE_YY_NEW_FILE did, and more. * ace/Svc_Conf_Tokens.h: * ace/Svc_Conf_l.cpp: * ace/Svc_Conf_y.cpp: Regenerated these files using updated Bison/YACC and FLEX input files to pull in support for reentrant parsing and nested processing of Service Configurator directives. * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer): Added function prototypes for the newly implemented lexer buffer stack manipulation functions. (ace_yylex): Added ACE_YYSTYPE parameter to this functions signature, as required by the new reentrant parser support. (ACE_SERVICE_DIRECTIVE_STACK_DEPTH): New symbolic constant that defines the maximum supported depth for nested Service Configurator processing. The current default is 8. (ACE_YY_INPUT): No longer any need to redefine this macro to support scanning of Service Configurator directive strings. The new lexer buffer stack implementation provides support for lexer buffer scanning from a string instead of a pointer to "FILE." (ace_yydirective): This global variable is no longer needed due to the fact that the new buffer stack implementation handles directives read from both a string and a file. * ace/Service_Config.cpp: (process_directive, process_directives): Obtain a recursive lock before manipulating the lexer buffer stack, and invoking the parser and scanner. This makes invocation of the scanner thread-safe. The new lexer buffer stack implemenation obviates the need to call yyrestart() since buffer switching is handled by the stack implementation. (open_i, close): No need to deallocate the lexer buffer since the buffer stack implementation handles that. * ace/Svc_Conf_Lexer_Guard.h: * ace/Svc_Conf_Lexer_Guard.cpp: New "guard" class that makes lexer buffer stack pushing and popping exception-safe. * ace/Makefile: * ace/Makefile.am: * ace/Makefile.bor: * ace/ace.icc: * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and project files. Sat Jul 28 14:58:30 2001 Douglas C. Schmidt * ace/Svc_Conf_l.cpp: * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and Svc_Conf.y files to regenerate them. Thanks to Bala for motivating this. * netsvcs/clients/Tokens/collection/Makefile, netsvcs/clients/Tokens/deadlock/Makefile, netsvcs/clients/Tokens/invariant/Makefile, netsvcs/clients/Tokens/mutex/Makefile, netsvcs/clients/Tokens/rw_lock/Makefile, examples/ASX/CCM_App/Makefile, examples/Logger/Acceptor-server/Makefile, examples/Reactor/Multicast/Makefile, examples/Reactor/Ntalker/Makefile, examples/Shared_Malloc/Makefile, performance-tests/TCP/Makefile, performance-tests/UDP/Makefile: Removed the line include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU so that these projects will build correctly on VxWorks with Make 3.79.1. Thanks to Frank Wolf for reporting this. Fri Jul 27 11:24:50 2001 Douglas C. Schmidt * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks to Kevin Burge for suggesting this and providing the fix. * ace/Svc_Conf.l: Added support for "~" in pathnames to support Win32isms. Thanks to Kevin Burge for suggesting this and providing the fix. * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a race condition. Thanks to Charlie Duke for this fix. Thu Jul 26 08:15:36 2001 Douglas C. Schmidt * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed $PATH to $(PATH). Thanks to Frank Wolf for reporting this. Wed Jul 25 17:46:58 2001 Douglas C. Schmidt * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor method. Thanks to Craig L. Ching for reporting this. Wed Jul 25 17:36:09 2001 Douglas C. Schmidt * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count to the assign() method. Thanks to Charlie Duke for reporting this. Fri Jul 27 23:17:31 2001 Steve Huston * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then also set up definitions for functions that are not present (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP, ACE_LACKS_WCSDUP). * ace/ace_wchar.inl: If not ACE_WIN32, include to see strlen(). * ace/OS_String.inl (strstr): The XPG4 multibyte version of strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use wcswcs. Fri Jul 27 21:52:48 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite script, to our daily builds. Fri Jul 27 16:50:49 2001 Steve Huston * tests/Log_Msg_Test.cpp: Silence a compile warning in g++. Fri Jul 27 12:18:49 2001 Steve Huston * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around 's' for the %S case. Fri Jul 27 11:07:26 2001 Chad Elliott * ace/OS.h: After conversation with Steve Huston, I am reverting his change pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston ". Fri Jul 27 10:57:24 2001 Chad Elliott * ace/SOCK_Dgram_Bcast.cpp: Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely broken on AIX. The broadcast_client in docs/tutorials/008 now works with the help of this change. Thu Jul 26 22:09:19 2001 Steve Huston * ace/Log_Msg.cpp (log): Extend behavior so that all printf formatting conversion specifiers can be used with all legal ACE_Log_Msg format characters. This allows the caller to line up columns on any field, like line number or program name, or thread ID. Thanks to Paul Caffrey for motivating this extension. * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs, that verifies the formatting. Right now it does not detect the correctness of the strings produced - they have to be examined in the log file to check. This needs to be fixed still. Thu Jul 26 11:48:16 2001 Carlos O'Ryan * bin/count_lines: Add a few new file types. Wed Jul 25 23:49:43 2001 Krishnakumar B * include/makeinclude/platform_tru64_g++.GNU: Fixed some missing defines in the Makefile for DEC Unix versions 4.0D, 4.0E. We don't support or suggest this combination. Hence the oversight in missing the needed defines. Thanks to Martin Krumpolec for reporting this. Wed Jul 25 23:49:00 2001 Craig Rodrigues * include/makeinclude/wrapper_macros.GNU: Remove extraneous rapi = 0. Wed Jul 25 18:53:18 2001 Ossama Othman * html/index.html: Added CORBA Security Service main page link to the list of documentation. Wed Jul 25 17:41:43 2001 Ossama Othman * ltcf-c.sh: * ltcf-cxx.sh: * ltconfig: Removed these libtool related files. New versions of libtool (GNU libtool >= 1.4b) no longer use them. * config.guess: * config.sub: * ltmain.sh: Removed these files. We no longer need to keep custom copies lieing around since libtool 1.4b includes all of our local changes (i.e. our changes have been folded into the upstream libtool sources). * install-sh: * missing: * mkinstalldirs: Removed these files. Automake will automatically add these when necessary. Wed Jul 25 16:29:48 2001 Steve Huston * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed a number of ACE_DEBUG %p directives without a corresponding string. Also, closed a 2 handle-per-try handle leak, which may have affected test results on some platforms. * tests/Max_Default_Port_Test.h: Added a destructor to the test class - it's used to close the acceptor handle down. Wed Jul 25 15:21:22 2001 Krishnakumar B * ace/OS.h: Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix incorrect declaration of prototype. This fixes the warnings when compiling with gcc-3.0. Thanks to Ossama for suggesting the fix. Wed Jul 25 08:05:45 2001 Balachandran Natarajan * tests/Thread_Pool_Reactor_Resume_Test.h: * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race condition. This hardly showed up in many of our daily builds. The race condition had to be fixed to show the users of the cautious approach that one needs to take if they are resuming the handle in the application itself. Tue Jul 24 16:41:57 2001 Joe Hoffert * ace/Thread_Manager.cpp : Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to compile on VxWorks. * ace/OS.i : * ace/OS.cpp: Fixed formatting of some comments and added needed PACE calls for ACE_HAS_PACE on VxWorks. * ace/OS.h : Put #if !defined guards around the ACE_THR_PRI* macros so that we can define them in the config*.h files if they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN has a different value on SunOS 5.8 than it does on SunOS 5.7, i.e., -20 vs. 0 respectively. Also, added some needed typedefs and #define for ACE_HAS_PACE on VxWorks and updated some comments concerning ACE_OS::thr_create flags. * ace/Sched_Params.cpp (priority_min, priority_max): Changed to return correct thread priority min/max for Solaris threads. We now use the ACE_PRI_THR* macros for these values while still calling ACE_OS::priority_control for process and LWP priorities. * ace/config-sunos5.8.h: Added setting of ACE_THR_PRI_OTHER_MIN to be correct for SunOS 5.8. Tue Jul 24 13:47:32 2001 Balachandran Natarajan * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream): * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that matches the signature of ACE_Service_Handler. This should fix the warnings in Borland builds that complain about hiding the virtual functions. Tue Jul 24 10:56:04 2001 Ossama Othman * bin/generate_doxygen.pl (TAO_DOCS): Added "tao_security" and "tao_ssliop" Doxygen configurations to the list of documentation to generate. Tue Jul 24 07:45:03 2001 Douglas C. Schmidt * ace/Containers_T: Fixed some problems with the lack of const for the ACE_DLList and ACE_Double_Linked_List classes. Thanks to Michael Kircher for reporting this. * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK macro since this is apparently working on Cygwin. Thanks tj Stefan Kluehspies for reporting this. * ace/config-cygwin32.h: Removed the #define _CLOCKID_T macro, which should now be handled by the following change. * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to Stefan Kluehspies for reporting this. Tue Jul 24 11:10:59 2001 Krishnakumar B * ace/OS.h: Fix the compile errors seen on gcc-3.0 with -pedantic and -Wno-long-long. This should fix all the errors. Tue Jul 24 10:07:31 2001 Chad Elliott * include/makeinclude/platform_sunos5_g++.GNU: Add an optimize override to 0 for g++ 3.0. The compiler breaks on a tremendous amount of files, even with -O. Tue Jul 24 10:04:52 2001 Chad Elliott * ace/INET_Addr.cpp: Corrected a run-time error on Tru64 with gcc. Any executable that called ACE_INET_Addr::get_host_name() would core dump. This was caused by the call to ACE_OS::gethostbyaddr_r(). Tue Jul 24 08:20:02 2001 Chad Elliott * include/makeinclude/platform_aix_ibm.GNU: Change -O2 to -O. The optimizer seems to be a tiny bit broken, which is demonstrated by a few TAO and orbsvcs tests. Mon Jul 23 17:38:46 2001 Ossama Othman * etc/tao_security.doxygen: * etc/tao_ssliop.doxygen: New Doxygen files for TAO's CORBA security libraries. Mon Jul 23 13:48:26 2001 Ossama Othman * ace/MEM_Connector.cpp (connect): Disable non-blocking on the stream after its handle has been set. Previously, non-blocking was disabled on an uninitialized MEM_Stream, after which the handle was set (i.e. initializing the stream). In order to properly disable non-blocking on a stream, its handle must be set first since ioctl() operations are typically performed on the underlying stream handle. Mon Jul 23 13:06:39 2001 Steve Huston * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check to account for a zero ACE_Time_Value *, avoiding a crash in tests/Reactor_Timer_Test, as well as any other program that called ACE_Reactor::handle_events with a zero timer pointer. Mon Jul 23 10:39:55 2001 Nanbor Wang * ace/OS.h: Added /**/ between #include and to avoid warning from CE compiler. * ace/ace_dll.vcp: Added Obchunk.cpp to the project. Sun Jul 22 08:19:43 2001 Douglas C. Schmidt * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to Christophe Galerne for reporting this. * ace/Log_Record.cpp (priority_names_): Added commas after the 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris for reporting this. Sat Jul 21 19:56:08 2001 Douglas C. Schmidt * ace/Map_T.{h,i}: Made current_value() a const member function. Thanks to Johnny Willemsen for reporting this. Fri Jul 20 10:16:46 2001 Douglas C. Schmidt * ace/Connector.cpp (create_AST): Replaced some calls to sh->get_handle () with a cached value of handle. This fixes a bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to Frank Wolf for reporting this. * examples/Connection/non_blocking/CPP-acceptor.cpp: * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp: * examples/Connection/non_blocking/CPP-connector.cpp: Changed the SH macro to SVH to avoid clashes with a macro in VxWorks. Thanks to Frank Wolf for reporting this. Thu Jul 19 06:55:07 2001 Douglas C. Schmidt * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag there. Thanks to Frank Wolf for suggesting this. Fri Jul 20 09:47:38 2001 Nanbor Wang * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support UNIX_Syslog. Thu Jul 19 22:39:32 2001 Nanbor Wang * tests/MEM_Stream_Test.cpp: * ace/MEM_IO.h: * ace/MEM_IO.i: * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded MEM_IO if _ACE_USE_SV_SEM is defined. Thu Jul 19 15:25:11 2001 Paul Calabrese * ace/MEM_Acceptor.i (mmap_prefix): Fix case where a null pointer is passed in. Thu Jul 19 06:55:07 2001 Douglas C. Schmidt * ace/Connector.cpp (connect_svc_handler): Missed one change... Thanks to Bala for reporting this! * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added support for the SH7700 and SH7700LE. Thanks to Frank Wolf for reporting this. * ace/OS.i (truncate): Make sure to close the handle that we opens. Thanks to Lothar for reporting this. * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes with a macro in VxWorks. Thanks to Frank Wolf for reporting this. Wed Jul 18 13:15:06 2001 Douglas C. Schmidt * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg from within the ACE_OS layer. Thanks to Bala for pointing this out! * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select() that uses ACE_Handle_Set *'s rather than fd_set *'s. This is motivated by work Steve Huston and I are doing on our new book "C++ Network Programming: Resolving Complexity with ACE and Patterns." * ace/Malloc_T.i (release): Removed an unnecessary "else" to make gcc 2.96 happy. Thanks to Frank Wolf for reporting this. * Happy birthday to me and Angelo Corsaro! Tue Jul 17 00:34:40 2001 Douglas C. Schmidt * ace/SString.h (ACE_Tokenizer): Make sure that the data members are protected, not private... Thanks to Martin Krumpolec for reporting this (again)! Wed Jul 18 16:40:56 2001 Irfan Pyarali * ace/Log_Msg.cpp (program_name): Undid the following changes: ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss Tibor will be looking into this further since this change currently causes shutdown problems on Win2000. Wed Jul 18 15:59:03 2001 Krishnakumar B * ace/config-tru64.h: Removed _LIBC_POLLUTION_H. It seems that this macro is causing problems for some users. Thanks to Pierre Oberson for prompting this fix. Tue Jul 17 13:00:11 2001 Balachandran Natarajan * tests/run_test.lst: Enabled the MEM_Stream test on Linux. Mon Jul 16 14:59:32 2001 Douglas C. Schmidt * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment that discourages developer from using the ACE_Shared_Memory_Pool and points them to the ACE_MMAP_Memory_Pool instead. Thanks to Johnny Chen for motivating this. * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak in the event that errors occur. Thanks to Kevin Burge for reporting this. * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast() to the program name for platforms like LynxOS whose openlog() method is char * rather than const char *. Thanks to Bala for reporting this. Sun Jul 15 11:06:33 2001 Douglas C. Schmidt * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that it's consistent with the new program_name() features. Thanks to Chris Kohloff for this fix. Sun Jul 15 11:04:26 2001 Carlos O'Ryan * ace/SSL/ACE_SSL.dsp: Removed references to $OPENSSL_ROOT, the user should configure those in the Tools -> Option -> Directories tab. Fri Jul 13 23:02:46 2001 Ossama Othman * ace/SSL/SSL_Asynch_Stream.h: * ace/SSL/SSL_Asynch_Stream.cpp: * ace/SSL/SSL_Asynch_BIO.h: * ace/SSL/SSL_Asynch_BIO.cpp: Only support asynchronous SSL streams when using OpenSSL > 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6. Fri Jul 13 22:48:56 2001 Ossama Othman * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE): Removed excess element in aggregate initializer. Fri Jul 13 22:29:01 2001 Ossama Othman * ace/SSL/SSL_Asynch_Stream.cpp (print_error): The OpenSSL ERR_error_string_n() function is only supported in OpenSSL 0.9.6 or better. Fri Jul 13 14:59:18 2001 Alexander Libman * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result): * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred): Added new methods set_error() and set_bytes_transferred(). Needed for below changes and new asynchronous SSL stream implementation. * ace/WIN32_Proactor.cpp (handle_events): Fixed error handling semantics so that it is consistent with the POSIX Proactor error handling semantics. (post_completion): Pass the amount of bytes transferred and the completion key to the Win32 PostQueuedCompletionStatus() function. The error, if any, will later be extracted in the handle_events() method. Fri Jul 13 15:59:45 2001 Douglas C. Schmidt * netsvcs/servers/main.cpp (main): The server was always outputing LM_DEBUG information, even when the program was not run with the -d command line argument. Therefore, changed the following lines from: if (ACE::debug () == 0) ACE_Log_Msg::disable_debug_messages (); to: if (ACE::debug () == 0) ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS); Thanks to Jerry D. De Master for reporting this fix. Fri Jul 13 12:16:03 2001 Ossama Othman * ace/SSL/SSL_Asynch_BIO.h: * ace/SSL/SSL_Asynch_BIO.cpp: * ace/SSL/SSL_Asynch_Stream.h: * ace/SSL/SSL_Asynch_Stream.cpp: New asynchrounous SSL stream implementation contributed by Alexander Libman . * ace/SSL/ACE_SSL.dsp: * ace/SSL/Makefile: * ace/SSL/Makefile.bor: Added new asynchronous SSL stream source files to these Makefiles and project files. Fri Jul 13 09:40:08 2001 Jerry D. De Master * ace/Log_Msg.*, ace/Logging_Strategy.*, ace/Log_Msg_UNIX_Syslog.*: Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and ACE_Log_Msg_UNIX_Syslog that are required to add the program name logging strategy option ('n') and to initialize the UNIX syslog facility with the program name. Also included are Boris Kolpackov patches for ACE_LACKS_IOSTREAM_TOTALLY to ACE_Logging_Strategy. Thu Jul 12 19:54:27 2001 Ossama Othman * examples/Registry/test_registry_update.cpp (main): Fixed unused argument warning. Thu Jul 12 19:57:12 2001 Frank Hunleth * bin/auto_run_tests.lst: Added TAO/tests/RTCORBA/ORB_init to the auto run list. Thu Jul 12 17:11:35 2001 Krishnakumar B * bin/nightlybuilds/builds.lst (WEB): Temporarily removed the IA-64 build till some issues get sorted out. Thu Jul 12 06:01:03 2001 John Michael Zorko * netsvcs/lib/Server_Logging_Handler.cpp: Added an an additional #define in config-macosx.h called ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_ defined before instantiating the offending template in Server_Logging_Handler.cpp. OS X has this thing about .dylibs (OS X version of .so) where they can't have any duplicate symbols, which is why libnetsvcs wasn't building on OS X earlier. This fixes that. * include/makeincludes/platform-macosx.GNU: Added -lACE to the LIBS line, which fixed the majority of the build problems. * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define mentioned above. Thu Jul 12 06:01:03 2001 Douglas C. Schmidt * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect() to simply t_rcvconnect(). Thansk to Andreas Geisler for reporting this. Thu Jul 12 09:43:36 2001 Ossama Othman * ace/FILE_Connector.h (ACE_FILE_Connector, connect): Removed the default O_EXCL flag I added a few days ago. It is mostly useful for preventing symbolic link attacks in a directory with global write permissions. Pass the responsibility of using the O_EXCL flag when necessary on to the application developer. Wed Jul 11 22:31:50 2001 Krishnakumar B * include/makeinclude/rules.local.GNU (clean.local): Added ti_files to remove the template cache generated by KCC. * ace/TLI_Acceptor.cpp(open_new_endpoint): Fixed a small typo causing compilation errors under Tru64. Wed Jul 11 13:06:33 2001 Steve Huston * tests/Log_Msg_Test.cpp: Changed the ostream test to close the under-test ostream file before trying to open it and read the contents. Avoids the "already open" error now that ACE_FILE_Connector includes O_EXCL by default, and avoids any potential file buffering issues reading an already-open file. Wed Jul 11 08:31:02 2001 Jeff Parsons * tests/Dirent_Test.cpp: Wrapped a string literal with ACE_TEXT, to get rid of a Win2000 WChar build error. Wed Jul 11 06:41:43 2001 Douglas C. Schmidt * ace/TLI_Stream.cpp, * ace/TLI_Connector.cpp, * ace/TLI_Acceptor.cpp: Added enhancements so that the code would work on Win32. Thanks to Andreas Geisler for reporting this. Tue Jul 10 19:26:15 2001 Ossama Othman * ace/ace_dll.dsp: Disabled generation of source browse information. It was causing problems on some existing builds that didn't use it. * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept): Removed certificate verification code. It is up to the application, not the ACE_SSL library, to perform proper certificate verification. Tue Jul 10 23:02:00 2001 Craig Rodrigues * tests/Log_Msg_Test.cpp: Fix test so it doesn't open output file to write to twice. Thanks to Ossama for finding it. Tue Jul 10 19:10:19 2001 Steve Huston * ace/ace.icc: Corrected the mis-applied patch for ace.icc in Mon Jul 09 19:12:42 2001 Steve Huston Tue Jul 10 16:01:52 2001 Ossama Othman * THANKS: Added Sangeetha Ramadurai to the hall of fame. Tue Jul 10 18:15:39 2001 Steve Huston * ace/WFMO_Reactor.cpp (event_handling): Move the logic for noticing that the wait timed out, but did not expire any timers, into this function. Will remove it from Reactor.cpp, to properly move the fix into handle_events() rather than needing to call run_reactor_event_loop to get it right. * ace/Select_Reactor_T.cpp - still need to add similar logic here. * ace/config-sunos5.6.h: Re the following: Mon Jul 2 15:26:32 2001 Nanbor Wang Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out. Solaris does indeed have POSIX semaphores in 2.6 and later, but requires the changes to OS.i below to work right. * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX, convert the HP-UX priority value to the POSIX range. * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris and HP-UX, the name of a POSIX semaphore needs to start with a slash (further restricted on Solaris). Enforce that here by prepending a slash, or by chopping off parts of the name. Tue Jul 10 16:08:04 2001 Krishnakumar B * include/makeinclude/platform_osf1_4.0.GNU: Fixed the default flags so that it enables the user to override settings. Now that the long pending fix to wrapper_macros.GNU is through, this should work fine now. Tue Jul 10 13:37:31 2001 Jeff Parsons * ace/OS_Dirent.cpp (readdir_emulation): Removed the hard cast to char* of one of the two arguments in a call to strcpy. In the WChar win32 build, this cast was causing the source and target strings to be of different widths. Tue Jul 10 11:32:26 2001 Tibor Kiss * ace/Log_Msg.cpp: Completed the ACE_Log_Msg::close method with the ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to ensure restartability by multiple successive ACE::init and ACE::fini calls. This fix prevent leaks from occurring when ACE::init() and ACE::fini() are called multiple times. Tue Jul 10 11:12:00 2001 Chris Gill * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS - user is no longer responsible for buffer deallocation after each readdir call, only for passing the pointer returned from opendir into closedir when all done. ACE_DIR structure is now used consistently for all pSOS dirent calls. Tue Jul 10 06:06:07 2001 Douglas C. Schmidt * ace/Service_Repository.h: Updated the insert() comment to clarify the return values. Thanks to Johnny Willemsen for suggesting this. * ace/Service_Repository.{h,i}: Made the current_size() and total_size() methods const. Thanks to Johnny Willemsen for suggesting this. * ace/Service_Repository.h: Fixed a typo in the comments. Thanks to Johnny Willemsen for reporting this. Tue Jul 10 08:39:04 2001 Chad Elliott * ace/config-vxworks5.x.h: Added the macro ACE_LACKS_UNIX_SYSLOG. Tue Jul 10 08:26:57 2001 Chad Elliott * ace/Log_Msg_UNIX_Syslog.cpp: Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have syslog, but don't have setlogmask(). * ace/config-chorus.h: ChorusOS 4.0.1 happens to be one of them. Tue Jul 10 09:00:12 2001 Johnny Willemsen * ace/OS_Dirent.h Made the member 'd_name' of the 'dirent' struct non-const, because BCB had problems with it Mon Jul 09 22:41:43 2001 Ossama Othman * include/makeinclude/wrapper_macros.GNU (exceptions): Include platform_macros.GNU before the default for "exceptions" is set. This fixes a problem where the default native exceptions setting in platform_linux.GNU was not set due to the fact that it was previously set in wrapper_macros.GNU. Thanks to Hans Utz for tracking down the problem. Mon Jul 9 16:40:02 2001 Ossama Othman * ace/Dirent_Selector.cpp (ACE_Dirent_Selector): Correct order of initialization of members to match order of declaration. Fixes a warning issued from GCC. * ace/Dirent_Selector.inl: Added missing RCS ID keyword. Fuzz was whining about the lack of it. * ace/Dirent_Selector.h: Corrected some Doxygen comments. Mon Jul 09 19:12:42 2001 Steve Huston * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log modules to the LOGGING component. Added Dirent_Selector to the UTILS component. Mon Jul 9 15:59:56 2001 Joe Hoffert * ace/config-lynxos.h: Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have this. Mon Jul 9 15:28:29 2001 Jeff Parsons * ace/Dirent_Selector.cpp: * ace/Dirent_Selector.h: Added ACE_INLINE guards around inclusion of Dirent_Selector.inl. * ace/ace_dll.dsp: * ace/ace_lib.dsp: Added Dirent_Selector.{h,i,cpp} to these projects. Mon Jul 9 06:52:09 2001 Douglas C. Schmidt * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file. * tests/Dirent_Test.cpp: Integrated a new test for the ACE_Dirent_Selector class. * ace/Makefile (UTILS_FILES), * ace/Dirent_Selector.h, * ace/Dirent_Selector.inl, * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for contributing this, as well. * ace/OS_Dirent.h, * ace/OS_Dirent.inl, * ace/OS_Dirent.cpp: Added support for the scandir() feature, which makes it possible to selectively pick which files in a directory to iterate over. Also fixed a bug in the emulation of dirent. Thanks to Rich Newman for contributing these fixes. Mon Jul 09 14:39:50 2001 Irfan Pyarali * ace/OS.i (thr_getprio and thr_setprio): Changed these two function such that if we are on Solaris and we have pthreads enabled, we should use the pthread calls rather than the native Solaris calls. The reasons for choosing the pthread calls is due to following problems with the native calls: - thr_getprio() is evil because on Solaris 5.8, a thread with priority -20 (SCHED_OTHER) is reported to have priority 80. - thr_setprio() is evil because it cannot set the negative priorities on Solaris 5.8. - Also, thr_setprio() cannot change the priority of a thread with negative priority to a positive priority on Solaris 5.8 (even though there is no error reported and thr_getprio() shows that the change happened but pthread_getschedparam() shows that no change happened). - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO uses thr_setprio() to reset its priority, the priority will be reset but the scheduling policy will be dropped to SCHED_OTHER. This happens with both Solaris 5.7 and Solaris 5.8. Mon Jul 9 13:33:43 2001 Joe Hoffert * include/makeinclude/wrapper_macros.GNU: Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE since the latter is not as flexible. Defined PACE_ROOT if not already defined. Also, added inclusion of PACE library for VxWorks even when inlining since not all the PACE functions should be inlined. Mon Jul 09 10:59:22 2001 Ossama Othman * THANKS: Added Mouna Seri to the hall of fame. Mon Jul 9 11:10:44 2001 Jeff Parsons * ace/config-win32-msvc-5.h: * ace/config-win32-msvc-6.h: Added conditional definitions for ACE_LD_DECORATOR_STR "mfc" and "mfcd" so that the MFC release and debug versions of libraries can be dynamically loaded in the same way that the non-MFC release and debug versions are. Thanks to Francois Bernier for suggesting this enhancement. Mon Jul 09 11:31:12 2001 Johnny Willemsen * ace/pre.h * include/makeinclude/compiler.bor Removed the disabling of the compiler warning 'parameter never used'. Unused parameters are handled by ACE_UNUSED_ARG macro. A missing ACE_UNUSED_ARG is now shown as warning in the BCB build log. Sun Jul 08 11:26:23 2001 Ossama Othman * ace/OS.h (mkstemp): * ace/OS.i (mkstemp): New mkstemp() wrapper. It is assumed to be available on the given platform, unless ACE_LACKS_MKSTEMP is defined. * ace/FILE_Connector.h: Added O_EXCL to the default flags. This is a security hole fix. * ace/FILE_Connector.cpp (connect): If mkstemp() is available, then use it to create a temporary file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is susceptible to a denial-of-service attack. * ace/config-win32-common.h: * ace/config-vxworks5.x.h: mkstemp() is not supported on MS Windows and VxWorks. Define ACE_LACKS_MKSTEMP in these headers. Sun Jul 8 08:13:12 2001 Douglas C. Schmidt * ace/Select_Reactor_Base.h: Added a comment explaining what the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to Kobi Cohen-Arazi for motivating this. Sat Jul 7 18:53:49 2001 Krishnakumar B * include/makeinclude/platform_osf1_4.0.GNU: Revert the changes made to this file. Please see the file for a lengthy description. Fri Jul 06 21:53:26 2001 Christopher Kohlhoff * ace/config-win32-borland.h: Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. Fri Jul 6 19:55:23 2001 Douglas C. Schmidt * examples/Reactor/Multicast: Adding the support for UNIX Syslog broke this example because LOG_DEBUG was suddenly defined as a macro (it's in syslog.h). I've fixed this by renaming the LOG_ enums to LM_ instead. Thanks to Bala for reporting this. Fri Jul 06 20:23:41 2001 Steve Huston * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6. Fri Jul 06 20:13:29 2001 Steve Huston * netsvcs/lib/Name_Handler.cpp: * netsvcs/lib/Server_Logging_Handler_T.cpp: * netsvcs/lib/Token_Handler.cpp: More ACE_DEBUG disables. Fri Jul 6 15:55:54 2001 Ossama Othman * ace/OS.h (ACE_FD_SETSIZE): Integrated patch from Jody Hagins . Set the default reactor file descriptor set size to be an integer constant rather than a preprocessor constant. Some third party software #undef FD_SETSIZE in their header files, causing build problems in ACE. Fri Jul 06 18:20:39 2001 Steve Huston * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of ACE_DEBUG statements that aren't appropriate for use in commercial logging. These can be #if 1'd if there's some doubt while debugging this stuff, but they aren't useful once debugged, and are distracting since they're interespersed with application records. Fri Jul 6 13:40:20 2001 Balachandran Natarajan * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++. Fri Jul 06 11:39:41 2001 Steve Huston * ace/INET_Addr.h: Clarified (and improved doxygenation) of constructor and set() methods regarding byte orders. * tests/Max_Default_Port_Test.icc: New file for this test. * tests/tests.icp: Added Max_Default_Port_Test Fri Jul 6 08:36:20 2001 Chad Elliott * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not contain Other. The netsvcs library requires Naming_Context. Fri Jul 6 05:44:13 2001 Douglas C. Schmidt * ace/Makefile (LOGGING_FILES): Added support for Log_Msg_UNIX_Syslog. * ace/Log_Msg_UNIX_Syslog.{h,cpp}: * ace/Log_Msg.cpp, * ace/OS.h: Added support for a new UNIX syslog backend for the ACE_Log_Msg class. Thanks to Jerry D. De Master and Robert Davidson . * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method comments. Thanks to Alain Decamps for reporting this. * ace/config-macosx.h: Added a new file courtesy of John Zorko so that things will work on MacOSX. Thu Jul 5 23:22:21 2001 Balachandran Natarajan Fixes that were required for fixing bug 575. Merged in from branch bug_575_stage_2. Thu Jul 5 23:09:29 2001 Balachandran Natarajan * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in the branch. This caused the DSI_Gateway test to fail. The problem was from setting the write pointer to a wrong position during the construction. Thu Jul 5 14:39:45 2001 Balachandran Natarajan * Merged with the main trunk and moved it to a new branch by name bug_575_stage_2. Thu Jun 28 15:25:07 2001 Balachandran Natarajan * ace/Reactor.h (ACE_Reactor): * ace/Reactor.cpp: Added a new method resumable_handler () to the reactor interface. This would indicate whether the application can take advantage by resuming the handlers themselves or not. Not all reactors can allow this feature. * ace/Reactor_Impl.h: * ace/Reactor_Impl.cpp: Added a pure virtual function so that all the implementations can decide whether the handlers are resumable or not. * ace/Select_Reactor_Base.h: * ace/Select_Reactor_Base.cpp: * ace/TP_Reactor.h: * ace/TP_Reactor.cpp: * ace/WFMO_Reactor.h: * ace/WFMO_Reactor.cpp:Implemented resumable_handlers (). Sun Jun 24 11:25:07 2001 Balachandran Natarajan * Created this file. Got the whole stuff in ace to a new branch by name bug_575_stage_1. This ChangeLog file will be in branch bug_575. Fri Jun 22 16:52:13 2001 Balachandran Natarajan * ace/CDR_Stream.cpp: Changed the copy constructor for the ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we now use the new copy constructor in the ACE_Message_Block. * ace/Message_Block.h: * ace/Message_Block.cpp: Added a new copy constructor to the ACE_Message_Block. This copy constructor does a deep copy from the data block if the data block of the incoming message block is on the stack or does a shallow copy of the data block (by incrementing the ref count) if it is on the heap. END of entries from bug_575_stage_2. Thu Jul 5 22:07:33 2001 Balachandran Natarajan * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls in the daily builds. Thu Jul 5 20:36:00 2001 Craig Rodrigues * ace/config-win32-borland.h define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION * tests/Token_Test.cpp Fix template instantiation problem. Wed Jul 4 15:35:47 2001 Joe Hoffert * tests/run_tests.vxworks: Removed invocation of CDR_Array_Test. According to the ace config files the compiler we are using is pre 2.8 (i.e., ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run CDR_Array_Test since the Makefile doesn't build it (due to the ACE_HAS_GNUG_PRE_2_8 macro). Wed Jul 04 14:26:10 2001 Irfan Pyarali * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from the Reverse Lock class into ACE_Acquire_Method, a non-template class. These enums should have been inside the reverse lock class, but some lame compilers cannot handle enums inside template classes. Wed Jul 04 12:43:22 2001 Irfan Pyarali * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the ACE_ACQUIRE_METHOD type. Tue Jul 3 15:43:25 2001 Balachandran Natarajan * ace/Select_Reactor_Base.cpp: Fixed a warning in g++. Tue Jul 3 14:44:00 2001 Craig Rodrigues * ace/config-win32-common.h: Borland C++ apparently does not support the "extern template class" Microsoft VC++ proprietary extension. Thanks to Chris Kohloff for the fix. Tue Jul 03 12:26:33 2001 Irfan Pyarali * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the constructor of the reverse lock. The ACE_ACQUIRE_METHOD parameter is used to indicate which acquire() method will be called on the real lock when the release() method is called on the reverse lock. REGULAR indicated the acquire() method, READ indicates the acquire_read() method, and WRITE indicates the acquire_write() method. Note that the try_*() methods are not represented here because we have to make sure that the release() method on the reverse lock acquires a lock on the real lock. Thanks to Edan Ayal for suggesting this. Tue Jul 3 06:20:13 2001 Douglas C. Schmidt * ace/Reactor.h, * ace/Reactor_Impl.h, * ace/Select_Reactor_Base.cpp, * ace/Select_Reactor_Base.i, * ace/Select_Reactor_Base.h, * ace/WFMO_Reactor.cpp, * ace/WFMO_Reactor.h: Added an enhancement that allows the Reactor to selectively purge event handlers from its notification queue according to their Reactor_Mask type. Thanks to Edan Ayal for contributing this. * tests/Reactor_Notify_Test.cpp (run_notify_purge_test): Added a new set of tests for the new selective notification purging features of the Reactor. Thanks to Edan Ayal for contributing this. * ace/WIN32_Asynch_IO.cpp: Removed the ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority, signal_number), initializer since we no longer use virtual inheritance. Thanks to Alexander Libman for reporting this. * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander Libman for reporting this. * ace/Refcounted_Auto_Ptr.h: Made the destructor of ACE_Refcounted_Auto_Ptr virtual so that users can override it locally. Thanks to Jenny Kowald for reporting this. Tue Jul 3 09:40:59 2001 Chad Elliott * include/makeinclude/platform_osf1_4.0.GNU: * include/makeinclude/platform_osf1_4.0_g++.GNU: Allow users to set options like debug, exceptions, ... without using override. Tue Jul 3 08:38:47 2001 Jeff Parsons * examples/Reactor/Proactor/test_dup_proactor.dsp: Fixed a mistake in the link to the ACE library. Mon Jul 2 16:23:04 2001 Jeff Parsons * examples/Reactor/Proactor/test_multiple_loops.dsp: * examples/Reactor/Proactor/test_proactor.dsp: * examples/Reactor/Proactor/test_proactor.dsw: * examples/Reactor/Proactor/test_timeout.dsp: * examples/Reactor/Proactor/test_udp_proactor.dsp: Fixed settings on release version of test_udp_proactor.dsp, added it to the workspace, and removed unused file folders from the FileViews of the other projects. Mon Jul 2 15:26:32 2001 Nanbor Wang * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka for helping track this down. Mon Jul 02 11:45:57 2001 Ossama Othman * bin/make_release: Disabled bootstrapping of ACE's autoconf support. It isn't ready for general use. Doing so reduces the amount of confusion. Thanks to Holger P. Krekel for motivating this change. Mon Jul 2 13:18:14 2001 Douglas C. Schmidt * Moved ACE-configurations.txt into the docs directory. Also removed the hopelessly out of date BIBLIOGRAPHY file. * Moved all the ChangeLog-* files into the new ChangeLogs directory. Thanks to Holger P. Krekel for this suggestion. Mon Jul 02 11:20:52 2001 Ossama Othman * config.guess: * config.sub: Updated to the latest versions from the GNU FTP site. Mon Jul 02 11:30:20 2001 Irfan Pyarali * ace/Synch_T.i: Since the release() method on the reverse lock calls the simple acquire() method on the real lock, it is assumed that it is a simple acquire/release protocol with the real lock. Therefore, I think all the other methods on the reverse lock tryacquire(), acquire_read(), acquire_write(), tryacquire_read(), tryacquire_write(), and tryacquire_write_upgrade() should not be allowed. This falls in line with the original concept of using reverse locks with regular guards. Thanks to Edan Ayal for pointing this out. Mon Jul 2 11:17:37 2001 Chad Elliott * ace/Profile_Timer.cpp: Cleaned up the conditional macros. Added method bodies for ACE_Profile_Timer::get_rusage() and ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T nor ACE_HAS_GETRUSAGE is defined. * Reverted the reverted changes in this entry. "Fri Jun 29 22:31:56 2001 Balachandran Natarajan ". These changes are ok, I just needed to fix the bug in Profile_Timer.cpp. Mon Jul 2 09:40:45 2001 Chad Elliott * include/makeinclude/platform_aix_ibm.GNU: Add the output filter to the linker to avoid the duplicate symbol warnings on AIX. Mon Jul 2 05:40:54 2001 Douglas C. Schmidt * ace/Logging_Strategy.cpp: Enhanced the code so that it works with ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang and Edan Ayal for reporting this. * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of the size of the SPIPE_Addr to account for the trailing NUL. Thanks to Oren Zeev-Ben-Mordehai for reporting this. * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()" method to check if a refcounted auto ptr is NULL. Thanks to Jenny Kowald for reporting this. * ace/config-macosx.h, * ace/platform_macosx.GNU: Enhanced these files to support MacOSX. Thanks to John Zorko for contributing this. * ace/Synch.h: Fixed the Doxygen documentation for all the removed_ fields, which where somehow messed up. Thanks to Johnny Willemsen for reporting this. Sun Jul 1 11:49:13 2001 Alexander Libman * ace: Enhanced the POSIX and Sun Proactor implementations as follows: . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor . All classes ACE_POSIX_SIG_Asynch_XXXX are removed. POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX classes now. . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...) now calls a new virtual method: int ACE_POSIX_AIOCB_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result). . The strategy of free slot allocation in SIG_Proactor is a bit different from AIOCB and SUN Proactors. The allocate_aio_slot() method is responsible for setting notification information for aio request (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field aio_sigevent.sigev_value.sival_int now contains index of aiocb in the aiocb_list_, not a pointer. . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status, int &return_status, size_t &index, size_t &count) parameter index defines initial slot to scan and the new parameter count tells us maximum number slots to scan. On return: index contains value to start scan next time, count contains remained number of slots. Scanning is performed in "wheel" style to allow all requests be handled with equal priorities. . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for max_number_files to open and tries to setup max_number_files equal to aiocb_max_size_. if we failed than cut off aiocb_max_size_ value to existing max_number_files. . POSIX_Proactor added member int os_id_ and constructor sets up os_id_ (compilation time + run_time function) to know OS(Sun/HP/Linux/...) and version. We need such info for POSIX_SIG_Proactors to take into account the behavior of different OS. . Delivery of simulated/"post_completed" Asynch_Results (Timers, AsynchAccept,Wakeup ...). As both Proactors have no reliable mechanizm for delivery "post_completed" results, so the reliable queue of "post_completed" results was implemented. The new member of AIOCB Proactor ACE_Unbounded_Queue result_queue_ has been added. Also added protected methods to the ACE_POSIX_AIOCB_Proactor. . We had an error in all previous versions (from major ACE 5.1): post_completion (int how_many) does not guarantee that all completions will be delivered to the different threads running event_loop (sometimes several completions could be delivered to the one thread, in another thread performs during long time application_spesific_code ()). Moreover, you can run now Proactor event_loop in any number of threads (more than SIGQUEMAX). Sun Jul 1 11:49:13 2001 Douglas C. Schmidt * examples/Reactor/Proactor: Integrated a test that exercises the support for asynchronous UDP operations. Thanks to Roger Tragin for contributing this. * ace/Synch_T.i: Changed the implementations of all the acquire*() method to call release(). Thanks to Edan Ayal for reporting this. Sat Jun 30 12:44:11 2001 Douglas C. Schmidt * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better support for shutting down the server when a signal occurs. Thanks to Rich Newman for this enhancement.