]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-shell/init.c
Do not return pointers into BerElement we do not own
[openldap] / servers / slapd / back-shell / init.c
index f0f1a93f6ea20a000b0a6daa13100fc4f8d12eae..cfb5357dd0ab17a2c51f2e7f695e5b1472755601 100644 (file)
@@ -1,4 +1,9 @@
 /* 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 "slap.h"
 #include "shell.h"
 
+#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 = NULL;
-       bi->bi_config = NULL;
-       bi->bi_close = NULL;
-       bi->bi_destroy = NULL;
+       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 = NULL;
-       bi->bi_db_close = NULL;
+       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;
@@ -35,9 +55,12 @@ shell_back_initialize(
        bi->bi_op_delete = shell_back_delete;
        bi->bi_op_abandon = shell_back_abandon;
 
-#ifdef SLAPD_ACLGROUPS
-       bi->bi_acl_group = NULL;
-#endif
+       bi->bi_extended = 0;
+
+       bi->bi_chk_referrals = 0;
+
+       bi->bi_connection_init = 0;
+       bi->bi_connection_destroy = 0;
 
        return 0;
 }