// Add the exceptions to the module
- po_EmptyLabel = PyErr_NewException("pydnspp.EmptyLabel", NULL, NULL);
- PyObjectContainer(po_EmptyLabel).installToModule(mod, "EmptyLabel");
+ try {
+ po_EmptyLabel = PyErr_NewException("pydnspp.EmptyLabel", NULL, NULL);
+ PyObjectContainer(po_EmptyLabel).installToModule(mod, "EmptyLabel");
- po_TooLongName = PyErr_NewException("pydnspp.TooLongName", NULL, NULL);
- PyObjectContainer(po_TooLongName).installToModule(mod, "TooLongName");
+ po_TooLongName = PyErr_NewException("pydnspp.TooLongName", NULL, NULL);
+ PyObjectContainer(po_TooLongName).installToModule(mod, "TooLongName");
- po_TooLongLabel = PyErr_NewException("pydnspp.TooLongLabel", NULL, NULL);
- PyObjectContainer(po_TooLongLabel).installToModule(mod, "TooLongLabel");
+ po_TooLongLabel = PyErr_NewException("pydnspp.TooLongLabel", NULL, NULL);
+ PyObjectContainer(po_TooLongLabel).installToModule(mod, "TooLongLabel");
- po_BadLabelType = PyErr_NewException("pydnspp.BadLabelType", NULL, NULL);
- PyObjectContainer(po_BadLabelType).installToModule(mod, "BadLabelType");
+ po_BadLabelType = PyErr_NewException("pydnspp.BadLabelType", NULL, NULL);
+ PyObjectContainer(po_BadLabelType).installToModule(mod, "BadLabelType");
- po_BadEscape = PyErr_NewException("pydnspp.BadEscape", NULL, NULL);
- PyObjectContainer(po_BadEscape).installToModule(mod, "BadEscape");
+ po_BadEscape = PyErr_NewException("pydnspp.BadEscape", NULL, NULL);
+ PyObjectContainer(po_BadEscape).installToModule(mod, "BadEscape");
- po_IncompleteName = PyErr_NewException("pydnspp.IncompleteName", NULL,
- NULL);
- PyObjectContainer(po_IncompleteName).installToModule(mod, "IncompleteName");
+ po_IncompleteName = PyErr_NewException("pydnspp.IncompleteName", NULL,
+ NULL);
+ PyObjectContainer(po_IncompleteName).installToModule(mod, "IncompleteName");
- po_InvalidBufferPosition =
- PyErr_NewException("pydnspp.InvalidBufferPosition", NULL, NULL);
- PyObjectContainer(po_InvalidBufferPosition).installToModule(
- mod, "InvalidBufferPosition");
+ po_InvalidBufferPosition =
+ 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");
+ // 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: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (false);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in Name initialization");
+ return (false);
+ }
return (true);
}
bool
initModulePart_Question(PyObject* mod) {
- if (!initClass(question_type, "Question", mod)) {
- return (false);
- }
-
- Py_INCREF(&question_type);
- return (true);
+ return (initClass(question_type, "Question", mod));
}
bool
}
// Add the exceptions to the class
- po_InvalidRdataLength = PyErr_NewException("pydnspp.InvalidRdataLength",
- NULL, NULL);
- PyObjectContainer(po_InvalidRdataLength).installToModule(
- mod, "InvalidRdataLength");
-
- po_InvalidRdataText = PyErr_NewException("pydnspp.InvalidRdataText",
- NULL, NULL);
- PyObjectContainer(po_InvalidRdataText).installToModule(
- mod, "InvalidRdataText");
-
- po_CharStringTooLong = PyErr_NewException("pydnspp.CharStringTooLong",
- NULL, NULL);
- PyObjectContainer(po_CharStringTooLong).installToModule(
- mod, "CharStringTooLong");
+ try {
+ po_InvalidRdataLength = PyErr_NewException("pydnspp.InvalidRdataLength",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidRdataLength).installToModule(
+ mod, "InvalidRdataLength");
+
+ po_InvalidRdataText = PyErr_NewException("pydnspp.InvalidRdataText",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidRdataText).installToModule(
+ mod, "InvalidRdataText");
+
+ po_CharStringTooLong = PyErr_NewException("pydnspp.CharStringTooLong",
+ NULL, NULL);
+ PyObjectContainer(po_CharStringTooLong).installToModule(
+ mod, "CharStringTooLong");
+ } catch (const std::exception& ex) {
+ const std::string ex_what =
+ "Unexpected failure in Rdata initialization: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (false);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in Rdata initialization");
+ return (false);
+ }
return (true);
}
return (false);
}
- po_InvalidRRClass = PyErr_NewException("pydnspp.InvalidRRClass",
- NULL, NULL);
- PyObjectContainer(po_InvalidRRClass).installToModule(
- mod, "InvalidRRClass");
+ try {
+ po_InvalidRRClass = PyErr_NewException("pydnspp.InvalidRRClass",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidRRClass).installToModule(
+ mod, "InvalidRRClass");
- po_IncompleteRRClass = PyErr_NewException("pydnspp.IncompleteRRClass",
- NULL, NULL);
- PyObjectContainer(po_IncompleteRRClass).installToModule(
- mod, "IncompleteRRClass");
+ po_IncompleteRRClass = PyErr_NewException("pydnspp.IncompleteRRClass",
+ NULL, NULL);
+ PyObjectContainer(po_IncompleteRRClass).installToModule(
+ mod, "IncompleteRRClass");
+ } catch (const std::exception& ex) {
+ const std::string ex_what =
+ "Unexpected failure in RRClass initialization: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (false);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in RRClass initialization");
+ return (false);
+ }
return (true);
}
return (false);
}
- po_EmptyRRset = PyErr_NewException("pydnspp.EmptyRRset", NULL, NULL);
- PyObjectContainer(po_EmptyRRset).installToModule(mod, "EmptyRRset");
+ try {
+ po_EmptyRRset = PyErr_NewException("pydnspp.EmptyRRset", NULL, NULL);
+ PyObjectContainer(po_EmptyRRset).installToModule(mod, "EmptyRRset");
+ } catch (const std::exception& ex) {
+ const std::string ex_what =
+ "Unexpected failure in RRset initialization: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (false);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in RRset initialization");
+ return (false);
+ }
return (true);
}
return (false);
}
- po_InvalidRRTTL = PyErr_NewException("pydnspp.InvalidRRTTL", NULL, NULL);
- PyObjectContainer(po_InvalidRRTTL).installToModule(mod, "InvalidRRTTL");
+ try {
+ po_InvalidRRTTL = PyErr_NewException("pydnspp.InvalidRRTTL",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidRRTTL).installToModule(mod,
+ "InvalidRRTTL");
- po_IncompleteRRTTL = PyErr_NewException("pydnspp.IncompleteRRTTL",
- NULL, NULL);
- PyObjectContainer(po_IncompleteRRTTL).installToModule(
- mod, "IncompleteRRTTL");
+ po_IncompleteRRTTL = PyErr_NewException("pydnspp.IncompleteRRTTL",
+ NULL, NULL);
+ PyObjectContainer(po_IncompleteRRTTL).installToModule(
+ mod, "IncompleteRRTTL");
+ } catch (const std::exception& ex) {
+ const std::string ex_what =
+ "Unexpected failure in RRTTL initialization: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (false);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in RRTTL initialization");
+ return (false);
+ }
return (true);
}
return (false);
}
- po_InvalidRRType = PyErr_NewException("pydnspp.InvalidRRType", NULL, NULL);
- PyObjectContainer(po_InvalidRRType).installToModule(mod, "InvalidRRType");
+ try {
+ po_InvalidRRType = PyErr_NewException("pydnspp.InvalidRRType",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidRRType).installToModule(mod,
+ "InvalidRRType");
- po_IncompleteRRType = PyErr_NewException("pydnspp.IncompleteRRType",
- NULL, NULL);
- PyObjectContainer(po_IncompleteRRType).installToModule(
- mod, "IncompleteRRType");
+ po_IncompleteRRType = PyErr_NewException("pydnspp.IncompleteRRType",
+ NULL, NULL);
+ PyObjectContainer(po_IncompleteRRType).installToModule(
+ mod, "IncompleteRRType");
+ } catch (const std::exception& ex) {
+ const std::string ex_what =
+ "Unexpected failure in RRType initialization: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (false);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in RRType initialization");
+ return (false);
+ }
return (true);
}
bool
initModulePart_Serial(PyObject* mod) {
- if (!initClass(serial_type, "Serial", mod)) {
- return (false);
- }
-
- return (true);
+ return (initClass(serial_type, "Serial", mod));
}
bool
bool
initModulePart_TSIG(PyObject* mod) {
- if (!initClass(tsig_type, "TSIG", mod)) {
- return (false);
- }
-
- return (true);
+ return (initClass(tsig_type, "TSIG", mod));
}
bool
return (NULL);
}
- // Add the exceptions to the class
- po_IscException = PyErr_NewException("pydnspp.IscException", NULL, NULL);
- PyObjectContainer(po_IscException).installToModule(mod, "IscException");
-
- po_InvalidOperation = PyErr_NewException("pydnspp.InvalidOperation",
- NULL, NULL);
- PyObjectContainer(po_InvalidOperation).installToModule(
- mod, "InvalidOperation");
-
- po_InvalidParameter = PyErr_NewException("pydnspp.InvalidParameter",
- NULL, NULL);
- PyObjectContainer(po_InvalidParameter).installToModule(
- mod, "InvalidParameter");
+ try {
+ // Add the exceptions to the class
+ po_IscException = PyErr_NewException("pydnspp.IscException", NULL, NULL);
+ PyObjectContainer(po_IscException).installToModule(mod, "IscException");
+
+ po_InvalidOperation = PyErr_NewException("pydnspp.InvalidOperation",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidOperation).installToModule(
+ mod, "InvalidOperation");
+
+ po_InvalidParameter = PyErr_NewException("pydnspp.InvalidParameter",
+ NULL, NULL);
+ PyObjectContainer(po_InvalidParameter).installToModule(
+ mod, "InvalidParameter");
+ } catch (const std::exception& ex) {
+ const std::string ex_what =
+ "Unexpected failure in pydnspp initialization: " +
+ std::string(ex.what());
+ PyErr_SetString(po_IscException, ex_what.c_str());
+ return (NULL);
+ } catch (...) {
+ PyErr_SetString(PyExc_SystemError,
+ "Unexpected failure in pydnspp initialization");
+ return (NULL);
+ }
// for each part included above, we call its specific initializer