summaryrefslogtreecommitdiffstats
path: root/ldap/admin/src/ds_rmdb.c
diff options
context:
space:
mode:
authorcvsadm <cvsadm>2005-01-21 00:44:34 +0000
committercvsadm <cvsadm>2005-01-21 00:44:34 +0000
commitb2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch)
treecf58939393a9032182c4fbc4441164a9456e82f8 /ldap/admin/src/ds_rmdb.c
downloadds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.gz
ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.xz
ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.zip
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'ldap/admin/src/ds_rmdb.c')
-rw-r--r--ldap/admin/src/ds_rmdb.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/ldap/admin/src/ds_rmdb.c b/ldap/admin/src/ds_rmdb.c
new file mode 100644
index 00000000..08a1bb7c
--- /dev/null
+++ b/ldap/admin/src/ds_rmdb.c
@@ -0,0 +1,73 @@
+/** BEGIN COPYRIGHT BLOCK
+ * Copyright 2001 Sun Microsystems, Inc.
+ * Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
+ * All rights reserved.
+ * END COPYRIGHT BLOCK **/
+/*
+ * Delete backed-up database files.
+ *
+ * Anil Bhavnani
+ * Removed all HTML output for DS 4.0: Rob Weltman
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "libadminutil/admutil.h"
+#include "dsalib.h"
+#include "portable.h"
+#include "init_ds_env.h"
+#include <string.h>
+#ifdef XP_UNIX
+#include <unistd.h>
+#endif
+
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+
+int main(int argc, char *argv[], char *envp[])
+{
+ char *del_file = NULL;
+ char **bak_files;
+ int file_count = 0;
+ int err = 0;
+
+ fprintf(stdout, "Content-type: text/html\n\n");
+
+ if ( init_ds_env() )
+ return 1;
+
+ ds_become_localuser (ds_get_config (DS_REAL_CONFIG));
+
+ /*
+ * Get value of the "deletefile" variable.
+ */
+ del_file = ds_get_cgi_var("deletefile");
+ if ( (NULL == del_file) || (strlen(del_file) < 1) ) {
+ rpt_err( DS_UNDEFINED_VARIABLE, "deletefile", NULL, NULL );
+ return 1;
+ }
+
+ bak_files = ds_get_file_list( del_file );
+ if ( bak_files == NULL ) {
+ rpt_err( DS_NO_SUCH_FILE, del_file, NULL, NULL );
+ return 1;
+ } else {
+ int j;
+ char buf[ MAXPATHLEN ];
+ for ( j = 0; bak_files[ j ] != NULL; j++ ) {
+ sprintf( buf, "%s/%s", del_file, bak_files[ j ]);
+ if ( unlink(buf) != 0 ) {
+ rpt_err( DS_CANNOT_DELETE_FILE, buf, NULL, NULL );
+ return 1;
+ }
+ }
+ if ( rmdir( del_file ) < 0 ) {
+ rpt_err( DS_CANNOT_DELETE_FILE, del_file, NULL, NULL );
+ return 1;
+ }
+ }
+ rpt_success("Success! Deleted directory.");
+
+ return 0;
+}