#include <Python.h>
#include <structmember.h>
+#include <dns/exceptions.h>
#include <dns/message.h>
#include <dns/opcode.h>
#include <dns/tsig.h>
PyErr_NewException("pydnspp.InvalidMessageUDPSize", NULL, NULL);
PyObjectContainer(po_InvalidMessageUDPSize).installToModule(
mod, "InvalidMessageUDPSize");
+ po_DNSMessageFORMERR =
+ PyErr_NewException("pydnspp.DNSMessageFORMERR",
+ po_DNSProtocolError, NULL);
+ PyObjectContainer(po_DNSMessageFORMERR).installToModule(
+ mod, "DNSMessageFORMERR");
po_DNSMessageBADVERS =
- PyErr_NewException("pydnspp.DNSMessageBADVERS", NULL, NULL);
+ PyErr_NewException("pydnspp.DNSMessageBADVERS",
+ po_DNSProtocolError, NULL);
PyObjectContainer(po_DNSMessageBADVERS).installToModule(
mod, "DNSMessageBADVERS");
po_UnknownNSEC3HashAlgorithm =
try {
po_NameParserException =
PyErr_NewException("pydnspp.NameParserException",
- po_IscException, NULL);
+ po_DNSTextError, NULL);
PyObjectContainer(po_NameParserException)
.installToModule(mod, "NameParserException");
PyErr_NewException("pydnspp.InvalidBufferPosition", NULL, NULL);
PyObjectContainer(po_InvalidBufferPosition).installToModule(
mod, "InvalidBufferPosition");
-
- // This one could have gone into the message_python.cc file, but is
- // already needed here.
- po_DNSMessageFORMERR = PyErr_NewException("pydnspp.DNSMessageFORMERR",
- NULL, NULL);
- PyObjectContainer(po_DNSMessageFORMERR).installToModule(
- mod, "DNSMessageFORMERR");
} catch (const std::exception& ex) {
const std::string ex_what =
"Unexpected failure in Name initialization: " +
po_InvalidOperation = PyErr_NewException("pydnspp.InvalidOperation",
po_IscException, NULL);
PyObjectContainer(po_InvalidOperation)
- .installToModule(mod, "InvalidOperation");
+ .installToModule(mod, "InvalidOperation");
po_InvalidParameter = PyErr_NewException("pydnspp.InvalidParameter",
po_IscException, NULL);
PyObjectContainer(po_InvalidParameter)
- .installToModule(mod, "InvalidParameter");
+ .installToModule(mod, "InvalidParameter");
+
+ // Add DNS exceptions
+ po_DNSException = PyErr_NewException("pydnspp.DNSException",
+ po_IscException, NULL);
+ PyObjectContainer(po_DNSException)
+ .installToModule(mod, "DNSException");
+
+ po_DNSTextError = PyErr_NewException("pydnspp.DNSTextError",
+ po_DNSException, NULL);
+ PyObjectContainer(po_DNSTextError)
+ .installToModule(mod, "DNSTextError");
+
+ po_DNSProtocolError = PyErr_NewException("pydnspp.DNSProtocolError",
+ po_DNSException, NULL);
+ PyObjectContainer(po_DNSProtocolError)
+ .installToModule(mod, "DNSProtocolError");
+
} catch (const std::exception& ex) {
const std::string ex_what =
"Unexpected failure in pydnspp initialization: " +