1998-08-09 08:43:13 +08:00
|
|
|
/* shell.h - shell backend header file */
|
1999-09-09 03:06:24 +08:00
|
|
|
/* $OpenLDAP$ */
|
2000-05-16 00:35:48 +08:00
|
|
|
/*
|
2002-01-05 05:17:25 +08:00
|
|
|
* Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
|
2000-05-16 00:35:48 +08:00
|
|
|
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
|
|
|
|
*/
|
1998-08-09 08:43:13 +08:00
|
|
|
|
1998-10-25 09:41:42 +08:00
|
|
|
#ifndef SLAPD_SHELL_H
|
|
|
|
#define SLAPD_SHELL_H
|
|
|
|
|
1999-02-05 17:03:47 +08:00
|
|
|
#include "external.h"
|
1998-10-25 09:41:42 +08:00
|
|
|
|
|
|
|
LDAP_BEGIN_DECL
|
|
|
|
|
2002-05-15 14:18:14 +08:00
|
|
|
#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;
|
2002-08-24 08:55:24 +08:00
|
|
|
#define MAKE_CMD_INFO(args) ldap_charray_dup( args )
|
2002-05-15 14:18:14 +08:00
|
|
|
#define IS_NULLCMD(cmd) ((cmd) == NULL)
|
|
|
|
|
|
|
|
#endif /* SHELL_SURROGATE_PARENT */
|
|
|
|
|
1998-08-09 08:43:13 +08:00
|
|
|
struct shellinfo {
|
2002-05-15 14:18:14 +08:00
|
|
|
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 */
|
1998-08-09 08:43:13 +08:00
|
|
|
};
|
1998-10-25 09:41:42 +08:00
|
|
|
|
1999-07-20 05:01:07 +08:00
|
|
|
struct slap_backend_db;
|
1999-01-10 10:25:41 +08:00
|
|
|
struct slap_conn;
|
|
|
|
struct slap_op;
|
1999-02-05 17:03:47 +08:00
|
|
|
|
|
|
|
extern pid_t forkandexec LDAP_P((
|
2002-05-15 14:18:14 +08:00
|
|
|
Cmd_info args,
|
1999-02-05 17:03:47 +08:00
|
|
|
FILE **rfp,
|
|
|
|
FILE **wfp));
|
|
|
|
|
|
|
|
extern void print_suffixes LDAP_P((
|
|
|
|
FILE *fp,
|
1999-07-20 05:01:07 +08:00
|
|
|
struct slap_backend_db *bd));
|
1999-02-05 17:03:47 +08:00
|
|
|
|
|
|
|
extern int read_and_send_results LDAP_P((
|
1999-07-20 05:01:07 +08:00
|
|
|
struct slap_backend_db *bd,
|
1999-02-05 17:03:47 +08:00
|
|
|
struct slap_conn *conn,
|
|
|
|
struct slap_op *op,
|
|
|
|
FILE *fp,
|
2001-12-31 19:35:52 +08:00
|
|
|
AttributeName *attrs,
|
1999-02-05 17:03:47 +08:00
|
|
|
int attrsonly));
|
Protoized, moved extern definitions to .h files, fixed related bugs.
Most function and variable definitions are now preceded by its extern
definition, for error checking. Retyped a number of functions, usually
to return void. Fixed a number of printf format errors.
API changes (in ldap/include):
Added avl_dup_ok, avl_prefixapply, removed ber_fatten (probably typo
for ber_flatten), retyped ldap_sort_strcasecmp, grew lutil.h.
A number of `extern' declarations are left (some added by protoize), to
be cleaned away later. Mostly strdup(), strcasecmp(), mktemp(), optind,
optarg, errno.
1998-11-16 06:40:11 +08:00
|
|
|
|
1998-10-25 09:41:42 +08:00
|
|
|
LDAP_END_DECL
|
|
|
|
|
|
|
|
#endif
|