aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2014-02-23 15:36:21 +0100
committerVincent Richard <[email protected]>2014-02-23 15:36:21 +0100
commit87807e218690e46330bad677280735a344134cf3 (patch)
treeabaa87be66e31c95c2c50e3b7eaad41d7af5f7fc /src
parentFixed documentation. (diff)
parentMake serviceFactory::create throw instead of dying for invalid protocols. (diff)
downloadvmime-87807e218690e46330bad677280735a344134cf3.tar.gz
vmime-87807e218690e46330bad677280735a344134cf3.zip
Merge pull request #70 from kisli/pr/69
Make serviceFactory::create throw instead of dying for invalid protocols.
Diffstat (limited to 'src')
-rw-r--r--src/vmime/net/serviceFactory.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vmime/net/serviceFactory.cpp b/src/vmime/net/serviceFactory.cpp
index bbc9944a..b6f90eb2 100644
--- a/src/vmime/net/serviceFactory.cpp
+++ b/src/vmime/net/serviceFactory.cpp
@@ -60,7 +60,12 @@ shared_ptr <service> serviceFactory::create
(shared_ptr <session> sess, const string& protocol,
shared_ptr <security::authenticator> auth)
{
- return (getServiceByProtocol(protocol)->create(sess, auth));
+ shared_ptr <const registeredService> rserv = getServiceByProtocol(protocol);
+
+ if (!rserv)
+ throw exceptions::no_factory_available("No service is registered for protocol '" + protocol + "'.");
+
+ return rserv->create(sess, auth);
}