From: Kees Monshouwer Date: Sat, 17 May 2014 22:37:56 +0000 (+0200) Subject: catch non-fatal exceptions in control listener loop X-Git-Tag: rec-3.6.0-rc1~22^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=eb943953d2795a273b4426006f01852ed5d41bdf;p=pdns catch non-fatal exceptions in control listener loop --- diff --git a/pdns/dynlistener.cc b/pdns/dynlistener.cc index 1432da2e0..ad556ee83 100644 --- a/pdns/dynlistener.cc +++ b/pdns/dynlistener.cc @@ -330,15 +330,29 @@ void DynListener::theListener() continue; } - parts[0] = toUpper( parts[0] ); - if(s_funcdb.count(parts[0])) - sendlines((*(s_funcdb[parts[0]].func))(parts,d_ppid)); - else if (parts[0] == "HELP") - sendlines(getHelp()); - else if(s_restfunc) - sendlines((*s_restfunc)(parts,d_ppid)); - else - sendlines("Unknown command: '"+parts[0]+"'"); + try { + parts[0] = toUpper( parts[0] ); + if(s_funcdb.count(parts[0])) + sendlines((*(s_funcdb[parts[0]].func))(parts,d_ppid)); + else if (parts[0] == "HELP") + sendlines(getHelp()); + else if(s_restfunc) + sendlines((*s_restfunc)(parts,d_ppid)); + else + sendlines("Unknown command: '"+parts[0]+"'"); + } + catch(PDNSException &AE) { + L<