diff options
Diffstat (limited to 'examples/pdb')
-rw-r--r-- | examples/pdb/Makefile | 31 | ||||
-rw-r--r-- | examples/pdb/README | 9 | ||||
-rw-r--r-- | examples/pdb/pdb_test.c | 121 |
3 files changed, 161 insertions, 0 deletions
diff --git a/examples/pdb/Makefile b/examples/pdb/Makefile new file mode 100644 index 0000000000..115fd3c87e --- /dev/null +++ b/examples/pdb/Makefile @@ -0,0 +1,31 @@ +# Makefile for samba-pdb examples +# Variables + +CC = gcc +LIBTOOL = libtool + +SAMBA_SRC = ../../source +SAMBA_INCL = ../../source/include +UBIQX_SRC = ../../source/ubiqx +SMBWR_SRC = ../../source/smbwrapper +CFLAGS = -I$(SAMBA_SRC) -I$(SAMBA_INCL) -I$(UBIQX_SRC) -I$(SMBWR_SRC) -Wall -g +PDB_OBJS = pdb_test.so + +# Default target + +default: $(PDB_OBJS) + +# Pattern rules + +%.so: %.lo + $(LIBTOOL) $(CC) -shared -o $@ $< $(LDFLAGS) + +%.lo: %.c + $(LIBTOOL) $(CC) $(CPPFLAGS) $(CFLAGS) -c $< + +# Misc targets + +clean: + rm -rf .libs + rm -f core *~ *% *.bak \ + $(PDB_OBJS) $(PDB_OBJS:.so=.o) $(PDB_OBJS:.so=.lo) diff --git a/examples/pdb/README b/examples/pdb/README new file mode 100644 index 0000000000..ccc39248aa --- /dev/null +++ b/examples/pdb/README @@ -0,0 +1,9 @@ +README for Samba Password Database (PDB) examples +==================================================== +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 +DEBUG. Maybe it's nice to include some of the arguments to the function in the +future too.. + diff --git a/examples/pdb/pdb_test.c b/examples/pdb/pdb_test.c new file mode 100644 index 0000000000..4b4189e9d5 --- /dev/null +++ b/examples/pdb/pdb_test.c @@ -0,0 +1,121 @@ +/* + * Test password backend for samba + * Copyright (C) Jelmer Vernooij 2002 + * + * 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" + +static BOOL testsam_setsampwent(struct pdb_context *context, BOOL update) +{ + DEBUG(0, ("testsam_setsampwent called\n")); + return True; +} + +/*************************************************************** + End enumeration of the passwd list. +****************************************************************/ + +static void testsam_endsampwent(struct pdb_context *context) +{ + DEBUG(0, ("testsam_endsampwent called\n")); +} + +/***************************************************************** + Get one SAM_ACCOUNT from the list (next in line) +*****************************************************************/ + +static BOOL testsam_getsampwent(struct pdb_context *context, SAM_ACCOUNT *user) +{ + DEBUG(0, ("testsam_getsampwent called\n")); + return False; +} + +/****************************************************************** + Lookup a name in the SAM database +******************************************************************/ + +static BOOL testsam_getsampwnam (struct pdb_context *context, SAM_ACCOUNT *user, const char *sname) +{ + DEBUG(0, ("testsam_getsampwnam called\n")); + return False; +} + +/*************************************************************************** + Search by rid + **************************************************************************/ + +static BOOL testsam_getsampwrid (struct pdb_context *context, SAM_ACCOUNT *user, uint32 rid) +{ + DEBUG(0, ("testsam_getsampwrid called\n")); + return False; +} + +/*************************************************************************** + Delete a SAM_ACCOUNT +****************************************************************************/ + +static BOOL testsam_delete_sam_account(struct pdb_context *context, const SAM_ACCOUNT *sam_pass) +{ + DEBUG(0, ("testsam_delete_sam_account called\n")); + return False; +} + +/*************************************************************************** + Modifies an existing SAM_ACCOUNT +****************************************************************************/ + +static BOOL testsam_update_sam_account (struct pdb_context *context, const SAM_ACCOUNT *newpwd) +{ + DEBUG(0, ("testsam_update_sam_account called\n")); + return False; +} + +/*************************************************************************** + Adds an existing SAM_ACCOUNT +****************************************************************************/ + +static BOOL testsam_add_sam_account (struct pdb_context *context, const SAM_ACCOUNT *newpwd) +{ + DEBUG(0, ("testsam_add_sam_account called\n")); + return False; +} + +NTSTATUS pdb_init(PDB_CONTEXT *pdb_context, PDB_METHODS **pdb_method, const char *location) +{ + NTSTATUS nt_status; + + if (!NT_STATUS_IS_OK(nt_status = make_pdb_methods(pdb_context->mem_ctx, pdb_method))) { + return nt_status; + } + + (*pdb_method)->name = "testsam"; + + (*pdb_method)->setsampwent = testsam_setsampwent; + (*pdb_method)->endsampwent = testsam_endsampwent; + (*pdb_method)->getsampwent = testsam_getsampwent; + (*pdb_method)->getsampwnam = testsam_getsampwnam; + (*pdb_method)->getsampwrid = testsam_getsampwrid; + (*pdb_method)->add_sam_account = testsam_add_sam_account; + (*pdb_method)->update_sam_account = testsam_update_sam_account; + (*pdb_method)->delete_sam_account = testsam_delete_sam_account; + + DEBUG(0, ("Initializing testsam\n")); + if (location) + DEBUG(0, ("Location: %s\n", location)); + + return NT_STATUS_OK; +} |