/*
 * et-c-kdb5_err.c:
 * This file is automatically generated; please do not edit it.
 */

#include <stdlib.h>

#define N_(a) a

static const char * const text[] = {
	N_("$Id$"),
	N_("Entry already exists in database"),
	N_("Database store error"),
	N_("Database read error"),
	N_("Insufficient access to perform requested operation"),
	N_("No such entry in the database"),
	N_("Illegal use of wildcard"),
	N_("Database is locked or in use--try again later"),
	N_("Database was modified during read"),
	N_("Database record is incomplete or corrupted"),
	N_("Attempt to lock database twice"),
	N_("Attempt to unlock database when not locked"),
	N_("Invalid kdb lock mode"),
	N_("Database has not been initialized"),
	N_("Database has already been initialized"),
	N_("Bad direction for converting keys"),
	N_("Cannot find master key record in database"),
	N_("Master key does not match database"),
	N_("Key size in database is invalid"),
	N_("Cannot find/read stored master key"),
	N_("Stored master key is corrupted"),
	N_("Cannot find active master key"),
	N_("KVNO of new master key does not match expected value"),
	N_("Stored master key is not current"),
	N_("Insufficient access to lock database"),
	N_("Database format error"),
	N_("Unsupported version in database entry"),
	N_("Unsupported salt type"),
	N_("Unsupported encryption type"),
	N_("Bad database creation flags"),
	N_("No matching key in entry having a permitted enctype"),
	N_("No matching key in entry"),
	N_("Unable to find requested database type"),
	N_("Database type not supported"),
	N_("Database library failed to initialize"),
	N_("Server error"),
	N_("Unable to access Kerberos database"),
	N_("Kerberos database internal error"),
	N_("Kerberos database constraints violated"),
	N_("Update log conversion error"),
	N_("Update log is unstable"),
	N_("Update log is corrupt"),
	N_("Generic update log error"),
	N_("Database module does not match KDC version"),
	N_("Policy is in use"),
	N_("Too much string mapping data"),
    0
};

struct error_table {
    char const * const * msgs;
    long base;
    int n_msgs;
};
struct et_list {
    struct et_list *next;
    const struct error_table * table;
};
extern struct et_list *_et_list;

const struct error_table et_kdb5_error_table = { text, -1780008448L, 46 };

static struct et_list link = { 0, 0 };

void initialize_kdb5_error_table_r(struct et_list **list);
void initialize_kdb5_error_table(void);

void initialize_kdb5_error_table(void) {
    initialize_kdb5_error_table_r(&_et_list);
}

/* For Heimdal compatibility */
void initialize_kdb5_error_table_r(struct et_list **list)
{
    struct et_list *et, **end;

    for (end = list, et = *list; et; end = &et->next, et = et->next)
        if (et->table->msgs == text)
            return;
    et = malloc(sizeof(struct et_list));
    if (et == 0) {
        if (!link.table)
            et = &link;
        else
            return;
    }
    et->table = &et_kdb5_error_table;
    et->next = 0;
    *end = et;
}
