util_errors.c revision f3a25949de81f80c136bb073e4a8f504b080c20c
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce/*
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce Copyright (C) 2012 Red Hat
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce This program is free software; you can redistribute it and/or modify
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce it under the terms of the GNU General Public License as published by
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce the Free Software Foundation; either version 3 of the License, or
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce (at your option) any later version.
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce This program is distributed in the hope that it will be useful,
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce but WITHOUT ANY WARRANTY; without even the implied warranty of
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce GNU General Public License for more details.
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce You should have received a copy of the GNU General Public License
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce along with this program. If not, see <http://www.gnu.org/licenses/>.
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce Authors:
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce Simo Sorce <ssorce@redhat.com>
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce*/
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce#include "util/util.h"
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorcestruct err_string {
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce const char *msg;
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce};
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorcestruct err_string error_to_str[] = {
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce { "Invalid Error" }, /* ERR_INVALID */
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce { "Internal Error" }, /* ERR_INTERNAL */
ab967283b710dfa05d11ee5b30c7ac916486ceecSimo Sorce { "Account Unknown" }, /* ERR_ACCOUNT_UNKNOWN */
c6872e79e8496fd075e20aec0343ade99cca725cSimo Sorce { "Invalid credential type" }, /* ERR_INVALID_CRED_TYPE */
c6872e79e8496fd075e20aec0343ade99cca725cSimo Sorce { "No credentials available" }, /* ERR_NO_CREDS */
c6872e79e8496fd075e20aec0343ade99cca725cSimo Sorce { "Credentials are expired" }, /* ERR_CREDS_EXPIRED */
22a21e910fd216ec1468fe769dcc29f1621a52a4Ondrej Kos { "Failure setting user credentials"}, /* ERR_CREDS_INVALID */
ab967283b710dfa05d11ee5b30c7ac916486ceecSimo Sorce { "No cached credentials available" }, /* ERR_NO_CACHED_CREDS */
ab967283b710dfa05d11ee5b30c7ac916486ceecSimo Sorce { "Cached credentials are expired" }, /* ERR_CACHED_CREDS_EXPIRED */
ab967283b710dfa05d11ee5b30c7ac916486ceecSimo Sorce { "Authentication Denied" }, /* ERR_AUTH_DENIED */
c6872e79e8496fd075e20aec0343ade99cca725cSimo Sorce { "Authentication Failed" }, /* ERR_AUTH_FAILED */
233a3c6c48972b177e60d6ef4cecfacd3cf31659Simo Sorce { "Password Change Denied" }, /* ERR_CHPASS_DENIED */
c6872e79e8496fd075e20aec0343ade99cca725cSimo Sorce { "Password Change Failed" }, /* ERR_CHPASS_FAILED */
c6872e79e8496fd075e20aec0343ade99cca725cSimo Sorce { "Network I/O Error" }, /* ERR_NETWORK_IO */
233a3c6c48972b177e60d6ef4cecfacd3cf31659Simo Sorce { "Account Expired" }, /* ERR_ACCOUNT_EXPIRED */
233a3c6c48972b177e60d6ef4cecfacd3cf31659Simo Sorce { "Password Expired" }, /* ERR_PASSWORD_EXPIRED */
aa7202c8ae677becd6c91d6a27a607fe0f3995eePavel Březina { "Host Access Denied" }, /* ERR_ACCESS_DENIED */
f9961e5f82e0ef474d6492371bfdf9e74e208a99Pavel Březina { "SRV record not found" }, /* ERR_SRV_NOT_FOUND */
f9961e5f82e0ef474d6492371bfdf9e74e208a99Pavel Březina { "SRV lookup error" }, /* ERR_SRV_LOOKUP_ERROR */
e5f455afbc2d149527bfd08f4e89903a3a8da17aPavel Březina { "SRV lookup did not return any new server "}, /* ERR_SRV_DUPLICATES */
9cb46bc62f22e0104f1b41a423b014c281ef5fc2Jakub Hrozek { "Dynamic DNS update failed" }, /* ERR_DYNDNS_FAILED */
9cb46bc62f22e0104f1b41a423b014c281ef5fc2Jakub Hrozek { "Dynamic DNS update timed out" }, /* ERR_DYNDNS_TIMEOUT */
9cb46bc62f22e0104f1b41a423b014c281ef5fc2Jakub Hrozek { "Dynamic DNS update not possible while offline" }, /* ERR_DYNDNS_OFFLINE */
7caf7ed4f2eae1ec1c0717b4ee6ce78bdacd5926Jakub Hrozek { "Cannot parse input" }, /* ERR_INPUT_PARSE */
dcc6877aa2e2dd63a9dc9c411a9c58feaeb36b9aStephen Gallagher { "Entry not found" }, /* ERR_NOT_FOUND */
bc30ce9b7d588a17e58012e699986f0d6898b791Pavel Březina { "Domain not found" }, /* ERR_DOMAIN_NOT_FOUND */
b5ee224324b0158641d9b110f81d2bc6eddddc13Pavel Reichl { "Missing configuration file" }, /* ERR_MISSING_CONF */
2a96981a0ac781d01e5bba473409ed2bdf4cd4e0Jakub Hrozek { "Malformed search filter" }, /* ERR_INVALID_FILTER, */
e81deec535d11912b87954c81a1edd768c1386c9Jakub Hrozek { "No POSIX attributes detected" }, /* ERR_NO_POSIX */
4dd38025efda88f123eac672f87d3cda12f050c8Jakub Hrozek { "Extra attribute is a duplicate" }, /* ERR_DUP_EXTRA_ATTR */
4dd38025efda88f123eac672f87d3cda12f050c8Jakub Hrozek { "Malformed extra attribute" }, /* ERR_INVALID_EXTRA_ATTR */
0161a3c5637a0c0092bf54c436bb3d6508d7df26Jakub Hrozek { "Cannot get bus message sender" }, /* ERR_SBUS_GET_SENDER_ERROR */
0161a3c5637a0c0092bf54c436bb3d6508d7df26Jakub Hrozek { "Bus message has no sender" }, /* ERR_SBUS_NO_SENDER */
60cab26b12df9a2153823972cde0c38ca86e01b9Yassir Elley { "User/Group SIDs not found" }, /* ERR_NO_SIDS */
1319e71fd1680ca4864afe0b1aca2b8c8e4a1ee4Stef Walter { "Bus method not supported" }, /* ERR_SBUS_NOSUP */
0c1d65998907930678da2d091789446f2c344d5dJakub Hrozek { "Cannot connect to system bus" }, /* ERR_NO_SYSBUS */
a2ea3f5d9ef9f17efbb61e942c2bc6cff7d1ebf2Jakub Hrozek { "LDAP search returned a referral" }, /* ERR_REFERRAL */
f3a25949de81f80c136bb073e4a8f504b080c20cJakub Hrozek { "Error setting SELinux user context" }, /* ERR_SELINUX_CONTEXT */
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce};
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorceconst char *sss_strerror(errno_t error)
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce{
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce if (IS_SSSD_ERROR(error)) {
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce return error_to_str[SSSD_ERR_IDX(error)].msg;
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce }
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce return strerror(error);
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce}
8bcabb97d988d1602882a1f036aac2eaf5e09234Simo Sorce