[complement-svn] SF.net SVN: complement: [1705] trunk/complement/explore
Status: Pre-Alpha
Brought to you by:
complement
From: <com...@us...> - 2007-08-26 12:07:52
|
Revision: 1705 http://complement.svn.sourceforge.net/complement/?rev=1705&view=rev Author: complement Date: 2007-08-24 22:59:33 -0700 (Fri, 24 Aug 2007) Log Message: ----------- use ostream and trace flags from EvManager for error reports instead of cerr; library version 4.6.3 Modified Paths: -------------- trunk/complement/explore/include/stem/EvManager.h trunk/complement/explore/lib/stem/ChangeLog trunk/complement/explore/lib/stem/Makefile.inc trunk/complement/explore/lib/stem/NetTransport.cc Modified: trunk/complement/explore/include/stem/EvManager.h =================================================================== --- trunk/complement/explore/include/stem/EvManager.h 2007-08-23 17:34:23 UTC (rev 1704) +++ trunk/complement/explore/include/stem/EvManager.h 2007-08-25 05:59:33 UTC (rev 1705) @@ -262,6 +262,8 @@ friend class Names; friend class NetTransportMgr; + friend class NetTransport_base; + friend class NetTransport; }; } // namespace stem Modified: trunk/complement/explore/lib/stem/ChangeLog =================================================================== --- trunk/complement/explore/lib/stem/ChangeLog 2007-08-23 17:34:23 UTC (rev 1704) +++ trunk/complement/explore/lib/stem/ChangeLog 2007-08-25 05:59:33 UTC (rev 1705) @@ -1,3 +1,10 @@ +2007-08-25 Petr Ovtchenkov <pt...@is...> + + * EvManager.h, NetTransport.cc: use ostream and trace flags + from EvManager for error reports instead of cerr; + + * libstem: library version 4.6.3 + 2007-08-23 Petr Ovtchenkov <pt...@is...> * NetTransport.h: inhibit copy of NetTransportMgr explicitly; Modified: trunk/complement/explore/lib/stem/Makefile.inc =================================================================== --- trunk/complement/explore/lib/stem/Makefile.inc 2007-08-23 17:34:23 UTC (rev 1704) +++ trunk/complement/explore/lib/stem/Makefile.inc 2007-08-25 05:59:33 UTC (rev 1705) @@ -1,9 +1,9 @@ -# -*- Makefile -*- Time-stamp: <07/07/12 00:52:43 ptr> +# -*- Makefile -*- Time-stamp: <07/08/25 09:58:31 ptr> LIBNAME = stem MAJOR = 4 MINOR = 6 -PATCH = 2 +PATCH = 3 SRC_CC = _EventHandler.cc NetTransport.cc EvManager.cc EvPack.cc crc.cc \ Names.cc Cron.cc Modified: trunk/complement/explore/lib/stem/NetTransport.cc =================================================================== --- trunk/complement/explore/lib/stem/NetTransport.cc 2007-08-23 17:34:23 UTC (rev 1704) +++ trunk/complement/explore/lib/stem/NetTransport.cc 2007-08-25 05:59:33 UTC (rev 1705) @@ -2,7 +2,7 @@ /* * - * Copyright (c) 1997-1999, 2002, 2003, 2005, 2006 + * Copyright (c) 1997-1999, 2002, 2003, 2005-2007 * Petr Ovtchenkov * * Copyright (c) 1999-2001 @@ -115,7 +115,17 @@ } if ( buf[0] != EDS_MAGIC ) { - cerr << "EDS Magic fail" << endl; + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " StEM Magic fail (" + << net->rdbuf()->inet_addr() << ":" << net->rdbuf()->port() << ")" + << endl; + } + } + catch ( ... ) { + } + NetTransport_base::close(); return false; } @@ -131,14 +141,33 @@ uint32_t sz = from_net( buf[18] ); if ( sz >= EDS_MSG_LIMIT ) { - cerr << "EDS Message size too big: " << sz << endl; + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " StEM Message size too big: " << sz + << " (" << net->rdbuf()->inet_addr() << ":" << net->rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } NetTransport_base::close(); return false; } adler32_type adler = adler32( (unsigned char *)buf, sizeof(uint32_t) * 19 ); if ( adler != from_net( buf[19] ) ) { - cerr << "EDS Adler-32 fail" << endl; + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " StEM Adler-32 fail" + << " (" << net->rdbuf()->inet_addr() << ":" << net->rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } + NetTransport_base::close(); return false; } @@ -169,7 +198,6 @@ dst._xnet_pack( reinterpret_cast<char *>(buf + 2) ); src._xnet_pack( reinterpret_cast<char *>(buf + 9) ); - // MT_IO_REENTRANT_W( *net ) MT_IO_LOCK_W( *net ) buf[16] = to_net( ++_count ); @@ -237,10 +265,31 @@ } } catch ( runtime_error& err ) { + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " " << err.what() + << " (" << s.rdbuf()->inet_addr() << ":" << s.rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } + s.close(); - cerr << err.what() << endl; } catch ( ... ) { + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " unknown exception" + << " (" << s.rdbuf()->inet_addr() << ":" << s.rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } + s.close(); } } @@ -269,9 +318,29 @@ } } catch ( ios_base::failure& ex ) { - cerr << ex.what() << endl; + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " " << ex.what() + << " (" << s.rdbuf()->inet_addr() << ":" << s.rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } } catch ( ... ) { + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " unknown exception" + << " (" << s.rdbuf()->inet_addr() << ":" << s.rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } + s.close(); } } @@ -332,10 +401,28 @@ } } catch ( runtime_error& err ) { - cerr << err.what() << endl; + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " " << err.what() + << " (" << _channel.rdbuf()->inet_addr() << ":" << _channel.rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } } catch ( ... ) { - // cerr << __FILE__ << ":" << __LINE__ << endl; + try { + xmt::scoped_lock lk(manager()->_lock_tr); + if ( manager()->_trs != 0 && manager()->_trs->good() && (manager()->_trflags & EvManager::tracefault) ) { + *manager()->_trs << __FILE__ << ":" << __LINE__ << " unknown exception" + << " (" << _channel.rdbuf()->inet_addr() << ":" << _channel.rdbuf()->port() + << ")" << endl; + } + } + catch ( ... ) { + } } return badaddr; } @@ -344,6 +431,7 @@ void NetTransportMgr::close() { _channel.rdbuf()->shutdown( sock_base::stop_in | sock_base::stop_out ); + // _channel.rdbuf()->shutdown( sock_base::stop_in ); NetTransport_base::close(); // _channel.close(); join(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |