Item 14: Implement red/black binary tree routines.
Date: 28 October 2005
Origin: Kern
- Status:
+ Status: Class code is complete. Code needs to be integrated into
+ restore tree code.
What: Implement a red/black binary tree class. This could
then replace the current binary insert/search routines
Item 15: Add support for FileSets in user directories CACHEDIR.TAG
Origin: Norbert Kiesel <nkiesel at tbdnetworks dot com>
Date: 21 November 2005
- Status:
+ Status: (I think this is better done using a Python event that I
+ will implement in version 1.39.x).
What: CACHDIR.TAG is a proposal for identifying directories which
should be ignored for archiving/backup. It works by ignoring
Item 16: Implement extraction of Win32 BackupWrite data.
Origin: Thorsten Engel <thorsten.engel at matrix-computer dot com>
Date: 28 October 2005
- Status: Assigned to Thorsten. Implemented in current CVS
+ Status: Done. Assigned to Thorsten. Implemented in current CVS
What: This provides the Bacula File daemon with code that
can pick apart the stream output that Microsoft writes
Item 22: Permit multiple Media Types in an Autochanger
Origin: Kern
- Status: Now implemented
+ Status: Done. Implemented in 1.38.9 (I think).
What: Modify the Storage daemon so that multiple Media Types
can be specified in an autochanger. This would be somewhat
Item n: archive data
- Origin: calvin streeting calvin@absentdream.com
+ Origin: calvin streeting calvin at absentdream dot com
Date: 15/5/2006
What: The abilty to archive to media (dvd/cd) in a uncompressd format
* Version $Id$
*/
/*
- Copyright (C) 2004-2005 Kern Sibbald
+ Copyright (C) 2004-2006 Kern Sibbald
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
#include "bacula.h"
#include "filed.h"
-#else
-/*
- * Test program setup
- *
- * Compile and set up with eg. with eg.
- *
- * $ cc -DTEST_PROGRAM -DHAVE_SUN_OS -lsec -o acl acl.c
- * $ ln -s acl aclcp
- *
- * You can then list ACLs with acl and copy them with aclcp.
- *
- * For a list of compiler flags, see the list preceding the big #if below.
- */
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include "acl.h"
-
-#define BACLLEN 65535
-#define pm_strcpy(d,s) (strncpy(d, s, BACLLEN - 1) == NULL ? -1 : (int)strlen(d))
-#define Dmsg0(n,s) fprintf(stderr, s)
-#define Dmsg1(n,s,a1) fprintf(stderr, s, a1)
-#define Dmsg2(n,s,a1,a2) fprintf(stderr, s, a1, a2)
-
-int aclls(char *fname);
-int aclcp(char *src, char *dst);
-
-struct JCRstruct {
- char *last_fname;
- char acl_text[BACLLEN];
-};
-typedef struct JCRstruct JCR;
-JCR jcr;
#endif
/*
/* bacl_get() returns the lenght of the string, or -1 on error. */
int bacl_get(JCR *jcr, int acltype)
{
+ Jmsg(jcr, M_FATAL, 0, _("ACL support not configured for your machine.\n"));
return -1;
}
int bacl_set(JCR *jcr, int acltype)
{
+ Jmsg(jcr, M_FATAL, 0, _("ACL support not configured for your machine.\n"));
return -1;
}
if (acl_delete_def_file(jcr->last_fname) == 0) {
return 0;
}
+ berrno be;
+ Jmsg2(jcr, M_ERROR, 0, _("acl_delete_def_file error on file \"%s\": ERR=%s\n"),
+ jcr->last_fname, be.strerror());
return -1;
}
acl = acl_from_text(jcr->acl_text);
if (acl == NULL) {
+ berrno be;
+ Jmsg2(jcr, M_ERROR, 0, _("acl_from_text error on file \"%s\": ERR=%s\n"),
+ jcr->last_fname, be.strerror());
+ Dmsg3(100, "acl_from_text error acl=%s file=%s ERR=%s\n"),
+ jcr->acl_text, jcr->last_fname, be.strerror());
return -1;
}
#endif
if (acl_set_file(jcr->last_fname, ostype, acl) != 0) {
+ Jmsg2(jcr, M_ERROR, 0, _("acl_set_file error on file \"%s\": ERR=%s\n"),
+ jcr->last_fname, be.strerror());
+ Dmsg3(100, "acl_set_file error acl=%s file=%s ERR=%s\n"),
+ jcr->acl_text, jcr->last_fname, be.strerror());
acl_free(acl);
return -1;
}
#ifdef TEST_PROGRAM
+
+/*
+ * Test program setup
+ *
+ * Compile and set up with eg. with eg.
+ *
+ * $ cc -DTEST_PROGRAM -DHAVE_SUN_OS -lsec -o acl acl.c
+ * $ ln -s acl aclcp
+ *
+ * You can then list ACLs with acl and copy them with aclcp.
+ *
+ * For a list of compiler flags, see the list preceding the big #if below.
+ */
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include "acl.h"
+
+#define BACLLEN 65535
+#define pm_strcpy(d,s) (strncpy(d, s, BACLLEN - 1) == NULL ? -1 : (int)strlen(d))
+#define Dmsg0(n,s) fprintf(stderr, s)
+#define Dmsg1(n,s,a1) fprintf(stderr, s, a1)
+#define Dmsg2(n,s,a1,a2) fprintf(stderr, s, a1, a2)
+
+int aclls(char *fname);
+int aclcp(char *src, char *dst);
+
+struct JCRstruct {
+ char *last_fname;
+ char acl_text[BACLLEN];
+};
+typedef struct JCRstruct JCR;
+JCR jcr;
+
int main(int argc, char **argv)
{
char *prgname;