/*
* Entry points when compiled without support for XATTRs or on an unsupported platform.
*/
-bsub_exit_code build_xattr_streams(JCR *jcr, FF_PKT *ff_pkt)
+bxattr_exit_code build_xattr_streams(JCR *jcr, FF_PKT *ff_pkt)
{
- return bsub_exit_fatal;
+ return bxattr_exit_fatal;
}
-bsub_exit_code parse_xattr_streams(JCR *jcr, int stream)
+bxattr_exit_code parse_xattr_streams(JCR *jcr, int stream)
{
- return bsub_exit_fatal;
+ return bxattr_exit_fatal;
}
#else
/*
* Send a XATTR stream to the SD.
*/
-static bsub_exit_code send_xattr_stream(JCR *jcr, int stream)
+static bxattr_exit_code send_xattr_stream(JCR *jcr, int stream)
{
BSOCK *sd = jcr->store_bsock;
POOLMEM *msgsave;
#ifdef FD_NO_SEND_TEST
- return bsub_exit_ok;
+ return bxattr_exit_ok;
#endif
/*
* Sanity check
*/
if (jcr->xattr_data_len <= 0)
- return bsub_exit_ok;
+ return bxattr_exit_ok;
/*
* Send header
if (!sd->fsend("%ld %d 0", jcr->JobFiles, stream)) {
Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"),
sd->bstrerror());
- return bsub_exit_fatal;
+ return bxattr_exit_fatal;
}
/*
sd->msglen = 0;
Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"),
sd->bstrerror());
- return bsub_exit_fatal;
+ return bxattr_exit_fatal;
}
jcr->JobBytes += sd->msglen;
if (!sd->signal(BNET_EOD)) {
Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"),
sd->bstrerror());
- return bsub_exit_fatal;
+ return bxattr_exit_fatal;
}
Dmsg1(200, "XATTR of file: %s successfully backed up!\n", jcr->last_fname);
- return bsub_exit_ok;
+ return bxattr_exit_ok;
}
/*
return jcr->xattr_data_len;
}
-static bsub_exit_code generic_xattr_build_streams(JCR *jcr, FF_PKT *ff_pkt)
+static bxattr_exit_code generic_xattr_build_streams(JCR *jcr, FF_PKT *ff_pkt)
{
int count = 0;
int32_t xattr_list_len,
uint32_t expected_serialize_len = 0;
char *xattr_list, *bp;
xattr_t *xattr_value_list = NULL, *current_xattr;
- bsub_exit_code retval = bsub_exit_nok;
+ bxattr_exit_code retval = bxattr_exit_error;
berrno be;
/*
if (xattr_list_len < 0) {
switch (errno) {
case ENOENT:
- return bsub_exit_ok;
+ return bxattr_exit_ok;
default:
Mmsg2(jcr->errmsg, _("llistxattr error on file \"%s\": ERR=%s\n"),
jcr->last_fname, be.bstrerror());
Dmsg2(100, "llistxattr error file=%s ERR=%s\n",
jcr->last_fname, be.bstrerror());
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
} else if (xattr_list_len == 0) {
- return bsub_exit_ok;
+ return bxattr_exit_ok;
}
/*
if (xattr_list_len < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg2(jcr->errmsg, _("llistxattr error on file \"%s\": ERR=%s\n"),
}
if (count == 0) {
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
}
if (xattr_value_len < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg2(jcr->errmsg, _("lgetxattr error on file \"%s\": ERR=%s\n"),
if (xattr_value_len < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg2(jcr->errmsg, _("lgetxattr error on file \"%s\": ERR=%s\n"),
return retval;
}
-static bsub_exit_code generic_xattr_parse_streams(JCR *jcr, int stream)
+static bxattr_exit_code generic_xattr_parse_streams(JCR *jcr, int stream)
{
unser_declare;
xattr_t current_xattr;
- bsub_exit_code retval = bsub_exit_ok;
+ bxattr_exit_code retval = bxattr_exit_ok;
berrno be;
/*
jcr->last_fname);
Dmsg1(100, "Illegal xattr stream, no XATTR_MAGIC on file \"%s\"\n",
jcr->last_fname);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
/*
jcr->last_fname, be.bstrerror());
Dmsg2(100, "lsetxattr error file=%s ERR=%s\n",
jcr->last_fname, be.bstrerror());
- retval = bsub_exit_nok;
+ retval = bxattr_exit_error;
break;
}
}
/*
* For all these os-es setup the build and parse function pointer to the generic functions.
*/
-static bsub_exit_code (*os_build_xattr_streams)(JCR *jcr, FF_PKT *ff_pkt) = generic_xattr_build_streams;
-static bsub_exit_code (*os_parse_xattr_streams)(JCR *jcr, int stream) = generic_xattr_parse_streams;
+static bxattr_exit_code (*os_build_xattr_streams)(JCR *jcr, FF_PKT *ff_pkt) = generic_xattr_build_streams;
+static bxattr_exit_code (*os_parse_xattr_streams)(JCR *jcr, int stream) = generic_xattr_parse_streams;
#elif defined(HAVE_SUN_OS)
/*
*/
static alist *xattr_link_cache = NULL;
-static struct xattr_link_cache_entry *find_xattr_link_cache_entry(ino_t inum)
+static xattr_link_cache_entry *find_xattr_link_cache_entry(ino_t inum)
{
xattr_link_cache_entry_t *ptr;
{
xattr_link_cache_entry_t *ptr;
- ptr = (xattr_link_cache_entry_t *)malloc(sizeof(struct xattr_link_cache_entry));
- memset((caddr_t)ptr, 0, sizeof(struct xattr_link_cache_entry));
+ ptr = (xattr_link_cache_entry_t *)malloc(sizeof(xattr_link_cache_entry));
+ memset((caddr_t)ptr, 0, sizeof(xattr_link_cache_entry));
ptr->inum = inum;
bstrncpy(ptr->target, target, sizeof(ptr->target));
xattr_link_cache->append(ptr);
}
#endif /* HAVE_ACL && !HAVE_EXTENDED_ACL */
-static bsub_exit_code solaris_save_xattr_acl(JCR *jcr, int fd, const char *attrname, char **acl_text)
+static bxattr_exit_code solaris_save_xattr_acl(JCR *jcr, int fd, const char *attrname, char **acl_text)
{
#ifdef HAVE_ACL
#ifdef HAVE_EXTENDED_ACL
acl_get(attrname, ACL_NO_TRIVIAL, &aclp) != 0) {
switch (errno) {
case ENOENT:
- return bsub_exit_ok;
+ return bxattr_exit_ok;
default:
Mmsg3(jcr->errmsg, _("Unable to get acl on xattr %s on file \"%s\": ERR=%s\n"),
attrname, jcr->last_fname, be.bstrerror());
Dmsg3(100, "facl_get/acl_get of xattr %s on \"%s\" failed: ERR=%s\n",
attrname, jcr->last_fname, be.bstrerror());
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
}
} else {
*acl_text = NULL;
}
- return bsub_exit_ok;
+ return bxattr_exit_ok;
#else /* HAVE_EXTENDED_ACL */
int n;
aclent_t *acls = NULL;
switch (errno) {
case ENOENT:
free(acls);
- return bsub_exit_ok;
+ return bxattr_exit_ok;
default:
Mmsg3(jcr->errmsg, _("Unable to get acl on xattr %s on file \"%s\": ERR=%s\n"),
attrname, jcr->last_fname, be.bstrerror());
Dmsg3(100, "facl/acl of xattr %s on \"%s\" failed: ERR=%s\n",
attrname, jcr->last_fname, be.bstrerror());
free(acls);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
}
Dmsg3(100, "acltotext of xattr %s on \"%s\" failed: ERR=%s\n",
attrname, jcr->last_fname, be.bstrerror());
free(acls);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
} else {
*acl_text = NULL;
} else {
*acl_text = NULL;
}
- return bsub_exit_ok;
+ return bxattr_exit_ok;
#endif /* HAVE_EXTENDED_ACL */
#else /* HAVE_ACL */
- return bsub_exit_ok;
+ return bxattr_exit_ok;
#endif /* HAVE_ACL */
}
/*
* Forward declaration for recursive function call.
*/
-static bsub_exit_code solaris_save_xattrs(JCR *jcr, const char *xattr_namespace, const char *attr_parent);
+static bxattr_exit_code solaris_save_xattrs(JCR *jcr, const char *xattr_namespace, const char *attr_parent);
/*
* Save an extended or extensible attribute.
* acl_string is an acl text when a non trivial acl is set on the xattr.
* actual_xattr_data is the content of the xattr file.
*/
-static bsub_exit_code solaris_save_xattr(JCR *jcr, int fd, const char *xattr_namespace,
+static bxattr_exit_code solaris_save_xattr(JCR *jcr, int fd, const char *xattr_namespace,
const char *attrname, bool toplevel_hidden_dir, int stream)
{
int cnt;
int attrfd = -1;
struct stat st;
- struct xattr_link_cache_entry *xlce;
+ xattr_link_cache_entry *xlce;
char target_attrname[PATH_MAX];
char link_source[PATH_MAX];
char *acl_text = NULL;
char attribs[MAXSTRING];
char buffer[BUFSIZ];
- bsub_exit_code retval = bsub_exit_nok;
+ bxattr_exit_code retval = bxattr_exit_error;
berrno be;
bsnprintf(target_attrname, sizeof(target_attrname), "%s%s", xattr_namespace, attrname);
if (fstatat(fd, attrname, &st, AT_SYMLINK_NOFOLLOW) < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg3(jcr->errmsg, _("Unable to get status on xattr %s on file \"%s\": ERR=%s\n"),
/*
* Get any acl on the xattr.
*/
- if (solaris_save_xattr_acl(jcr, attrfd, attrname, &acl_text) != bsub_exit_ok)
+ if (solaris_save_xattr_acl(jcr, attrfd, attrname, &acl_text) != bxattr_exit_ok)
goto bail_out;
/*
/*
* Get any acl on the xattr.
*/
- if (solaris_save_xattr_acl(jcr, attrfd, attrname, &acl_text) != bsub_exit_ok)
+ if (solaris_save_xattr_acl(jcr, attrfd, attrname, &acl_text) != bxattr_exit_ok)
goto bail_out;
/*
/*
* Get any acl on the xattr.
*/
- if (solaris_save_xattr_acl(jcr, attrfd, attrname, &acl_text) != bsub_exit_ok) {
+ if (solaris_save_xattr_acl(jcr, attrfd, attrname, &acl_text) != bxattr_exit_ok) {
goto bail_out;
}
if ((attrfd = openat(fd, attrname, O_RDONLY)) < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg3(jcr->errmsg, _("Unable to open xattr %s on \"%s\": ERR=%s\n"),
if (readlink(attrname, link_source, sizeof(link_source)) < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg3(jcr->errmsg, _("Unable to read symlin %s on \"%s\": ERR=%s\n"),
if (fchdir(fd) < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg2(jcr->errmsg, _("Unable to chdir to xattr space of file \"%s\": ERR=%s\n"),
return retval;
}
-static bsub_exit_code solaris_save_xattrs(JCR *jcr, const char *xattr_namespace, const char *attr_parent)
+static bxattr_exit_code solaris_save_xattrs(JCR *jcr, const char *xattr_namespace, const char *attr_parent)
{
const char *name;
int fd, filefd = -1, attrdirfd = -1;
DIR *dirp;
struct dirent *dp;
char current_xattr_namespace[PATH_MAX];
- bsub_exit_code retval = bsub_exit_nok;
+ bxattr_exit_code retval = bxattr_exit_error;
berrno be;
/*
if ((filefd = open(name, O_RDONLY | O_NONBLOCK)) < 0) {
switch (errno) {
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg2(jcr->errmsg, _("Unable to open file \"%s\": ERR=%s\n"),
* Which is not problem we just forget about this this xattr.
* But as this is not an error we return a positive return value.
*/
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
Mmsg3(jcr->errmsg, _("Unable to open xattr space %s on file \"%s\": ERR=%s\n"),
}
closedir(dirp);
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
bail_out:
if (attrdirfd != -1)
}
#ifdef HAVE_ACL
-static bsub_exit_code solaris_restore_xattr_acl(JCR *jcr, int fd, const char *attrname, char *acl_text)
+static bxattr_exit_code solaris_restore_xattr_acl(JCR *jcr, int fd, const char *attrname, char *acl_text)
{
#ifdef HAVE_EXTENDED_ACL
int error;
if ((error = acl_fromtext(acl_text, &aclp)) != 0) {
Mmsg1(jcr->errmsg, _("Unable to convert acl from text on file \"%s\"\n"),
jcr->last_fname);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
if ((fd != -1 && facl_set(fd, aclp) != 0) ||
attrname, jcr->last_fname, be.bstrerror());
Dmsg3(100, "Unable to restore acl of xattr %s on file \"%s\": ERR=%s\n",
attrname, jcr->last_fname, be.bstrerror());
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
if (aclp) {
acl_free(aclp);
}
- return bsub_exit_ok;
+ return bxattr_exit_ok;
#else /* HAVE_EXTENDED_ACL */
int n;
attrname, jcr->last_fname, be.bstrerror());
Dmsg3(100, "Unable to restore acl of xattr %s on file \"%s\": ERR=%s\n",
attrname, jcr->last_fname, be.bstrerror());
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
}
if (acls) {
free(acls);
}
- return bsub_exit_ok;
+ return bxattr_exit_ok;
#endif /* HAVE_EXTENDED_ACL */
}
#endif /* HAVE_ACL */
-static bsub_exit_code solaris_restore_xattrs(JCR *jcr, bool is_extensible)
+static bxattr_exit_code solaris_restore_xattrs(JCR *jcr, bool is_extensible)
{
int fd, filefd = -1, attrdirfd = -1, attrfd = -1;
int used_bytes, total_bytes, cnt;
int32_t inum;
struct stat st;
struct timeval times[2];
- bsub_exit_code retval = bsub_exit_nok;
+ bxattr_exit_code retval = bxattr_exit_error;
berrno be;
/*
/*
* Successfully restored xattr.
*/
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
} else {
if ((bp = strchr(acl_text, '\0')) == (char *)NULL ||
/*
* Successfully restored xattr.
*/
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
default:
goto bail_out;
* Gentile way of the system saying this type of xattr layering is not supported.
* But as this is not an error we return a positive return value.
*/
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
break;
case ENOENT:
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
break;
default:
Mmsg3(jcr->errmsg, _("Unable to restore owner of xattr %s on file \"%s\": ERR=%s\n"),
#ifdef HAVE_ACL
if (acl_text && *acl_text)
- if (solaris_restore_xattr_acl(jcr, attrfd, target_attrname, acl_text) != bsub_exit_ok)
+ if (solaris_restore_xattr_acl(jcr, attrfd, target_attrname, acl_text) != bxattr_exit_ok)
goto bail_out;
#endif /* HAVE_ACL */
/*
* Successfully restored xattr.
*/
- retval = bsub_exit_ok;
+ retval = bxattr_exit_ok;
goto bail_out;
parse_error:
return retval;
}
-static bsub_exit_code solaris_build_xattr_streams(JCR *jcr, FF_PKT *ff_pkt)
+static bxattr_exit_code solaris_build_xattr_streams(JCR *jcr, FF_PKT *ff_pkt)
{
char cwd[PATH_MAX];
- bsub_exit_code retval = bsub_exit_ok;
+ bxattr_exit_code retval = bxattr_exit_ok;
/*
* First see if extended attributes or extensible attributes are present.
return retval;
}
-static bsub_exit_code solaris_parse_xattr_streams(JCR *jcr, int stream)
+static bxattr_exit_code solaris_parse_xattr_streams(JCR *jcr, int stream)
{
char cwd[PATH_MAX];
bool is_extensible = false;
- bsub_exit_code retval;
+ bxattr_exit_code retval;
/*
* First make sure we can restore xattr on the filesystem.
jcr->last_fname);
Dmsg1(100, "Unable to restore extensible attributes on file \"%s\", filesystem doesn't support this\n",
jcr->last_fname);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
is_extensible = true;
jcr->last_fname);
Dmsg1(100, "Unable to restore extended attributes on file \"%s\", filesystem doesn't support this\n",
jcr->last_fname);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
break;
default:
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
/*
/*
* Function pointers to the build and parse function to use for these xattrs.
*/
-static bsub_exit_code (*os_build_xattr_streams)(JCR *jcr, FF_PKT *ff_pkt) = solaris_build_xattr_streams;
-static bsub_exit_code (*os_parse_xattr_streams)(JCR *jcr, int stream) = solaris_parse_xattr_streams;
+static bxattr_exit_code (*os_build_xattr_streams)(JCR *jcr, FF_PKT *ff_pkt) = solaris_build_xattr_streams;
+static bxattr_exit_code (*os_parse_xattr_streams)(JCR *jcr, int stream) = solaris_parse_xattr_streams;
#endif /* defined(HAVE_SUN_OS) */
/*
* Entry points when compiled with support for XATTRs on a supported platform.
*/
-bsub_exit_code build_xattr_streams(JCR *jcr, FF_PKT *ff_pkt)
+bxattr_exit_code build_xattr_streams(JCR *jcr, FF_PKT *ff_pkt)
{
if (os_build_xattr_streams) {
return (*os_build_xattr_streams)(jcr, ff_pkt);
}
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
-bsub_exit_code parse_xattr_streams(JCR *jcr, int stream)
+bxattr_exit_code parse_xattr_streams(JCR *jcr, int stream)
{
int cnt;
Jmsg2(jcr, M_WARNING, 0,
_("Can't restore Extended Attributes of %s - incompatible xattr stream encountered - %d\n"),
jcr->last_fname, stream);
- return bsub_exit_nok;
+ return bxattr_exit_error;
}
#endif