summaryrefslogtreecommitdiff
path: root/lib/tdb/pytdb.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2010-09-19 10:42:29 -0700
committerJelmer Vernooij <jelmer@samba.org>2010-09-19 10:42:29 -0700
commit7a59c90189b3b129c4cf9826a45ac5678e66d95b (patch)
treef1224265fcca98e511339e1c307fd7198bc48ea5 /lib/tdb/pytdb.c
parent4c726556784643a3c5860ec716e30cc1c7b99ce1 (diff)
downloadsamba-7a59c90189b3b129c4cf9826a45ac5678e66d95b.tar.gz
samba-7a59c90189b3b129c4cf9826a45ac5678e66d95b.tar.bz2
samba-7a59c90189b3b129c4cf9826a45ac5678e66d95b.zip
pytdb: Make filename argument optional.
Diffstat (limited to 'lib/tdb/pytdb.c')
-rw-r--r--lib/tdb/pytdb.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/tdb/pytdb.c b/lib/tdb/pytdb.c
index 2f0580f1d8..f2638db492 100644
--- a/lib/tdb/pytdb.c
+++ b/lib/tdb/pytdb.c
@@ -77,15 +77,19 @@ static PyObject *PyString_FromTDB_DATA(TDB_DATA data)
static PyObject *py_tdb_open(PyTypeObject *type, PyObject *args, PyObject *kwargs)
{
- char *name;
+ char *name = NULL;
int hash_size = 0, tdb_flags = TDB_DEFAULT, flags = O_RDWR, mode = 0600;
TDB_CONTEXT *ctx;
PyTdbObject *ret;
const char *kwnames[] = { "name", "hash_size", "tdb_flags", "flags", "mode", NULL };
- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|iiii", (char **)kwnames, &name, &hash_size, &tdb_flags, &flags, &mode))
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|siiii", (char **)kwnames, &name, &hash_size, &tdb_flags, &flags, &mode))
return NULL;
+ if (name == NULL) {
+ tdb_flags |= TDB_INTERNAL;
+ }
+
ctx = tdb_open(name, hash_size, tdb_flags, flags, mode);
if (ctx == NULL) {
PyErr_SetFromErrno(PyExc_IOError);
@@ -448,9 +452,11 @@ static PyGetSetDef tdb_object_getsetters[] = {
static PyObject *tdb_object_repr(PyTdbObject *self)
{
- return PyString_FromFormat("Tdb('%s')",
- (tdb_get_flags(self->ctx) & TDB_INTERNAL) ? "<internal>"
- : tdb_name(self->ctx));
+ if (tdb_get_flags(self->ctx) & TDB_INTERNAL) {
+ return PyString_FromString("Tdb(<internal>)");
+ } else {
+ return PyString_FromFormat("Tdb('%s')", tdb_name(self->ctx));
+ }
}
static void tdb_object_dealloc(PyTdbObject *self)