summaryrefslogtreecommitdiff
path: root/examples/pdb
diff options
context:
space:
mode:
Diffstat (limited to 'examples/pdb')
-rw-r--r--examples/pdb/README46
-rw-r--r--examples/pdb/pdb_test.c14
2 files changed, 47 insertions, 13 deletions
diff --git a/examples/pdb/README b/examples/pdb/README
index 7fe4524882..561473129b 100644
--- a/examples/pdb/README
+++ b/examples/pdb/README
@@ -1,7 +1,46 @@
README for Samba Password Database (PDB) examples
====================================================
-Jelmer Vernooij <jelmer@nl.linux.org>
-Stefan (metze) Metzmacher <metze@metzemix.de>
+8-8-2002 Jelmer Vernooij <jelmer@samba.org>
+
+Added mysql and xml modules. See README in xml/ and mysql/ for details.
+
+21-6-2002 Stefan (metze) Metzmacher <metze@metzemix.de>
+
+I have added an interface versioning.
+
+Every module MUST have a pdb_version() function.
+
+this is defined in include/passdb.h:
+#define PDB_MODULE_VERSIONING_MAGIC \
+int pdb_version(void)\
+{\
+ return PASSDB_INTERFACE_VERSION;\
+}
+
+You MUST add this line inside a module:
+PDB_MODULE_VERSIONING_MAGIC
+
+21-6-2002 Stefan (metze) Metzmacher <metze@metzemix.de>
+
+The pdb_interface was changed:
+
+this function are deleted:
+static BOOL testsam_getsampwrid (struct pdb_methods *methods, SAM_ACCOUNT *user, uint32 rid)
+
+this function are added:
+static BOOL testsam_getsampwsid (struct pdb_methods *methods, SAM_ACCOUNT *user, DOM_SID sid)
+
+In the SAM_ACCOUNT struct:
+
+this fields are deleted:
+uint32 user_rid;
+uint32 group_rid;
+
+this fields are added:
+DOM_SID user_sid;
+DOM_SID group_sid;
+
+15-2-2002 Jelmer Vernooij <jelmer@nl.linux.org>
The pdb_test.c file in this directory contains a very basic example of
a pdb plugin. It just prints the name of the function that is executed using
@@ -11,5 +50,6 @@ future too..
To debug passdb backends, try to run gdb on the 'pdbedit' executable. That's really much easier than restarting smbd constantly and attaching with your debugger.
New passdb plugins should go into the samba lib directory, (/usr/lib/samba/ for
-most distributions). An example would be: /usr/lib/samba/test.so
+most distributions) and should be prefixed with 'pdb_'. An example would be:
+/usr/lib/samba/pdb_test.so
diff --git a/examples/pdb/pdb_test.c b/examples/pdb/pdb_test.c
index f5fb57ddb2..c5ba094e42 100644
--- a/examples/pdb/pdb_test.c
+++ b/examples/pdb/pdb_test.c
@@ -25,6 +25,9 @@ static int testsam_debug_level = DBGC_ALL;
#undef DBGC_CLASS
#define DBGC_CLASS testsam_debug_level
+/* define the version of the passdb interface */
+PDB_MODULE_VERSIONING_MAGIC
+
/***************************************************************
Start enumeration of the passwd list.
****************************************************************/
@@ -104,7 +107,7 @@ static NTSTATUS testsam_add_sam_account (struct pdb_methods *methods, SAM_ACCOUN
return NT_STATUS_NOT_IMPLEMENTED;
}
-NTSTATUS testsam_init(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const char *location)
+NTSTATUS pdb_init(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const char *location)
{
NTSTATUS nt_status;
@@ -138,12 +141,3 @@ NTSTATUS testsam_init(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const
return NT_STATUS_OK;
}
-
-int init_module(void);
-
-int init_module() {
- if(smb_register_passdb("testsam", testsam_init, PASSDB_INTERFACE_VERSION))
- return 0;
-
- return 1;
-}