Module: sems Branch: 1.4 Commit: 0ad56907a9844a9632c377715ba38a2c5ebcab6b URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=0ad56907a9844a9632c377715ba38a2c5ebcab6b
Author: Stefan Sayer <[email protected]> Committer: Stefan Sayer <[email protected]> Date: Fri Mar 2 23:46:13 2012 +0100 core: handle exceptions in out-of-dlg messages gracefully --- core/AmSipDispatcher.cpp | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/core/AmSipDispatcher.cpp b/core/AmSipDispatcher.cpp index 12f5435..574ce54 100644 --- a/core/AmSipDispatcher.cpp +++ b/core/AmSipDispatcher.cpp @@ -107,7 +107,7 @@ void AmSipDispatcher::handleSipMsg(AmSipRequest &req) return; } else { - + try { AmSessionFactory* sess_fact = AmPlugIn::instance()->findSessionFactory(req); if(!sess_fact){ @@ -116,5 +116,14 @@ void AmSipDispatcher::handleSipMsg(AmSipRequest &req) } sess_fact->onOoDRequest(req); + } catch (const AmSession::Exception& e) { + AmSipDialog::reply_error(req,e.code, e.reason); + return; + } catch (...) { + ERROR("Server internal Error: unhandled exception while handling out-of-dialog '%s'\n", + req.method.c_str()); + AmSipDialog::reply_error(req,500,SIP_REPLY_SERVER_INTERNAL_ERROR); + return; + } } } _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
