/* shell.h - shell backend header file */
/* $OpenLDAP$ */
-/*
- * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2006 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* Portions Copyright (c) 1995 Regents of the University of Michigan.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that this notice is preserved and that due credit is given
+ * to the University of Michigan at Ann Arbor. The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission. This software
+ * is provided ``as is'' without express or implied warranty.
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was originally developed by the University of Michigan
+ * (as part of U-MICH LDAP).
*/
#ifndef SLAPD_SHELL_H
#define SLAPD_SHELL_H
-#include "external.h"
+#include "proto-shell.h"
LDAP_BEGIN_DECL
-#if defined(HAVE_RECVMSG) && !defined(NO_THREADS)
-# define SHELL_SURROGATE_PARENT
-#endif
-
-#ifdef SHELL_SURROGATE_PARENT
-
-extern ldap_pvt_thread_mutex_t shell_surrogate_index_mutex;
-extern ldap_pvt_thread_mutex_t shell_surrogate_fd_mutex[2];
-extern int shell_surrogate_fd[2];
-extern pid_t shell_surrogate_pid;
-
-typedef struct berval Cmd_info;
-#define MAKE_CMD_INFO(args) make_cmd_info( args )
-#define IS_NULLCMD(cmd) ((cmd).bv_val == NULL)
-
-extern void make_surrogate_parent LDAP_P(( void ));
-
-#else /* !SHELL_SURROGATE_PARENT */
-
-typedef char **Cmd_info;
-#define MAKE_CMD_INFO(args) charray_dup( args )
-#define IS_NULLCMD(cmd) ((cmd) == NULL)
-
-#endif /* SHELL_SURROGATE_PARENT */
-
struct shellinfo {
- Cmd_info si_bind; /* cmd + args to exec for bind */
- Cmd_info si_unbind; /* cmd + args to exec for unbind */
- Cmd_info si_search; /* cmd + args to exec for search */
- Cmd_info si_compare; /* cmd + args to exec for compare */
- Cmd_info si_modify; /* cmd + args to exec for modify */
- Cmd_info si_modrdn; /* cmd + args to exec for modrdn */
- Cmd_info si_add; /* cmd + args to exec for add */
- Cmd_info si_delete; /* cmd + args to exec for delete */
- Cmd_info si_abandon; /* cmd + args to exec for abandon */
+ char **si_bind; /* cmd + args to exec for bind */
+ char **si_unbind; /* cmd + args to exec for unbind */
+ char **si_search; /* cmd + args to exec for search */
+ char **si_compare; /* cmd + args to exec for compare */
+ char **si_modify; /* cmd + args to exec for modify */
+ char **si_modrdn; /* cmd + args to exec for modrdn */
+ char **si_add; /* cmd + args to exec for add */
+ char **si_delete; /* cmd + args to exec for delete */
};
struct slap_backend_db;
struct slap_op;
extern pid_t forkandexec LDAP_P((
- Cmd_info args,
+ char **args,
FILE **rfp,
FILE **wfp));
struct slap_backend_db *bd));
extern int read_and_send_results LDAP_P((
- struct slap_backend_db *bd,
- struct slap_conn *conn,
struct slap_op *op,
- FILE *fp,
- AttributeName *attrs,
- int attrsonly));
+ struct slap_rep *rs,
+ FILE *fp));
LDAP_END_DECL