X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Ffiled%2Facl.c;h=ca8313a2e3b3ae12aaa6b01a5557a38c50f26a54;hb=aa941b9e61a7944ac6ad87d4adc82c099dedf2b3;hp=921873a02bf8432eac8fae6bbf0d629a4c50d6cb;hpb=53890b9ad0c019f1dc6e90faebfc91817bbdadb7;p=bacula%2Fbacula diff --git a/bacula/src/filed/acl.c b/bacula/src/filed/acl.c index 921873a02b..ca8313a2e3 100644 --- a/bacula/src/filed/acl.c +++ b/bacula/src/filed/acl.c @@ -59,32 +59,32 @@ /* * Entry points when compiled without support for ACLs or on an unsupported platform. */ -bsub_exit_code build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +bacl_exit_code build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { - return bsub_exit_fatal; + return bacl_exit_fatal; } -bsub_exit_code parse_acl_stream(JCR *jcr, int stream) +bacl_exit_code parse_acl_stream(JCR *jcr, int stream) { - return bsub_exit_fatal; + return bacl_exit_fatal; } #else /* * Send an ACL stream to the SD. */ -static bsub_exit_code send_acl_stream(JCR *jcr, int stream) +static bacl_exit_code send_acl_stream(JCR *jcr, int stream) { BSOCK *sd = jcr->store_bsock; POOLMEM *msgsave; #ifdef FD_NO_SEND_TEST - return bsub_exit_ok; + return bacl_exit_ok; #endif /* * Sanity check */ if (jcr->acl_data_len <= 0) - return bsub_exit_ok; + return bacl_exit_ok; /* * Send header @@ -92,7 +92,7 @@ static bsub_exit_code send_acl_stream(JCR *jcr, int stream) 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 bacl_exit_fatal; } /* @@ -107,7 +107,7 @@ static bsub_exit_code send_acl_stream(JCR *jcr, int stream) sd->msglen = 0; Jmsg1(jcr, M_FATAL, 0, _("Network send error to SD. ERR=%s\n"), sd->bstrerror()); - return bsub_exit_fatal; + return bacl_exit_fatal; } jcr->JobBytes += sd->msglen; @@ -115,11 +115,11 @@ static bsub_exit_code send_acl_stream(JCR *jcr, int stream) 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 bacl_exit_fatal; } Dmsg1(200, "ACL of file: %s successfully backed up!\n", jcr->last_fname); - return bsub_exit_ok; + return bacl_exit_ok; } #if defined(HAVE_AIX_OS) @@ -132,7 +132,7 @@ static bsub_exit_code send_acl_stream(JCR *jcr, int stream) static int os_access_acl_streams[1] = { STREAM_ACL_AIX_TEXT }; static int os_default_acl_streams[1] = { -1 }; -static bsub_exit_code aix_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code aix_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { char *acl_text; @@ -141,22 +141,22 @@ static bsub_exit_code aix_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) actuallyfree(acl_text); return send_acl_stream(jcr, STREAM_ACL_AIX_TEXT); } - return bsub_exit_nok; + return bacl_exit_error; } -static bsub_exit_code aix_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code aix_parse_acl_streams(JCR *jcr, int stream) { if (acl_put(jcr->last_fname, jcr->acl_data, 0) != 0) { - return bsub_exit_nok; + return bacl_exit_error; } - return bsub_exit_ok; + return bacl_exit_ok; } /* * For this OS setup the build and parse function pointer to the OS specific functions. */ -static bsub_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = aix_build_acl_streams; -static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = aix_parse_acl_streams; +static bacl_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = aix_build_acl_streams; +static bacl_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = aix_parse_acl_streams; #elif defined(HAVE_DARWIN_OS) || \ defined(HAVE_FREEBSD_OS) || \ @@ -319,7 +319,7 @@ static bool acl_is_trivial(acl_t acl) /* * Generic wrapper around acl_get_file call. */ -static bsub_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) +static bacl_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) { acl_t acl; acl_type_t ostype; @@ -346,7 +346,7 @@ static bsub_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; acl_free(acl); - return bsub_exit_ok; + return bacl_exit_ok; } #endif @@ -362,7 +362,7 @@ static bsub_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; acl_free(acl); - return bsub_exit_ok; + return bacl_exit_ok; } #endif @@ -370,18 +370,18 @@ static bsub_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) jcr->acl_data_len = pm_strcpy(jcr->acl_data, acl_text); acl_free(acl); acl_free(acl_text); - return bsub_exit_ok; + return bacl_exit_ok; } - Jmsg2(jcr, M_ERROR, 0, _("acl_to_text error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acl_to_text error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg2(100, "acl_to_text error file=%s ERR=%s\n", - jcr->last_fname, be.bstrerror()); + jcr->last_fname, be.bstrerror()); pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; acl_free(acl); - return bsub_exit_nok; + return bacl_exit_error; } /* @@ -396,17 +396,17 @@ static bsub_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) case ENOENT: pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; default: /* Some real error */ - Jmsg2(jcr, M_ERROR, 0, _("acl_get_file error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acl_get_file error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg2(100, "acl_get_file error file=%s ERR=%s\n", - jcr->last_fname, be.bstrerror()); + jcr->last_fname, be.bstrerror()); pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_nok; + return bacl_exit_error; } } /* @@ -414,13 +414,13 @@ static bsub_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype) */ pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; } /* * Generic wrapper around acl_set_file call. */ -static bsub_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype) +static bacl_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype) { acl_t acl; acl_type_t ostype; @@ -432,25 +432,25 @@ static bsub_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype) ostype = bac_to_os_acltype(acltype); if (ostype == ACL_TYPE_DEFAULT && strlen(jcr->acl_data) == 0) { if (acl_delete_def_file(jcr->last_fname) == 0) { - return bsub_exit_ok; + return bacl_exit_ok; } switch (errno) { case ENOENT: - return bsub_exit_ok; + return bacl_exit_ok; default: - Jmsg2(jcr, M_ERROR, 0, _("acl_delete_def_file error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + Mmsg2(jcr->errmsg, _("acl_delete_def_file error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); + return bacl_exit_error; } } acl = acl_from_text(jcr->acl_data); if (acl == NULL) { - Jmsg2(jcr, M_ERROR, 0, _("acl_from_text error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acl_from_text error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "acl_from_text error acl=%s file=%s ERR=%s\n", jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + return bacl_exit_error; } #ifndef HAVE_FREEBSD_OS @@ -459,12 +459,12 @@ static bsub_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype) * As it does the right thing, given valid input, just ignore acl_valid(). */ if (acl_valid(acl) != 0) { - Jmsg2(jcr, M_ERROR, 0, _("acl_valid error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acl_valid error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "acl_valid error acl=%s file=%s ERR=%s\n", jcr->acl_data, jcr->last_fname, be.bstrerror()); acl_free(acl); - return bsub_exit_nok; + return bacl_exit_error; } #endif @@ -478,18 +478,18 @@ static bsub_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype) switch (errno) { case ENOENT: acl_free(acl); - return bsub_exit_nok; + return bacl_exit_ok; default: - Jmsg2(jcr, M_ERROR, 0, _("acl_set_file error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acl_set_file error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "acl_set_file error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); + jcr->acl_data, jcr->last_fname, be.bstrerror()); acl_free(acl); - return bsub_exit_nok; + return bacl_exit_error; } } acl_free(acl); - return bsub_exit_ok; + return bacl_exit_ok; } /* @@ -502,7 +502,7 @@ static bsub_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype) static int os_access_acl_streams[1] = { STREAM_ACL_DARWIN_ACCESS_ACL }; static int os_default_acl_streams[1] = { -1 }; -static bsub_exit_code darwin_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code darwin_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { #if defined(ACL_TYPE_EXTENDED) /* @@ -514,23 +514,23 @@ static bsub_exit_code darwin_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) * * Read access ACLs for files, dirs and links */ - if (generic_get_acl_from_os(jcr, BACL_TYPE_EXTENDED) == bsub_exit_fatal) - return bsub_exit_fatal; + if (generic_get_acl_from_os(jcr, BACL_TYPE_EXTENDED) == bacl_exit_fatal) + return bacl_exit_fatal; #else /* * Read access ACLs for files, dirs and links */ - if (generic_get_acl_from_os(jcr, BACL_TYPE_ACCESS) == bsub_exit_fatal) - return bsub_exit_fatal; + if (generic_get_acl_from_os(jcr, BACL_TYPE_ACCESS) == bacl_exit_fatal) + return bacl_exit_fatal; #endif if (jcr->acl_data_len > 0) { return send_acl_stream(jcr, STREAM_ACL_DARWIN_ACCESS_ACL); } - return bsub_exit_ok; + return bacl_exit_ok; } -static bsub_exit_code darwin_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code darwin_parse_acl_streams(JCR *jcr, int stream) { #if defined(ACL_TYPE_EXTENDED) return generic_set_acl_on_os(jcr, BACL_TYPE_EXTENDED); @@ -542,8 +542,8 @@ static bsub_exit_code darwin_parse_acl_streams(JCR *jcr, int stream) /* * For this OS setup the build and parse function pointer to the OS specific functions. */ -static bsub_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = darwin_build_acl_streams; -static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = darwin_parse_acl_streams; +static bacl_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = darwin_build_acl_streams; +static bacl_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = darwin_parse_acl_streams; #elif defined(HAVE_FREEBSD_OS) || \ defined(HAVE_IRIX_OS) || \ @@ -563,36 +563,36 @@ static int os_access_acl_streams[1] = { STREAM_ACL_LINUX_ACCESS_ACL }; static int os_default_acl_streams[1] = { STREAM_ACL_LINUX_DEFAULT_ACL }; #endif -static bsub_exit_code generic_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code generic_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { /* * Read access ACLs for files, dirs and links */ - if (generic_get_acl_from_os(jcr, BACL_TYPE_ACCESS) == bsub_exit_fatal) - return bsub_exit_fatal; + if (generic_get_acl_from_os(jcr, BACL_TYPE_ACCESS) == bacl_exit_fatal) + return bacl_exit_fatal; if (jcr->acl_data_len > 0) { - if (send_acl_stream(jcr, os_access_acl_streams[0]) == bsub_exit_fatal) - return bsub_exit_fatal; + if (send_acl_stream(jcr, os_access_acl_streams[0]) == bacl_exit_fatal) + return bacl_exit_fatal; } /* * Directories can have default ACLs too */ if (ff_pkt->type == FT_DIREND) { - if (generic_get_acl_from_os(jcr, BACL_TYPE_DEFAULT) == bsub_exit_fatal) - return bsub_exit_fatal; + if (generic_get_acl_from_os(jcr, BACL_TYPE_DEFAULT) == bacl_exit_fatal) + return bacl_exit_fatal; if (jcr->acl_data_len > 0) { - if (send_acl_stream(jcr, os_default_acl_streams[0]) == bsub_exit_fatal) - return bsub_exit_fatal; + if (send_acl_stream(jcr, os_default_acl_streams[0]) == bacl_exit_fatal) + return bacl_exit_fatal; } } - return bsub_exit_ok; + return bacl_exit_ok; } -static bsub_exit_code generic_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code generic_parse_acl_streams(JCR *jcr, int stream) { - int cnt; + unsigned int cnt; switch (stream) { case STREAM_UNIX_ACCESS_ACL: @@ -615,14 +615,14 @@ static bsub_exit_code generic_parse_acl_streams(JCR *jcr, int stream) } break; } - return bsub_exit_nok; + return bacl_exit_error; } /* * For this OSes setup the build and parse function pointer to the OS specific functions. */ -static bsub_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = generic_build_acl_streams; -static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = generic_parse_acl_streams; +static bacl_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = generic_build_acl_streams; +static bacl_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = generic_parse_acl_streams; #elif defined(HAVE_OSF1_OS) @@ -632,26 +632,26 @@ static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = generic_pa static int os_access_acl_streams[1] = { STREAM_ACL_TRU64_ACCESS_ACL }; static int os_default_acl_streams[2] = { STREAM_ACL_TRU64_DEFAULT_ACL, STREAM_ACL_TRU64_DEFAULT_DIR_ACL }; -static bsub_exit_code tru64_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code tru64_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { /* * Read access ACLs for files, dirs and links */ if ((jcr->acl_data_len = generic_get_acl_from_os(jcr, BACL_TYPE_ACCESS)) < 0) - return bsub_exit_nok; + return bacl_exit_error; if (jcr->acl_data_len > 0) { if (!send_acl_stream(jcr, STREAM_ACL_TRU64_ACCESS_ACL)) - return bsub_exit_nok; + return bacl_exit_error; } /* * Directories can have default ACLs too */ if (ff_pkt->type == FT_DIREND) { if ((jcr->acl_data_len = generic_get_acl_from_os(jcr, BACL_TYPE_DEFAULT)) < 0) - return bsub_exit_nok; + return bacl_exit_error; if (jcr->acl_data_len > 0) { if (!send_acl_stream(jcr, STREAM_ACL_TRU64_DEFAULT_ACL)) - return bsub_exit_nok; + return bacl_exit_error; } /* * Tru64 has next to BACL_TYPE_DEFAULT also BACL_TYPE_DEFAULT_DIR acls. @@ -660,16 +660,16 @@ static bsub_exit_code tru64_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) * Section 21.5 Default ACLs */ if ((jcr->acl_data_len = generic_get_acl_from_os(jcr, BACL_TYPE_DEFAULT_DIR)) < 0) - return bsub_exit_nok; + return bacl_exit_error; if (jcr->acl_data_len > 0) { if (!send_acl_stream(jcr, STREAM_ACL_TRU64_DEFAULT_DIR_ACL)) - return bsub_exit_nok; + return bacl_exit_error; } } - return bsub_exit_ok; + return bacl_exit_ok; } -static bsub_exit_code tru64_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code tru64_parse_acl_streams(JCR *jcr, int stream) { switch (stream) { case STREAM_UNIX_ACCESS_ACL: @@ -685,8 +685,8 @@ static bsub_exit_code tru64_parse_acl_streams(JCR *jcr, int stream) /* * For this OS setup the build and parse function pointer to the OS specific functions. */ -static bsub_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = tru64_build_acl_streams; -static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = tru64_parse_acl_streams; +static bacl_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = tru64_build_acl_streams; +static bacl_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = tru64_parse_acl_streams; #endif @@ -730,7 +730,7 @@ static bool acl_is_trivial(int count, struct acl_entry *entries, struct stat sb) /* * OS specific functions for handling different types of acl streams. */ -static bsub_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { int n; struct acl_entry acls[NACLENTRIES]; @@ -746,27 +746,27 @@ static bsub_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) */ pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; #endif case ENOENT: pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; default: - Jmsg2(jcr, M_ERROR, 0, _("getacl error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("getacl error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg2(100, "getacl error file=%s ERR=%s\n", - jcr->last_fname, be.bstrerror()); + jcr->last_fname, be.bstrerror()); pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_nok; + return bacl_exit_error; } } if (n == 0) { pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; } if ((n = getacl(jcr->last_fname, n, acls)) > 0) { if (acl_is_trivial(n, acls, ff_pkt->statp)) { @@ -776,7 +776,7 @@ static bsub_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) */ pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; } if ((acl_text = acltostr(n, acls, FORM_SHORT)) != NULL) { jcr->acl_data_len = pm_strcpy(jcr->acl_data, acl_text); @@ -784,16 +784,16 @@ static bsub_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) return send_acl_stream(jcr, STREAM_ACL_HPUX_ACL_ENTRY); } - Jmsg2(jcr, M_ERROR, 0, _("acltostr error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acltostr error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "acltostr error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + jcr->acl_data, jcr->last_fname, be.bstrerror()); + return bacl_exit_error; } - return bsub_exit_nok; + return bacl_exit_error; } -static bsub_exit_code hpux_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code hpux_parse_acl_streams(JCR *jcr, int stream) { int n, stat; struct acl_entry acls[NACLENTRIES]; @@ -801,19 +801,19 @@ static bsub_exit_code hpux_parse_acl_streams(JCR *jcr, int stream) n = strtoacl(jcr->acl_data, 0, NACLENTRIES, acls, ACL_FILEOWNER, ACL_FILEGROUP); if (n <= 0) { - Jmsg2(jcr, M_ERROR, 0, _("strtoacl error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("strtoacl error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "strtoacl error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + jcr->acl_data, jcr->last_fname, be.bstrerror()); + return bacl_exit_error; } if (strtoacl(jcr->acl_data, n, NACLENTRIES, acls, ACL_FILEOWNER, ACL_FILEGROUP) != n) { - Jmsg2(jcr, M_ERROR, 0, _("strtoacl error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("strtoacl error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "strtoacl error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); + jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + return bacl_exit_error; } /* * Restore the ACLs, but don't complain about links which really should @@ -824,23 +824,23 @@ static bsub_exit_code hpux_parse_acl_streams(JCR *jcr, int stream) if (setacl(jcr->last_fname, n, acls) != 0 && jcr->last_type != FT_LNK) { switch (errno) { case ENOENT: - return bsub_exit_nok; + return bacl_exit_ok; default: - Jmsg2(jcr, M_ERROR, 0, _("setacl error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("setacl error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "setacl error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + jcr->acl_data, jcr->last_fname, be.bstrerror()); + return bacl_exit_error; } } - return bsub_exit_ok; + return bacl_exit_ok; } /* * For this OS setup the build and parse function pointer to the OS specific functions. */ -static bsub_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = hpux_build_acl_streams; -static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = hpux_parse_acl_streams; +static bacl_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = hpux_build_acl_streams; +static bacl_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = hpux_parse_acl_streams; #elif defined(HAVE_SUN_OS) #ifdef HAVE_SYS_ACL_H @@ -889,12 +889,12 @@ static int os_default_acl_streams[1] = { -1 }; * for acls retrieved and stored in the database with older fd versions. If the * new interface is not defined (Solaris 9 and older we fall back to the old code) */ -static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { int acl_enabled, flags; acl_t *aclp; char *acl_text; - bsub_exit_code stream_status = bsub_exit_nok; + bacl_exit_code stream_status = bacl_exit_error; berrno be; /* @@ -905,13 +905,18 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) case 0: pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; case -1: - Jmsg2(jcr, M_ERROR, 0, _("pathconf error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); - Dmsg2(100, "pathconf error file=%s ERR=%s\n", - jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + switch (errno) { + case ENOENT: + return bacl_exit_ok; + default: + Mmsg2(jcr->errmsg, _("pathconf error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); + Dmsg2(100, "pathconf error file=%s ERR=%s\n", + jcr->last_fname, be.bstrerror()); + return bacl_exit_error; + } default: break; } @@ -920,11 +925,16 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) * Get ACL info: don't bother allocating space if there is only a trivial ACL. */ if (acl_get(jcr->last_fname, ACL_NO_TRIVIAL, &aclp) != 0) { - Jmsg2(jcr, M_ERROR, 0, _("acl_get error on file \"%s\": ERR=%s\n"), - jcr->last_fname, acl_strerror(errno)); - Dmsg2(100, "acl_get error file=%s ERR=%s\n", - jcr->last_fname, acl_strerror(errno)); - return bsub_exit_nok; + switch (errno) { + case ENOENT: + return bacl_exit_ok; + default: + Mmsg2(jcr->errmsg, _("acl_get error on file \"%s\": ERR=%s\n"), + jcr->last_fname, acl_strerror(errno)); + Dmsg2(100, "acl_get error file=%s ERR=%s\n", + jcr->last_fname, acl_strerror(errno)); + return bacl_exit_error; + } } if (!aclp) { @@ -934,7 +944,7 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) */ pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; } #if defined(ACL_SID_FMT) @@ -966,7 +976,7 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) return stream_status; } -static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) { acl_t *aclp; int acl_enabled, error; @@ -982,15 +992,20 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) acl_enabled = pathconf(jcr->last_fname, _PC_ACL_ENABLED); switch (acl_enabled) { case 0: - Jmsg1(jcr, M_ERROR, 0, _("Trying to restore acl on file \"%s\" on filesystem without acl support\n"), - jcr->last_fname); - return bsub_exit_nok; + Mmsg1(jcr->errmsg, _("Trying to restore acl on file \"%s\" on filesystem without acl support\n"), + jcr->last_fname); + return bacl_exit_error; case -1: - Jmsg2(jcr, M_ERROR, 0, _("pathconf error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); - Dmsg3(100, "pathconf error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + switch (errno) { + case ENOENT: + return bacl_exit_ok; + default: + Mmsg2(jcr->errmsg, _("pathconf error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); + Dmsg3(100, "pathconf error acl=%s file=%s ERR=%s\n", + jcr->acl_data, jcr->last_fname, be.bstrerror()); + return bacl_exit_error; + } default: /* * On a filesystem with ACL support make sure this particilar ACL type can be restored. @@ -1001,9 +1016,9 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) * An aclent can be restored on filesystems with _ACL_ACLENT_ENABLED or _ACL_ACE_ENABLED support. */ if ((acl_enabled & (_ACL_ACLENT_ENABLED | _ACL_ACE_ENABLED)) == 0) { - Jmsg1(jcr, M_ERROR, 0, _("Trying to restore acl on file \"%s\" on filesystem without aclent acl support\n"), - jcr->last_fname); - return bsub_exit_nok; + Mmsg1(jcr->errmsg, _("Trying to restore acl on file \"%s\" on filesystem without aclent acl support\n"), + jcr->last_fname); + return bacl_exit_error; } break; case STREAM_ACL_SOLARIS_ACE: @@ -1011,9 +1026,9 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) * An ace can only be restored on a filesystem with _ACL_ACE_ENABLED support. */ if ((acl_enabled & _ACL_ACE_ENABLED) == 0) { - Jmsg1(jcr, M_ERROR, 0, _("Trying to restore acl on file \"%s\" on filesystem without ace acl support\n"), - jcr->last_fname); - return bsub_exit_nok; + Mmsg1(jcr->errmsg, _("Trying to restore acl on file \"%s\" on filesystem without ace acl support\n"), + jcr->last_fname); + return bacl_exit_error; } break; default: @@ -1026,11 +1041,11 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) } if ((error = acl_fromtext(jcr->acl_data, &aclp)) != 0) { - Jmsg2(jcr, M_ERROR, 0, _("acl_fromtext error on file \"%s\": ERR=%s\n"), - jcr->last_fname, acl_strerror(error)); + Mmsg2(jcr->errmsg, _("acl_fromtext error on file \"%s\": ERR=%s\n"), + jcr->last_fname, acl_strerror(error)); Dmsg3(100, "acl_fromtext error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, acl_strerror(error)); - return bsub_exit_nok; + jcr->acl_data, jcr->last_fname, acl_strerror(error)); + return bacl_exit_error; } /* @@ -1039,16 +1054,16 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) switch (stream) { case STREAM_ACL_SOLARIS_ACLENT: if (acl_type(aclp) != ACLENT_T) { - Jmsg1(jcr, M_ERROR, 0, _("wrong encoding of acl type in acl stream on file \"%s\"\n"), - jcr->last_fname); - return bsub_exit_nok; + Mmsg1(jcr->errmsg, _("wrong encoding of acl type in acl stream on file \"%s\"\n"), + jcr->last_fname); + return bacl_exit_error; } break; case STREAM_ACL_SOLARIS_ACE: if (acl_type(aclp) != ACE_T) { - Jmsg1(jcr, M_ERROR, 0, _("wrong encoding of acl type in acl stream on file \"%s\"\n"), - jcr->last_fname); - return bsub_exit_nok; + Mmsg1(jcr->errmsg, _("wrong encoding of acl type in acl stream on file \"%s\"\n"), + jcr->last_fname); + return bacl_exit_error; } break; default: @@ -1065,19 +1080,24 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) * don't save acls of symlinks (which cannot have acls anyhow) */ if ((error = acl_set(jcr->last_fname, aclp)) == -1 && jcr->last_type != FT_LNK) { - Jmsg2(jcr, M_ERROR, 0, _("acl_set error on file \"%s\": ERR=%s\n"), - jcr->last_fname, acl_strerror(error)); - Dmsg3(100, "acl_set error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, acl_strerror(error)); - - acl_free(aclp); - return bsub_exit_nok; + switch (errno) { + case ENOENT: + acl_free(aclp); + return bacl_exit_ok; + default: + Mmsg2(jcr->errmsg, _("acl_set error on file \"%s\": ERR=%s\n"), + jcr->last_fname, acl_strerror(error)); + Dmsg3(100, "acl_set error acl=%s file=%s ERR=%s\n", + jcr->acl_data, jcr->last_fname, acl_strerror(error)); + acl_free(aclp); + return bacl_exit_error; + } } acl_free(aclp); - return bsub_exit_ok; + return bacl_exit_ok; default: - return bsub_exit_nok; + return bacl_exit_error; } /* end switch (stream) */ } @@ -1113,7 +1133,7 @@ static bool acl_is_trivial(int count, aclent_t *entries) /* * OS specific functions for handling different types of acl streams. */ -static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +static bacl_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { int n; aclent_t *acls; @@ -1122,7 +1142,7 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) n = acl(jcr->last_fname, GETACLCNT, 0, NULL); if (n < MIN_ACL_ENTRIES) - return bsub_exit_nok; + return bacl_exit_error; acls = (aclent_t *)malloc(n * sizeof(aclent_t)); if (acl(jcr->last_fname, GETACL, n, acls) == n) { @@ -1134,7 +1154,7 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) free(acls); pm_strcpy(jcr->acl_data, ""); jcr->acl_data_len = 0; - return bsub_exit_ok; + return bacl_exit_ok; } if ((acl_text = acltotext(acls, n)) != NULL) { @@ -1144,17 +1164,17 @@ static bsub_exit_code solaris_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) return send_acl_stream(jcr, STREAM_ACL_SOLARIS_ACLENT); } - Jmsg2(jcr, M_ERROR, 0, _("acltotext error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acltotext error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "acltotext error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); + jcr->acl_data, jcr->last_fname, be.bstrerror()); } free(acls); - return bsub_exit_nok; + return bacl_exit_error; } -static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) +static bacl_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) { int n; aclent_t *acls; @@ -1162,11 +1182,11 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) acls = aclfromtext(jcr->acl_data, &n); if (!acls) { - Jmsg2(jcr, M_ERROR, 0, _("aclfromtext error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("aclfromtext error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "aclfromtext error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); - return bsub_exit_nok; + jcr->acl_data, jcr->last_fname, be.bstrerror()); + return bacl_exit_error; } /* @@ -1177,26 +1197,26 @@ static bsub_exit_code solaris_parse_acl_streams(JCR *jcr, int stream) switch (errno) { case ENOENT: actuallyfree(acls); - return bsub_exit_nok; + return bacl_exit_ok; default: - Jmsg2(jcr, M_ERROR, 0, _("acl(SETACL) error on file \"%s\": ERR=%s\n"), - jcr->last_fname, be.bstrerror()); + Mmsg2(jcr->errmsg, _("acl(SETACL) error on file \"%s\": ERR=%s\n"), + jcr->last_fname, be.bstrerror()); Dmsg3(100, "acl(SETACL) error acl=%s file=%s ERR=%s\n", - jcr->acl_data, jcr->last_fname, be.bstrerror()); + jcr->acl_data, jcr->last_fname, be.bstrerror()); actuallyfree(acls); - return bsub_exit_nok; + return bacl_exit_error; } } actuallyfree(acls); - return bsub_exit_ok; + return bacl_exit_ok; } #endif /* HAVE_EXTENDED_ACL */ /* * For this OS setup the build and parse function pointer to the OS specific functions. */ -static bsub_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = solaris_build_acl_streams; -static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = solaris_parse_acl_streams; +static bacl_exit_code (*os_build_acl_streams)(JCR *jcr, FF_PKT *ff_pkt) = solaris_build_acl_streams; +static bacl_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = solaris_parse_acl_streams; #endif /* HAVE_SUN_OS */ @@ -1207,7 +1227,7 @@ static bsub_exit_code (*os_parse_acl_streams)(JCR *jcr, int stream) = solaris_pa /* * Read and send an ACL for the last encountered file. */ -bsub_exit_code build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) +bacl_exit_code build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) { /* * Call the appropriate function. @@ -1215,12 +1235,12 @@ bsub_exit_code build_acl_streams(JCR *jcr, FF_PKT *ff_pkt) if (os_build_acl_streams) { return (*os_build_acl_streams)(jcr, ff_pkt); } - return bsub_exit_nok; + return bacl_exit_error; } -bsub_exit_code parse_acl_streams(JCR *jcr, int stream) +bacl_exit_code parse_acl_streams(JCR *jcr, int stream) { - int cnt; + unsigned int cnt; switch (stream) { case STREAM_UNIX_ACCESS_ACL: @@ -1256,6 +1276,6 @@ bsub_exit_code parse_acl_streams(JCR *jcr, int stream) Qmsg2(jcr, M_WARNING, 0, _("Can't restore ACLs of %s - incompatible acl stream encountered - %d\n"), jcr->last_fname, stream); - return bsub_exit_nok; + return bacl_exit_error; } #endif