diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-05 14:15:50 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-05 14:15:50 +0000 |
| commit | bdb1a25ca71f6f81a504f7ad694931afbdb6c007 (patch) | |
| tree | b87c6a550d681b76e00180a548f74e31f21b8890 /src/DHTInteractionCommand.cc | |
| parent | 20621d011da3bf96560557d82919911805e0892a (diff) | |
2008-02-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Catch exception inside DHTMessageReceiver::receiveMessage().
Log unknown message.
* src/DHTMessageReceiver.{h, cc}
* src/DHTMessageFactory.h
* src/DHTMessageFactoryImpl.{h, cc}
* src/DHTMessageTracker.cc (handleTimeout): Catch and handle exception.
* src/DHTInteractionCommand.cc
* src/DHTUnknownMessage.{h, cc}
* test/DHTUnknownMessageTest.cc
* test/MockDHTMessageFactory.h
Diffstat (limited to 'src/DHTInteractionCommand.cc')
| -rw-r--r-- | src/DHTInteractionCommand.cc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/DHTInteractionCommand.cc b/src/DHTInteractionCommand.cc index 0b4b0323..068fdafe 100644 --- a/src/DHTInteractionCommand.cc +++ b/src/DHTInteractionCommand.cc @@ -76,16 +76,14 @@ bool DHTInteractionCommand::execute() _taskQueue->executeTask(); - for(size_t i = 0; i < 20 && _readCheckSocket->isReadable(0); ++i) { - try { - _receiver->receiveMessage(); - } catch(RecoverableException* e) { - logger->error(EX_EXCEPTION_CAUGHT, e); - delete e; + for(size_t i = 0; i < 20; ++i) { + SharedHandle<DHTMessage> m = _receiver->receiveMessage(); + if(m.isNull()) { + break; } } + _receiver->handleTimeout(); try { - _receiver->handleTimeout(); _dispatcher->sendMessages(); } catch(RecoverableException* e) { logger->error(EX_EXCEPTION_CAUGHT, e); |
