]> git.sur5r.net Git - bacula/bacula/commitdiff
Change error checking from os specific to generic.
authorMarco van Wieringen <mvw@planets.elm.net>
Thu, 15 Sep 2011 20:46:54 +0000 (22:46 +0200)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:50:01 +0000 (14:50 +0200)
As ENOSYS, ENOTSUP and EOPNOTSUPP are POSIX errors defined on all
platforms we no longer check for an OS specific error but allow
any of the 3 errors to give us the feedback that acls are not supported.
This is cleaner anyway.

bacula/src/filed/acl.c
bacula/src/filed/acl.h

index ed2f5766fc811ee4b24c768d026fce85b096c205..f80b2b53a57ecd3c8dd15acf76c7c92d4fbf7cc2 100644 (file)
@@ -701,8 +701,9 @@ static bacl_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype)
        * Handle errors gracefully.
        */
       switch (errno) {
-#if defined(BACL_ENOTSUP)
-      case BACL_ENOTSUP:
+      case ENOSYS:
+      case ENOTSUP:
+      case EOPNOTSUPP:
          /**
           * If the filesystem reports it doesn't support ACLs we clear the
           * BACL_FLAG_SAVE_NATIVE flag so we skip ACL saves on all other files
@@ -711,7 +712,6 @@ static bacl_exit_code generic_get_acl_from_os(JCR *jcr, bacl_type acltype)
           */
          jcr->acl_data->flags &= ~BACL_FLAG_SAVE_NATIVE;
          goto bail_out;
-#endif
       case ENOENT:
          goto bail_out;
       default:
@@ -755,12 +755,12 @@ static bacl_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype)
       switch (errno) {
       case ENOENT:
          return bacl_exit_ok;
-#if defined(BACL_ENOTSUP)
-      case BACL_ENOTSUP:
+      case ENOSYS:
+      case ENOTSUP:
+      case EOPNOTSUPP:
          Mmsg1(jcr->errmsg, _("acl_delete_def_file error on file \"%s\": filesystem doesn't support ACLs\n"),
                jcr->last_fname);
          return bacl_exit_ok;
-#endif
       default:
          Mmsg2(jcr->errmsg, _("acl_delete_def_file error on file \"%s\": ERR=%s\n"),
                jcr->last_fname, be.bstrerror());
@@ -803,15 +803,15 @@ static bacl_exit_code generic_set_acl_on_os(JCR *jcr, bacl_type acltype)
       case ENOENT:
          acl_free(acl);
          return bacl_exit_ok;
-#if defined(BACL_ENOTSUP)
-      case BACL_ENOTSUP:
+      case ENOSYS:
+      case ENOTSUP:
+      case EOPNOTSUPP:
          Mmsg1(jcr->errmsg, _("acl_set_file error on file \"%s\": filesystem doesn't support ACLs\n"),
                jcr->last_fname);
          Dmsg2(100, "acl_set_file error acl=%s file=%s filesystem doesn't support ACLs\n",
                jcr->acl_data->content, jcr->last_fname);
          acl_free(acl);
          return bacl_exit_ok;
-#endif
       default:
          Mmsg2(jcr->errmsg, _("acl_set_file error on file \"%s\": ERR=%s\n"),
                jcr->last_fname, be.bstrerror());
@@ -1262,8 +1262,9 @@ static bacl_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt)
 
    if ((n = getacl(jcr->last_fname, 0, acls)) < 0) {
       switch (errno) {
-#if defined(BACL_ENOTSUP)
-      case BACL_ENOTSUP:
+      case ENOSYS:
+      case ENOTSUP:
+      case EOPNOTSUPP:
          /**
           * Not supported, just pretend there is nothing to see
           *
@@ -1276,7 +1277,6 @@ static bacl_exit_code hpux_build_acl_streams(JCR *jcr, FF_PKT *ff_pkt)
          pm_strcpy(jcr->acl_data->content, "");
          jcr->acl_data->content_length = 0;
          return bacl_exit_ok;
-#endif
       case ENOENT:
          pm_strcpy(jcr->acl_data->content, "");
          jcr->acl_data->content_length = 0;
index 93615f641182ba9153935e0bc2b3642c5c3ef3cc..d8f1f09ef8f39ecac814a4294873252588150a2a 100644 (file)
@@ -58,18 +58,6 @@ typedef enum {
 #define ACL_TYPE_NONE 0x0
 #endif
 
-#if defined(HAVE_FREEBSD_OS)
-#define BACL_ENOTSUP          EOPNOTSUPP
-#elif defined(HAVE_DARWIN_OS)
-#define BACL_ENOTSUP          EOPNOTSUPP
-#elif defined(HAVE_HPUX_OS)
-#define BACL_ENOTSUP          EOPNOTSUPP
-#elif defined(HAVE_IRIX_OS)
-#define BACL_ENOTSUP          ENOSYS
-#elif defined(HAVE_LINUX_OS) 
-#define BACL_ENOTSUP          ENOTSUP
-#endif
-
 #define BACL_FLAG_SAVE_NATIVE  0x01
 #define BACL_FLAG_SAVE_AFS     0x02