On Fri, Nov 15, 2002 at 06:58:36PM +0100, Stefan (metze) Metzmacher wrote about 
'preview of winsdb stuff':
> HI Jelmer,

> here's the preview of my winsdb stuff...

> it's working for me but must be tested a lot!

> I may want move wreld to nmbd as a child process what do you thing?
I think you'd better discuss that with jfm - he's the original author
of wrepld iirc - I'm not really into nmbd (yet...) ;-)


> +/* use this inside a passdb module */
> +#define WINSDB_MODULE_VERSIONING_MAGIC \
> +int winsdb_version(void)\
> +{\
> +     return WINSDB_INTERFACE_VERSION;\
> +}
This can be removed

> +/* Backend to use by default when no backend was specified */
> +#define WINSDB_DEFAULT_BACKEND "tdb"
This should actually be a default for lp_winsdb_backend() - in
params/loadparm.c

> +const struct {
> +     char *module_name;
> +     /* Function to create a member of the sam_methods list */
sam ? ;-)

> +     winsdb_init_function init;
> +} builtin_winsdb_init_functions[] = {
> +     { "tdb", winsdb_init_tdb },
> +     { NULL, NULL}
> +};
> +     if(version != WINSDB_INTERFACE_VERSION)
> +             return False;
> +
> +     DEBUG(5,("Attempting to register passdb backend %s\n", name));
Please change passdb -> winsdb
> +
> +     /* Check for duplicates */
> +     while(entry) { 
> +             if(strcasecmp(name, entry->module_name) == 0) { 
> +                     DEBUG(0,("There already is a passdb backend registered with 
>the name %s!\n", name));
please change passdb -> winsdb
> +     entry = smb_xmalloc(sizeof(struct pdb_init_function_entry));
passdb -> winsdb
> +     entry->module_name = name;
> +     entry->init = init;

> +
> +     DLIST_ADD(backends, entry);
> +     DEBUG(5,("Successfully added passdb backend '%s'\n", name));
passdb -> winsdb
> +     return True;
> +}
> +     DEBUG(5,("Attempting to find an passdb backend to match %s (%s)\n", 
>backend_string, module_name));
passdb -> winsdb...
> +     while(entry) {
> +             if (strequal(entry->module_name, module_name)) {
> +                     DEBUG(5,("Found pdb backend %s\n", module_name));
> +                     nt_status = entry->init(*context, module_location);
> +                     if (NT_STATUS_IS_OK(nt_status)) {
> +                             DEBUG(5,("winsdb backend %s has a valid init\n", 
>backend_string));
> +                     } else {
> +                             DEBUG(0,("winsdb backend %s did not correctly init 
>(error was %s)\n", backend_string, nt_errstr(nt_status)));
> +                     }
> +                     SAFE_FREE(module_name);
> +                     return nt_status;
> +                     break; /* unreached */
> +             }
> +             entry = entry->next;
> +     }
> +
> +     /* No such backend found */
> +     SAFE_FREE(module_name);
> +     return NT_STATUS_INVALID_PARAMETER;
> +}

Jelmer


-- 
Jelmer Vernooij <[EMAIL PROTECTED]> - http://nl.linux.org/~jelmer/
 19:04:32 up  3:57, 11 users,  load average: 0.73, 1.02, 0.60

Reply via email to