summaryrefslogtreecommitdiffstats
path: root/rpmmodule
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>1999-05-08 15:20:08 +0000
committerErik Troan <ewt@redhat.com>1999-05-08 15:20:08 +0000
commite5b21144b27327c0e742a3bfc1778a092cf556b4 (patch)
tree2950dee06568c47a61b0975f6d2e887c9ccc4346 /rpmmodule
parent646c2e7abc9b085832a286d91bcb5e01ac47b569 (diff)
downloadanaconda-e5b21144b27327c0e742a3bfc1778a092cf556b4.tar.gz
anaconda-e5b21144b27327c0e742a3bfc1778a092cf556b4.tar.xz
anaconda-e5b21144b27327c0e742a3bfc1778a092cf556b4.zip
added scriptFd to transactions
Diffstat (limited to 'rpmmodule')
-rw-r--r--rpmmodule/rpmmodule.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/rpmmodule/rpmmodule.c b/rpmmodule/rpmmodule.c
index 253f81437..3386cc45b 100644
--- a/rpmmodule/rpmmodule.c
+++ b/rpmmodule/rpmmodule.c
@@ -15,9 +15,6 @@ typedef struct hdrObject_s hdrObject;
/* Prototypes */
-static void rpmtransDealloc(PyObject * o);
-static PyObject * rpmtransGetAttr(PyObject * o, char * name);
-
static void rpmdbDealloc(rpmdbObject * s);
static PyObject * rpmdbGetAttr(rpmdbObject * s, char * name);
static PyObject * rpmdbFirst(rpmdbObject * s, PyObject * args);
@@ -41,6 +38,10 @@ static PyObject * rpmtransAdd(rpmtransObject * s, PyObject * args);
static PyObject * rpmtransDepCheck(rpmtransObject * s, PyObject * args);
static PyObject * rpmtransRun(rpmtransObject * s, PyObject * args);
static PyObject * rpmtransOrder(rpmtransObject * s, PyObject * args);
+static void rpmtransDealloc(PyObject * o);
+static PyObject * rpmtransGetAttr(rpmtransObject * o, char * name);
+static PyObject * rpmtransSetAttr(rpmtransObject * o, char * name,
+ PyObject * val);
/* Types */
@@ -63,6 +64,7 @@ struct rpmtransObject_s {
rpmdbObject * dbo;
rpmTransactionSet ts;
PyObject * keyList; /* keeps reference counts correct */
+ FD_t scriptFd;
} ;
struct hdrObject_s {
@@ -141,7 +143,7 @@ static PyTypeObject rpmtransType = {
(destructor) rpmtransDealloc, /* tp_dealloc */
0, /* tp_print */
(getattrfunc) rpmtransGetAttr, /* tp_getattr */
- 0, /* tp_setattr */
+ (setattrfunc) rpmtransSetAttr, /* tp_setattr */
0, /* tp_compare */
0, /* tp_repr */
0, /* tp_as_number */
@@ -790,11 +792,26 @@ static void rpmtransDealloc(PyObject * o) {
rpmtransFree(trans->ts);
if (trans->dbo) Py_DECREF(trans->dbo);
+ if (trans->scriptFd) fdClose(trans->scriptFd);
Py_DECREF(trans->keyList);
}
-static PyObject * rpmtransGetAttr(PyObject * o, char * name) {
- return Py_FindMethod(rpmtransMethods, o, name);
+static PyObject * rpmtransGetAttr(rpmtransObject * o, char * name) {
+ return Py_FindMethod(rpmtransMethods, (PyObject *) o, name);
+}
+
+static PyObject * rpmtransSetAttr(rpmtransObject * o, char * name,
+ PyObject * val) {
+ int i;
+
+ if (!strcmp(name, "scriptFd")) {
+ if (!PyArg_Parse(val, "d", &i)) return NULL;
+ o->scriptFd = fdDup(i);
+
+ rpmtransSetScriptFd(o->ts, o->scriptFd);
+ }
+
+ return NULL;
}
static PyObject * rpmtransAdd(rpmtransObject * s, PyObject * args) {