Xfr single soa handling
This solves two issues:
-
when a IXFR response contains just one SOA (= up-to-date response), Knot is not able to handle it. With this patch, Knot handles and logs it correctly. (This issue is not severe since Knot normally checks with SOA query first, thus not asking for IXFR in up-to-date case.)
-
when a IXFR response (possibly, but not only AXFR-styled) is divided into messages such way that the first message contains just the leading SOA, Knot was misinterpreting it in some cases. This patch thoroughly inspects what has been received and decides how to handle it.
The first commit is just a little refactoring, keeping Knot functionality unchanged. The second commit does all the change.
Please check the code, it seems to me the code is not very elegant. Can it be simplified/improved?