[SSSD] [PATCH 0/4] [RFC] Introduce SSSD specific error values.
Pavel Březina
pbrezina at redhat.com
Fri Jan 11 08:45:15 UTC 2013
On 11/24/2012 05:58 AM, Simo Sorce wrote:
> For a long time I felt constrained using just the error values that
> are available in system headers, they do not express the full range
> of errors we need to express within SSSD.
>
> So this is a RFC patchset that demonstrates how we could about getting
> a richer set of error messages for SSSD that should also simplify some
> of our most convoluted code when it comes to returning errors.
>
> The first patch just introduces a very simple error number space and 2
> basic errors we always missed. ERR_INTERNAL is what we wanted to use in
> many places where we currently return EIO or EFAULT for example.
>
> Patch 2 shows how we can dramatically improve error reporting for our
> offline caching authentication code with just a few more targeted errors.
> The main thing to note here is that now we can safely distinguish from
> a real system error about a missing file (ENOENT) and actually missing
> account.
>
> Patch 3 is just an example of fixing EIO in a commonly used macro.
>
> Patch 4 is the most complex example of converting a whole subsystem
> that is really complex in its error handling.
> Even after the recent refactoring patchesi, krb5_child error reporting
> remained quite complex as it uses all of errno, krb5 and pam status
> error codes.
>
> The result is that we have to track multiple different error variables
> and that can easily lead to hard to read code as well as bugs where one
> error code does not reflect into others.
> With this patch I think we show how we are able to reduce the complexity
> of error handling and at the same time return precise information on what
> is worng.
>
> NOTE: This patchset depends on my previous patches for refactoring the
> krb5_child as well as the patches that kix the krb5_auth style and the
> patches that introduce the authtoken structure.
>
> Simo.
>
> Simo Sorce (4):
> Add SSSD specific error codes and definitions
> Use SSSD specific errors for offline auth
> Return ERR_INTERNAL instead of EIO
> Cleanup error message handling for krb5 child
>
> Makefile.am | 4 +-
> src/db/sysdb_ops.c | 17 +-
> src/providers/krb5/krb5_auth.c | 157 +++++++++-------
> src/providers/krb5/krb5_child.c | 388 ++++++++++++++++-----------------------
> src/tests/auth-tests.c | 6 +-
> src/tests/sysdb-tests.c | 12 +-
> src/util/auth_utils.h | 22 ++-
> src/util/util.h | 10 +-
> src/util/util_errors.c | 50 +++++
> src/util/util_errors.h | 85 +++++++++
> 10 files changed, 417 insertions(+), 334 deletions(-)
> create mode 100644 src/util/util_errors.c
> create mode 100644 src/util/util_errors.h
>
> _______________________________________________
> sssd-devel mailing list
> sssd-devel at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
>
Hi,
I like this idea. The patch set looks good from the first sight but
doesn't apply to current master.
More information about the sssd-devel
mailing list