C++程序  |  77行  |  1.81 KB

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

#include <stdlib.h>

#define N_(a) a

static const char * const text[] = {
	N_(			"Can't read ticket file"),
	N_(			"Can't find ticket or TGT"),
	N_(			"TGT expired"),
	N_(			"Can't decode authenticator"),
	N_(			"Ticket expired"),
	N_(			"Repeated request"),
	N_(			"The ticket isn't for us"),
	N_(			"Request is inconsistent"),
	N_(			"Delta-T too big"),
	N_(			"Incorrect net address"),
	N_(			"Protocol version mismatch"),
	N_(			"Invalid message type"),
	N_(			"Message stream modified"),
	N_(			"Message out of order"),
	N_(			"Unauthorized request"),
	N_(			"Current password is null"),
	N_(			"Incorrect current password"),
	N_(			"Protocol error"),
	N_(			"Error returned by KDC"),
	N_(			"Null ticket returned by KDC"),
	N_(			"Retry count exceeded"),
	N_(			"Can't send request"),
    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_krb_error_table = { text, 39525376L, 22 };

static struct et_list link = { 0, 0 };

void initialize_krb_error_table_r(struct et_list **list);
void initialize_krb_error_table(void);

void initialize_krb_error_table(void) {
    initialize_krb_error_table_r(&_et_list);
}

/* For Heimdal compatibility */
void initialize_krb_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_krb_error_table;
    et->next = 0;
    *end = et;
}