From 17a3acafa89bfc6090b0767d05a00a7505003fcc Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 28 Apr 2003 17:48:48 +0000 Subject: Use NTSTATUS as return value for smb_register_*() functions and init_module() function. Patch by metze with some minor modifications. (This used to be commit bc4b51bcb2daa7271c884cb83bf8bdba6d3a9b6d) --- source3/lib/iconv.c | 15 ++++++++------- source3/lib/module.c | 22 +++++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) (limited to 'source3/lib') diff --git a/source3/lib/iconv.c b/source3/lib/iconv.c index 01fa31915a..c09bff5fd7 100644 --- a/source3/lib/iconv.c +++ b/source3/lib/iconv.c @@ -77,22 +77,23 @@ static struct charset_functions *find_charset_functions(const char *name) return NULL; } -BOOL smb_register_charset(struct charset_functions *funcs) +NTSTATUS smb_register_charset(struct charset_functions *funcs) { - struct charset_functions *c = charsets; + if (!funcs) { + return NT_STATUS_INVALID_PARAMETER; + } DEBUG(5, ("Attempting to register new charset %s\n", funcs->name)); /* Check whether we already have this charset... */ - if (find_charset_functions(funcs->name)) { DEBUG(0, ("Duplicate charset %s, not registering\n", funcs->name)); - return False; + return NT_STATUS_OBJECT_NAME_COLLISION; } funcs->next = funcs->prev = NULL; DEBUG(5, ("Registered charset %s\n", funcs->name)); DLIST_ADD(charsets, funcs); - return True; + return NT_STATUS_OK; } void lazy_initialize_iconv(void) @@ -219,14 +220,14 @@ smb_iconv_t smb_iconv_open(const char *tocode, const char *fromcode) #endif /* check if there is a module available that can do this conversion */ - if (!ret->pull && smb_probe_module("charset", fromcode)) { + if (!ret->pull && NT_STATUS_IS_OK(smb_probe_module("charset", fromcode))) { if(!(from = find_charset_functions(fromcode))) DEBUG(0, ("Module %s doesn't provide charset %s!\n", fromcode, fromcode)); else ret->pull = from->pull; } - if (!ret->push && smb_probe_module("charset", tocode)) { + if (!ret->push && NT_STATUS_IS_OK(smb_probe_module("charset", tocode))) { if(!(to = find_charset_functions(tocode))) DEBUG(0, ("Module %s doesn't provide charset %s!\n", tocode, tocode)); else diff --git a/source3/lib/module.c b/source3/lib/module.c index 53223cfebe..087c964d3c 100644 --- a/source3/lib/module.c +++ b/source3/lib/module.c @@ -22,11 +22,11 @@ #include "includes.h" #ifdef HAVE_DLOPEN -int smb_load_module(const char *module_name) +NTSTATUS smb_load_module(const char *module_name) { void *handle; init_module_function *init; - int status; + NTSTATUS status; const char *error; /* Always try to use LAZY symbol resolving; if the plugin has @@ -37,7 +37,7 @@ int smb_load_module(const char *module_name) if(!handle) { DEBUG(0, ("Error loading module '%s': %s\n", module_name, sys_dlerror())); - return False; + return NT_STATUS_UNSUCCESSFUL; } init = sys_dlsym(handle, "init_module"); @@ -47,7 +47,7 @@ int smb_load_module(const char *module_name) error = sys_dlerror(); if (error) { DEBUG(0, ("Error trying to resolve symbol 'init_module' in %s: %s\n", module_name, error)); - return False; + return NT_STATUS_UNSUCCESSFUL; } status = init(); @@ -65,7 +65,7 @@ int smb_load_modules(const char **modules) int success = 0; for(i = 0; modules[i]; i++){ - if(smb_load_module(modules[i])) { + if(NT_STATUS_IS_OK(smb_load_module(modules[i]))) { success++; } } @@ -75,7 +75,7 @@ int smb_load_modules(const char **modules) return success; } -int smb_probe_module(const char *subsystem, const char *module) +NTSTATUS smb_probe_module(const char *subsystem, const char *module) { pstring full_path; @@ -95,22 +95,22 @@ int smb_probe_module(const char *subsystem, const char *module) #else /* HAVE_DLOPEN */ -int smb_load_module(const char *module_name) +NTSTATUS smb_load_module(const char *module_name) { DEBUG(0,("This samba executable has not been built with plugin support")); - return False; + return NT_STATUS_NOT_SUPPORTED; } int smb_load_modules(const char **modules) { DEBUG(0,("This samba executable has not been built with plugin support")); - return False; + return -1; } -int smb_probe_module(const char *subsystem, const char *module) +NTSTATUS smb_probe_module(const char *subsystem, const char *module) { DEBUG(0,("This samba executable has not been built with plugin support, not probing")); - return False; + return NT_STATUS_NOT_SUPPORTED; } #endif /* HAVE_DLOPEN */ -- cgit