]> granicus.if.org Git - pdns/commit
pdns-recursor: properly handle exceptions thrown from lua-recursor4
authorRafael Buchbinder <r-bk@users.noreply.github.com>
Wed, 17 Oct 2018 06:48:28 +0000 (09:48 +0300)
committerRafael Buchbinder <r-bk@users.noreply.github.com>
Wed, 17 Oct 2018 08:21:36 +0000 (11:21 +0300)
commit1365807195bf3a2d14b8c5559b456a2e0215da43
tree907a487cc51ede9c5cb857d152a906b08522a8f6
parent5bddfdd2439a27f3623bdffdba917bb65496f46d
pdns-recursor: properly handle exceptions thrown from lua-recursor4

directResolve function is used by lua-recursor4 in various callbacks. As
a result an exception thrown from this function is caught in generic
exception handlers at the end of startDoResolve (pdns_recursor).
Specifically, ImmediateServFailException is caught in the catch-all
exception handler, which obscures the origin of the error.

This commit adds handling of all exceptions inside directResolve and
converts them to error code (-1). This way, an exception in this
function is handled properly in startDoResolve and ServFail is sent
downstream.

To clarify, in case of exception the return DNSRecord vector is cleared
to make sure that old behavior is preserved, when in case of exception
the vector was not referenced in any way.
pdns/syncres.cc