ports/sysutils/bareos19-server/files/patch-core-src-plugins-dird_python-dir.cc
2020-12-27 17:34:40 +00:00

61 lines
1.4 KiB
C++

--- core/src/plugins/dird/python-dir.cc 2020-01-31 11:21:18.000000000 -0500
+++ core/src/plugins/dird/python-dir.cc 2020-01-31 15:50:39.024455000 -0500
@@ -41,6 +41,13 @@
#error "Need at least Python version 2.6 or newer"
#endif
+#if (PY_VERSION_HEX > 0x03050000)
+#define PyInt_AsLong PyLong_AsLong
+#define PyInt_FromLong PyLong_FromLong
+#define PyString_AsString PyUnicode_AsUTF8
+#define PyString_FromString PyUnicode_FromString
+#endif
+
#include "python-dir.h"
#include "lib/edit.h"
@@ -121,6 +128,20 @@
*/
static PyThreadState* mainThreadState;
+#if (PY_VERSION_HEX > 0x03050000)
+static struct PyModuleDef BareosDIRModuleDef = {
+ PyModuleDef_HEAD_INIT,
+ "bareosdir",
+ NULL,
+ -1,
+ BareosDIRMethods,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+};
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -660,7 +681,11 @@
/*
* Make our callback methods available for Python.
*/
+#if (PY_VERSION_HEX > 0x03050000)
+ p_ctx->pInstance = PyModule_Create(&BareosDIRModuleDef);
+#else
p_ctx->pInstance = Py_InitModule("bareosdir", BareosDIRMethods);
+#endif
}
/*
@@ -939,7 +964,11 @@
char* value;
ctx = PyGetbpContext(pyCtx);
+#if (PY_VERSION_HEX > 0x03050000)
+ value = strdup(PyString_AsString(pyValue));
+#else
value = PyString_AsString(pyValue);
+#endif
if (value) {
retval = bfuncs->setBareosValue(ctx, (bwDirVariable)var, value);
}