openldap/servers/slapd/back-shell/shell.h

76 lines
1.9 KiB
C
Raw Normal View History

1998-08-09 08:43:13 +08:00
/* shell.h - shell backend header file */
/* $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
#include "external.h"
1998-10-25 09:41:42 +08:00
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) ldap_charray_dup( args )
#define IS_NULLCMD(cmd) ((cmd) == NULL)
#endif /* SHELL_SURROGATE_PARENT */
1998-08-09 08:43:13 +08:00
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 */
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;
struct slap_conn;
struct slap_op;
extern pid_t forkandexec LDAP_P((
Cmd_info args,
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));
extern int read_and_send_results LDAP_P((
1999-07-20 05:01:07 +08:00
struct slap_backend_db *bd,
struct slap_conn *conn,
struct slap_op *op,
FILE *fp,
AttributeName *attrs,
int attrsonly));
1998-10-25 09:41:42 +08:00
LDAP_END_DECL
#endif