diff options
Diffstat (limited to 'examples/auth')
-rw-r--r-- | examples/auth/Makefile | 31 | ||||
-rw-r--r-- | examples/auth/auth_skel.c | 59 |
2 files changed, 90 insertions, 0 deletions
diff --git a/examples/auth/Makefile b/examples/auth/Makefile new file mode 100644 index 0000000000..dac28fdd40 --- /dev/null +++ b/examples/auth/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 +AUTH_OBJS = auth_skel.so + +# Default target + +default: $(AUTH_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 \ + $(AUTH_OBJS) $(AUTH_OBJS:.so=.o) $(AUTH_OBJS:.so=.lo) diff --git a/examples/auth/auth_skel.c b/examples/auth/auth_skel.c new file mode 100644 index 0000000000..bcc3bdd96a --- /dev/null +++ b/examples/auth/auth_skel.c @@ -0,0 +1,59 @@ +/* + Unix SMB/CIFS implementation. + Password and authentication handling + Copyright (C) Andrew Bartlett 2001 + Copyright (C) Jelmer Vernooij 2003 + + 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" + +#undef DBGC_CLASS +#define DBGC_CLASS DBGC_AUTH + +static NTSTATUS check_skel_security(const struct auth_context *auth_context, + void *my_private_data, + TALLOC_CTX *mem_ctx, + const auth_usersupplied_info *user_info, + auth_serversupplied_info **server_info) +{ + if (!user_info || !auth_context) { + return NT_STATUS_LOGON_FAILURE; + } + + /* Insert your authentication checking code here, + * and return NT_STATUS_OK if authentication succeeds */ + + /* For now, just refuse all connections */ + return NT_STATUS_LOGON_FAILURE; +} + +/* module initialisation */ +NTSTATUS auth_init_skel(struct auth_context *auth_context, const char *param, auth_methods **auth_method) +{ + if (!make_auth_methods(auth_context, auth_method)) { + return NT_STATUS_NO_MEMORY; + } + + (*auth_method)->auth = check_skel_security; + (*auth_method)->name = "skel"; + return NT_STATUS_OK; +} + +NTSTATUS init_module(void) +{ + return smb_register_auth(AUTH_INTERFACE_VERSION, "skel", auth_init_skel); +} |