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