raven-rhel6/rpm/rpm-4.8.x-Python-reloadConfig.patch
2024-02-21 20:14:44 +06:00

50 lines
1.4 KiB
Diff

From f07ab5c1afa9b0b7105082a8617ec6a7657fc27e Mon Sep 17 00:00:00 2001
From: Panu Matilainen <pmatilai@redhat.com>
Date: Thu, 1 Sep 2011 08:31:04 +0300
Subject: [PATCH] Add method to reset + reload rpm configuration to python
bindings
---
python/rpmmodule.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/python/rpmmodule.c b/python/rpmmodule.c
index d3e664a..2894882 100644
--- a/python/rpmmodule.c
+++ b/python/rpmmodule.c
@@ -114,6 +114,22 @@ static PyObject * doLog(PyObject * self, PyObject * args, PyObject *kwds)
Py_RETURN_NONE;
}
+static PyObject * reloadConfig(PyObject * self, PyObject * args, PyObject *kwds)
+{
+ char * target = NULL;
+ char * kwlist[] = { "target", NULL };
+ int rc;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwds, "|s", kwlist, &target))
+ return NULL;
+
+ rpmFreeMacros(NULL);
+ rpmFreeRpmrc();
+ rc = rpmReadConfigFiles(NULL, target) ;
+
+ return PyBool_FromLong(rc == 0);
+}
+
static PyMethodDef rpmModuleMethods[] = {
{ "addMacro", (PyCFunction) rpmmacro_AddMacro, METH_VARARGS|METH_KEYWORDS,
NULL },
@@ -148,6 +164,8 @@ static PyMethodDef rpmModuleMethods[] = {
NULL },
{ "setStats", (PyCFunction) setStats, METH_O,
NULL },
+ { "reloadConfig", (PyCFunction) reloadConfig, METH_VARARGS|METH_KEYWORDS,
+ NULL },
{ NULL }
} ;
--
1.7.4.4