From a846e592058726b670e40505493a4668bd856186 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 25 Nov 2003 03:15:26 +0000 Subject: CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: Makefile.in configure.in include/includes.h include/ntvfs.h CVS: include/smb.h lib/iconv.c lib/module.c ntvfs/ntvfs_base.c CVS: ntvfs/cifs/vfs_cifs.c ntvfs/ipc/vfs_ipc.c CVS: ntvfs/posix/vfs_posix.c ntvfs/print/vfs_print.c CVS: ntvfs/reference/vfs_ref.c ntvfs/simple/vfs_simple.c CVS: passdb/pdb_interface.c CVS: Added Files: CVS: include/module.h CVS: ---------------------------------------------------------------------- Update to the modules system. Fixed: - get rid of smb_probe_module - merge older updates from 3.0 - introduced register_subsystem() and register_backend() functions - adapt ntvfs and charset to use new register functions - made smb_load_modules() work recursively (e.g. 'preload modules = /usr/lib/samba') - got rid of some old remains Things that still need work: - Did I break tankFS? I don't think so, but I can't test it here :-( - Add 'postload modules = ' (for modules that need to be loaded after fork() in smbd, if applicable) - Convert RPC, auth, passdb, etc to use new register_{subsystem,backend}() functions - Accept wildcards in 'preload modules' option, instead of loading recursively (This used to be commit 7512b9ab1a8b3103f7a6c13f736353c46a26b668) --- source4/include/includes.h | 3 ++- source4/include/module.h | 30 ++++++++++++++++++++++++++++++ source4/include/ntvfs.h | 3 +++ source4/include/smb.h | 3 --- 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 source4/include/module.h (limited to 'source4/include') diff --git a/source4/include/includes.h b/source4/include/includes.h index 0f5e73cf56..908d2a4e76 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -759,11 +759,12 @@ extern int errno; #include "ntlmssp.h" #include "auth.h" - #include "passdb.h" #include "session.h" +#include "module.h" + #include "asn_1.h" #include "popt.h" diff --git a/source4/include/module.h b/source4/include/module.h new file mode 100644 index 0000000000..02826595e4 --- /dev/null +++ b/source4/include/module.h @@ -0,0 +1,30 @@ +/* + Unix SMB/CIFS implementation. + Handling of idle/exit events + 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. +*/ + +#ifndef _MODULE_H +#define _MODULE_H + +/* Module support */ +typedef NTSTATUS (*init_module_function) (void); + +/* Module that registers a backend for a certain subsystem */ +typedef NTSTATUS (*register_backend_function) (void *data); + +#endif /* _MODULE_H */ diff --git a/source4/include/ntvfs.h b/source4/include/ntvfs.h index 2b1f519b32..b972a4ef99 100644 --- a/source4/include/ntvfs.h +++ b/source4/include/ntvfs.h @@ -32,6 +32,9 @@ enum ntvfs_type {NTVFS_DISK, NTVFS_PRINT, NTVFS_IPC}; /* the ntvfs operations structure - contains function pointers to the backend implementations of each operation */ struct ntvfs_ops { + const char *name; + enum ntvfs_type type; + /* initial setup */ NTSTATUS (*connect)(struct request_context *req, const char *sharename); NTSTATUS (*disconnect)(struct tcon_context *conn); diff --git a/source4/include/smb.h b/source4/include/smb.h index f6a4281e01..e9f09ce0a5 100644 --- a/source4/include/smb.h +++ b/source4/include/smb.h @@ -1355,9 +1355,6 @@ typedef struct { #define DEFAULT_TRUST_ACCOUNT_PASSWORD_LENGTH 14 -/* Module support */ -typedef int (init_module_function) (void); - /* a set of flags to control handling of request structures */ #define REQ_CONTROL_PROTECTED (1<<0) /* don't destroy this request */ -- cgit