From: John Mulligan Date: Sun, 24 Apr 2022 12:17:53 +0000 (-0400) Subject: lib/smbconf: add drop method to SMBConf X-Git-Tag: talloc-2.3.4~235 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff603de514b0b6dc654d6b3465df6ef9552c7e3c;p=thirdparty%2Fsamba.git lib/smbconf: add drop method to SMBConf Add a drop method wrapping smbconf_drop. Signed-off-by: John Mulligan Reviewed-by: Jeremy Allison Reviewed-by: Douglas Bagnall --- diff --git a/lib/smbconf/pysmbconf.c b/lib/smbconf/pysmbconf.c index b49673c1eb4..bf1540bbb50 100644 --- a/lib/smbconf/pysmbconf.c +++ b/lib/smbconf/pysmbconf.c @@ -296,6 +296,19 @@ static PyObject *obj_create_share(py_SMBConf_Object * self, PyObject * args) Py_RETURN_NONE; } +static PyObject *obj_drop(py_SMBConf_Object * self, + PyObject * Py_UNUSED(ignored)) +{ + sbcErr err; + + err = smbconf_drop(self->conf_ctx); + if (err != SBC_ERR_OK) { + py_raise_SMBConfError(err); + return NULL; + } + Py_RETURN_NONE; +} + PyDoc_STRVAR(obj_requires_messaging_doc, "requires_messaging() -> bool\n" "\n" @@ -331,6 +344,10 @@ PyDoc_STRVAR(obj_create_share_doc, "Create a new empty share in the configuration. The share\n" "name must not exist or an error will be raised.\n"); +PyDoc_STRVAR(obj_drop_doc, +"drop() -> None\n" +"Drop the entire configuration, resetting it to an empty state.\n"); + static PyMethodDef py_smbconf_obj_methods[] = { { "requires_messaging", (PyCFunction) obj_requires_messaging, METH_NOARGS, obj_requires_messaging_doc }, @@ -344,6 +361,8 @@ static PyMethodDef py_smbconf_obj_methods[] = { obj_get_config_doc }, { "create_share", (PyCFunction) obj_create_share, METH_VARARGS, obj_create_share_doc }, + { "drop", (PyCFunction) obj_drop, METH_NOARGS, + obj_drop_doc }, { 0 }, }; diff --git a/python/samba/tests/smbconf.py b/python/samba/tests/smbconf.py index 749a3eb6d8e..80e0d55984d 100644 --- a/python/samba/tests/smbconf.py +++ b/python/samba/tests/smbconf.py @@ -131,6 +131,7 @@ class SMBConfTests(samba.tests.TestCase): def test_create_share(self): sconf = self.s3smbconf.init_reg(None) + sconf.drop() sconf.create_share("alice") sconf.create_share("bob") names = sconf.share_names() @@ -139,6 +140,14 @@ class SMBConfTests(samba.tests.TestCase): self.smbconf.SMBConfError, sconf.create_share, "alice" ) + def test_create_share(self): + sconf = self.s3smbconf.init_reg(None) + sconf.drop() + sconf.create_share("alice") + sconf.drop() + names = sconf.share_names() + self.assertEqual(names, []) + if __name__ == "__main__": import unittest