1b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o/*
2b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o * simple.c:
3b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o * This file is automatically generated; please do not edit it.
4b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o */
5b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o
6d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o#include <stdlib.h>
7d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o
8e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall#define N_(a) a
9e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall
10b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'ostatic const char * const text[] = {
11e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Can't read ticket file"),
12e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Can't find ticket or TGT"),
13e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"TGT expired"),
14e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Can't decode authenticator"),
15e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Ticket expired"),
16e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Repeated request"),
17e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"The ticket isn't for us"),
18e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Request is inconsistent"),
19e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Delta-T too big"),
20e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Incorrect net address"),
21e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Protocol version mismatch"),
22e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Invalid message type"),
23e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Message stream modified"),
24e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Message out of order"),
25e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Unauthorized request"),
26e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Current password is null"),
27e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Incorrect current password"),
28e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Protocol error"),
29e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Error returned by KDC"),
30e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Null ticket returned by KDC"),
31e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Retry count exceeded"),
32e0ed7404719a9ddd2ba427a80db5365c8bad18c0JP Abgrall	N_(			"Can't send request"),
33b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o    0
34b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o};
35b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o
36b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'ostruct error_table {
37b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o    char const * const * msgs;
38b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o    long base;
39b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o    int n_msgs;
40b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o};
41b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'ostruct et_list {
42b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o    struct et_list *next;
43b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o    const struct error_table * table;
44b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o};
45b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'oextern struct et_list *_et_list;
46b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o
47b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'oconst struct error_table et_krb_error_table = { text, 39525376L, 22 };
48b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o
49b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'ostatic struct et_list link = { 0, 0 };
50b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o
51e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'ovoid initialize_krb_error_table_r(struct et_list **list);
52b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'ovoid initialize_krb_error_table(void);
53b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o
54b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'ovoid initialize_krb_error_table(void) {
55e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o    initialize_krb_error_table_r(&_et_list);
56b16fb628bf9035363002ca7ab72992624f4bb3cfTheodore Ts'o}
57d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o
5844104b2b377c9107bbfe3cd1124f0e783e143dd9Theodore Ts'o/* For Heimdal compatibility */
59d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'ovoid initialize_krb_error_table_r(struct et_list **list)
60d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o{
61d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o    struct et_list *et, **end;
62d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o
63d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o    for (end = list, et = *list; et; end = &et->next, et = et->next)
64d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o        if (et->table->msgs == text)
65d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o            return;
66d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o    et = malloc(sizeof(struct et_list));
67e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o    if (et == 0) {
68e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o        if (!link.table)
69e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o            et = &link;
70e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o        else
71e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o            return;
72e7d32fcb567b2a716de87204542ecc1d5e9ae1aeTheodore Ts'o    }
73d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o    et->table = &et_krb_error_table;
74d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o    et->next = 0;
75d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o    *end = et;
76d03550970c57100dbafd8941f34acafd208ec52eTheodore Ts'o}
77