Author: jelmer Date: 2007-09-26 02:06:36 +0000 (Wed, 26 Sep 2007) New Revision: 25347
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25347 Log: Fix param module. Added: branches/4.0-python/source/scripting/python/talloc.c Modified: branches/4.0-python/ branches/4.0-python/source/scripting/python/config.mk branches/4.0-python/source/scripting/python/parammodule.c Changeset: Property changes on: branches/4.0-python ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:file-ids ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/4.0-python/source/scripting/python/config.mk =================================================================== --- branches/4.0-python/source/scripting/python/config.mk 2007-09-26 02:06:32 UTC (rev 25346) +++ branches/4.0-python/source/scripting/python/config.mk 2007-09-26 02:06:36 UTC (rev 25347) @@ -1,4 +1,9 @@ +[SUBSYSTEM::talloc_python] +PRIVATE_DEPENDENCIES = LIBTALLOC LIBPYTHON +OBJ_FILES = talloc.o +PUBLIC_PROTO_HEADER = talloc.h + [PYTHON::python_param] -PRIVATE_DEPENDENCIES = LIBSAMBA-CONFIG +PRIVATE_DEPENDENCIES = LIBSAMBA-CONFIG talloc_python OBJ_FILES = \ parammodule.o Modified: branches/4.0-python/source/scripting/python/parammodule.c =================================================================== --- branches/4.0-python/source/scripting/python/parammodule.c 2007-09-26 02:06:32 UTC (rev 25346) +++ branches/4.0-python/source/scripting/python/parammodule.c 2007-09-26 02:06:36 UTC (rev 25347) @@ -21,43 +21,56 @@ */ #include "includes.h" -#include "scripting/ejs/smbcalls.h" +#include "scripting/python/talloc.h" #include "Python.h" #include "param/param.h" -PyTypeObject noddy_NoddyType; +staticforward PyTypeObject param_ParamFileType; typedef struct { - PyObject_HEAD -} noddy_NoddyObject; + PyObject_HEAD +} param_ParamFileObject; -static PyObject *loadparm_object(void) -{ - PyObject *self = PyObject_New(); - - /* FIXME */ - - return self; -} - static PyObject *param_load(PyObject *self, PyObject *args) { + int ret; char *filename; - PyObject *param; + param_ParamFileObject *param; if (!PyArg_ParseTuple(args, "s:new", &filename)) return NULL; - param = PyObject_New(); + param = PyObject_New(param_ParamFileObject, ¶m_ParamFileType); + ret = param_read(PyMemCtx(), filename); + + if (ret == -1) { + PyErr_SetString(PyExc_TypeError, "reading file failed"); + return NULL; + } + /* FIXME: Add members: * globals * shares */ - return param; + return (PyObject *)param; } +static void +param_dealloc(PyObject* self) +{ + PyObject_Del(self); +} + +static PyTypeObject param_ParamFileType = { + PyObject_HEAD_INIT(NULL) 0, + .tp_name = "ParamFile", + .tp_basicsize = sizeof(param_ParamFileObject), + .tp_dealloc = param_dealloc, +}; + + static PyMethodDef methods[] = { { "ParamFile", (PyCFunction)param_load, METH_VARARGS, NULL}, { NULL, NULL } @@ -65,6 +78,12 @@ PyDoc_STRVAR(param_doc, "Simple wrappers around the smb.conf parsers"); +PyObject *loadparm_object(void) +{ + + return NULL; /* FIXME */ +} + PyMODINIT_FUNC initparam(void) { PyObject *mod = Py_InitModule3("param", methods, param_doc); @@ -72,5 +91,5 @@ return; /* FIXME: Check error code */ - PyModule_AddObject(mod, "default_config", loadparm_object()); + /*PyModule_AddObject(mod, "default_config", loadparm_object());*/ } Added: branches/4.0-python/source/scripting/python/talloc.c =================================================================== --- branches/4.0-python/source/scripting/python/talloc.c 2007-09-26 02:06:32 UTC (rev 25346) +++ branches/4.0-python/source/scripting/python/talloc.c 2007-09-26 02:06:36 UTC (rev 25347) @@ -0,0 +1,30 @@ +/* + Unix SMB/CIFS implementation. + + Helper functions for using talloc and Python together + + Copyright (C) Jelmer Vernooij 2007 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +#include "scripting/ejs/smbcalls.h" +#include "Python.h" +#include "param/param.h" + +TALLOC_CTX *PyMemCtx() { + return talloc_autofree_context(); +}
