Ben Walton [Sun, 18 Sep 2011 23:46:14 +0000 (19:46 -0400)]
Update auth troubleshooting URL to use MANUAL_AUTH_URL macro
Now that we have a macro for the currently preferred help resource for
use in troubleshooting authentication problem, remove the direct URL
string from help text and replace it with the macro. This will make
future URL changes simpler.
Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Ben Walton [Sun, 18 Sep 2011 23:46:13 +0000 (19:46 -0400)]
Define MANUAL_AUTH_URL in baconfig.h
This value will reference the currently applicable Manual URL for
authentication troublshooting. Currently the same URL is referenced
in multiple files. This will allow updating them all (save for .po
translation files) with a single change.
Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
When the OS reports it doesn't support xattr we clear
either the SAVE or RESTORE native xattr flag. This way
we only test once if a particular filesystem has xattr
support and ignore it for any further file until we
switch filesystems.
When we now encounter a restore error for an ACL due to the
fact ACL support is not enabled on a filesystem we clear
the BACL_FLAG_RESTORE_NATIVE flag so we don't try any other
restores of ACLs on the same filesystem. This saves us a
lot of overhead while we know if one fails due to no support
all the others will too. We do count the errors so the restore
report will show how many ACLs couldn't be restored. This same
algoritm is already implemented for saving ACLs.
As it seems ENOTSUP is defined as EOPNOTSUPP on Linux. The manpages says
certain functions return ENOTSUP while they return EOPNOTSUPP because
the other doesn't really exist. So we have to do some more magic,
restored the old acl errno logic which is somewhat cleaner now
that everything except for IRIX seems to not adhere to POSIX and use
EOPNOTSUPP (which is according to POSIX only valid for a socket).
Added same kind of logic to xattr code as on OSX the xattr functions
are supposed to return ENOTSUP and not EOPNOTSUPP which Linux is
returning there. What a mess trying to write portable code when manpages
just cannot be trusted. Hopefully this is the end of it.
Change error checking from os specific to generic.
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.
As it seems Linux doesn't comply to its own manpages.
It seems that xattr functions return EOPNOTSUPP as errno and not ENOTSUP
as they are supposed todo. As both errno are POSIX anyway we allow both.
EOPNOTSUPP is only valid as error on sockets but hey who cares about
standard like POSIX.
Lower acl and xattr message from M_ERROR to M_WARNING
An restore or backup error of ACL or XATTR shouldn't set
the backup status to error but warnings should be issues
so the backup operator knows things are failing.
Fix bug #1751 Make duplicate checking somewhat less naiv.
We were almost there with excluding duplicate checks for Copy and
Migration jobs. We only used the wrong variable. Now allocated a
new one and made the naming somewhat more comprehensible. And extra
check is added that jobs inserted by Migration and Copy and which
have the flag set are also not compared against normal jobs in the
normal canceling process so you should be able to run a copy job
now and start the normal backup job without it being canceled as
reported by alltech in the bug report.