X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-shell%2Finit.c;h=cfb5357dd0ab17a2c51f2e7f695e5b1472755601;hb=331e6275418bda0735d4952f64d51518881d10a8;hp=b4087cb8a88294639d405d9229aa07dfb5a8fbf4;hpb=b76c56ba3f45576b9c418ea9fe7f7b3440052904;p=openldap diff --git a/servers/slapd/back-shell/init.c b/servers/slapd/back-shell/init.c index b4087cb8a8..cfb5357dd0 100644 --- a/servers/slapd/back-shell/init.c +++ b/servers/slapd/back-shell/init.c @@ -1,14 +1,72 @@ /* init.c - initialize shell backend */ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ #include "portable.h" #include -#include -#include + +#include + #include "slap.h" #include "shell.h" -shell_back_init( +#ifdef SLAPD_SHELL_DYNAMIC + +int back_shell_LTX_init_module(int argc, char *argv[]) { + BackendInfo bi; + + memset( &bi, '\0', sizeof(bi) ); + bi.bi_type = "shell"; + bi.bi_init = shell_back_initialize; + + backend_add(&bi); + return 0; +} + +#endif /* SLAPD_SHELL_DYNAMIC */ + +int +shell_back_initialize( + BackendInfo *bi +) +{ + bi->bi_open = 0; + bi->bi_config = 0; + bi->bi_close = 0; + bi->bi_destroy = 0; + + bi->bi_db_init = shell_back_db_init; + bi->bi_db_config = shell_back_db_config; + bi->bi_db_open = 0; + bi->bi_db_close = 0; + bi->bi_db_destroy = shell_back_db_destroy; + + bi->bi_op_bind = shell_back_bind; + bi->bi_op_unbind = shell_back_unbind; + bi->bi_op_search = shell_back_search; + bi->bi_op_compare = shell_back_compare; + bi->bi_op_modify = shell_back_modify; + bi->bi_op_modrdn = shell_back_modrdn; + bi->bi_op_add = shell_back_add; + bi->bi_op_delete = shell_back_delete; + bi->bi_op_abandon = shell_back_abandon; + + bi->bi_extended = 0; + + bi->bi_chk_referrals = 0; + + bi->bi_connection_init = 0; + bi->bi_connection_destroy = 0; + + return 0; +} + +int +shell_back_db_init( Backend *be ) { @@ -17,4 +75,15 @@ shell_back_init( si = (struct shellinfo *) ch_calloc( 1, sizeof(struct shellinfo) ); be->be_private = si; + + return si == NULL; +} + +int +shell_back_db_destroy( + Backend *be +) +{ + free( be->be_private ); + return 0; }