Skip to content
Snippets Groups Projects
Commit fb0f6eee authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

Axe abandon support

parent 15fa161b
No related branches found
No related tags found
No related merge requests found
......@@ -3,9 +3,9 @@
## COPYING RESTRICTIONS APPLY, see COPYRIGHT file
SRCS = init.c config.c fork.c search.c bind.c unbind.c add.c \
delete.c modify.c modrdn.c compare.c abandon.c result.c
delete.c modify.c modrdn.c compare.c result.c
OBJS = init.lo config.lo fork.lo search.lo bind.lo unbind.lo add.lo \
delete.lo modify.lo modrdn.lo compare.lo abandon.lo result.lo
delete.lo modify.lo modrdn.lo compare.lo result.lo
LDAP_INCDIR= ../../../include
LDAP_LIBDIR= ../../../libraries
......
/* abandon.c - shell backend abandon function */
/* $OpenLDAP$ */
/*
* Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include "portable.h"
#include <stdio.h>
#include <ac/socket.h>
#include <ac/string.h>
#include "slap.h"
#include "shell.h"
int
shell_back_abandon(
Operation *op,
SlapReply *rs )
{
struct shellinfo *si = (struct shellinfo *) op->o_bd->be_private;
FILE *rfp, *wfp;
pid_t pid;
Operation *o;
if ( si->si_abandon == NULL ) {
return 0;
}
pid = -1;
LDAP_STAILQ_FOREACH( o, &op->o_conn->c_ops, o_next ) {
if ( o->o_msgid == op->oq_abandon.rs_msgid ) {
pid = (pid_t) o->o_private;
break;
}
}
if ( pid == -1 ) {
Debug( LDAP_DEBUG_ARGS, "shell could not find op %ld\n",
(long) op->oq_abandon.rs_msgid, 0, 0 );
return 0;
}
if ( forkandexec( si->si_abandon, &rfp, &wfp ) == -1 ) {
return 0;
}
/* write out the request to the abandon process */
fprintf( wfp, "ABANDON\n" );
fprintf( wfp, "msgid: %d\n", op->oq_abandon.rs_msgid );
print_suffixes( wfp, op->o_bd );
fprintf( wfp, "pid: %ld\n", (long) pid );
fclose( wfp );
/* no result from abandon */
fclose( rfp );
return 0;
}
......@@ -112,16 +112,6 @@ shell_back_db_config(
}
si->si_delete = ldap_charray_dup( &argv[1] );
/* command + args to exec for abandon */
} else if ( strcasecmp( argv[0], "abandon" ) == 0 ) {
if ( argc < 2 ) {
fprintf( stderr,
"%s: line %d: missing executable in \"abandon <executable>\" line\n",
fname, lineno );
return( 1 );
}
si->si_abandon = ldap_charray_dup( &argv[1] );
/* anything else */
} else {
fprintf( stderr,
......
......@@ -34,8 +34,6 @@ extern BI_op_add shell_back_add;
extern BI_op_delete shell_back_delete;
extern BI_op_abandon shell_back_abandon;
LDAP_END_DECL
#endif /* _SHELL_EXTERNAL_H */
......@@ -53,7 +53,7 @@ shell_back_initialize(
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_op_abandon = 0;
bi->bi_extended = 0;
......
......@@ -21,7 +21,6 @@ struct shellinfo {
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 */
char **si_abandon; /* cmd + args to exec for abandon */
};
struct slap_backend_db;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment