diff --git a/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp index 23c79de4fd36959c27b2aca97a021fe427021390..04ed8e4268405a066fd15d001ebcb2ef49647f3c 100644 --- a/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp +++ b/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp @@ -101,7 +101,7 @@ void AudioZrtpSession::initializeZid (void) { if (_zidFilename.empty()) { - throw ZrtpZidException(); + throw ZrtpZidException("zid filename empty"); } std::string zidCompleteFilename; @@ -131,12 +131,12 @@ void AudioZrtpSession::initializeZid (void) if (remove (zidCompleteFilename.c_str()) !=0) { _debug ("Failed to remove zid file because of: %s", strerror (errno)); - throw ZrtpZidException(); + throw ZrtpZidException("zid file deletion failed"); } if (initialize (zidCompleteFilename.c_str()) < 0) { _debug ("ZRTP initialization failed"); - throw ZrtpZidException(); + throw ZrtpZidException("zid initialization failed"); } return; diff --git a/sflphone-common/src/audio/audiortp/AudioZrtpSession.h b/sflphone-common/src/audio/audiortp/AudioZrtpSession.h index 9d33c2065bd9218721600f36be53834b6c9ad528..8236861cf187fa233c4851455bb54060e87d388d 100644 --- a/sflphone-common/src/audio/audiortp/AudioZrtpSession.h +++ b/sflphone-common/src/audio/audiortp/AudioZrtpSession.h @@ -31,6 +31,7 @@ #define __SFL_AUDIO_ZRTP_SESSION_H__ #include <cstddef> +#include <stdexcept> using std::ptrdiff_t; #include <ccrtp/rtp.h> @@ -46,11 +47,11 @@ class SIPCall; namespace sfl { -class ZrtpZidException: public std::exception +class ZrtpZidException: public std::runtime_error { - virtual const char* what() const throw() { - return "ZRTP ZID initialization failed."; - } + public: + ZrtpZidException (const std::string& str="") : + std::runtime_error("ZRTP ZID initialization failed." + str) {} }; // class AudioZrtpSession : public ost::TimerPort, public ost::SymmetricZRTPSession, public AudioRtpRecordHandler