summaryrefslogtreecommitdiffstats
path: root/lib/et/test_cases
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:49:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:49:25 +0000
commit464df1d5e5ab1322e2dd0a7796939fff1aeefa9a (patch)
tree6a403684e0978f0287d7f0ec0e5aab1fd31a59e1 /lib/et/test_cases
parentInitial commit. (diff)
downloade2fsprogs-464df1d5e5ab1322e2dd0a7796939fff1aeefa9a.tar.xz
e2fsprogs-464df1d5e5ab1322e2dd0a7796939fff1aeefa9a.zip
Adding upstream version 1.47.0.upstream/1.47.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--lib/et/test_cases/continuation.c55
-rw-r--r--lib/et/test_cases/continuation.et8
-rw-r--r--lib/et/test_cases/continuation.h19
-rw-r--r--lib/et/test_cases/heimdal.c136
-rw-r--r--lib/et/test_cases/heimdal.et65
-rw-r--r--lib/et/test_cases/heimdal.h64
-rw-r--r--lib/et/test_cases/heimdal2.c122
-rw-r--r--lib/et/test_cases/heimdal2.et65
-rw-r--r--lib/et/test_cases/heimdal2.h58
-rw-r--r--lib/et/test_cases/heimdal3.c56
-rw-r--r--lib/et/test_cases/heimdal3.et5
-rw-r--r--lib/et/test_cases/heimdal3.h20
-rw-r--r--lib/et/test_cases/imap_err.c115
-rw-r--r--lib/et/test_cases/imap_err.et238
-rw-r--r--lib/et/test_cases/imap_err.h79
-rw-r--r--lib/et/test_cases/simple.c76
-rw-r--r--lib/et/test_cases/simple.et69
-rw-r--r--lib/et/test_cases/simple.h40
18 files changed, 1290 insertions, 0 deletions
diff --git a/lib/et/test_cases/continuation.c b/lib/et/test_cases/continuation.c
new file mode 100644
index 0000000..1207897
--- /dev/null
+++ b/lib/et/test_cases/continuation.c
@@ -0,0 +1,55 @@
+/*
+ * continuation.c:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <stdlib.h>
+
+#define N_(a) a
+
+static const char * const text[] = {
+ N_("New password was found in a dictionary of possible passwords and\ntherefore may be easily guessed. Please choose another password.\nSee the ovpasswd man page for help in choosing a good password."),
+ 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_ovk_error_table = { text, 43787520L, 1 };
+
+static struct et_list link = { 0, 0 };
+
+void initialize_ovk_error_table_r(struct et_list **list);
+void initialize_ovk_error_table(void);
+
+void initialize_ovk_error_table(void) {
+ initialize_ovk_error_table_r(&_et_list);
+}
+
+/* For Heimdal compatibility */
+void initialize_ovk_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_ovk_error_table;
+ et->next = 0;
+ *end = et;
+}
diff --git a/lib/et/test_cases/continuation.et b/lib/et/test_cases/continuation.et
new file mode 100644
index 0000000..64d1674
--- /dev/null
+++ b/lib/et/test_cases/continuation.et
@@ -0,0 +1,8 @@
+ error_table ovk
+
+error_code CHPASS_UTIL_PASSWORD_IN_DICTIONARY,
+"New password was found in a dictionary of possible passwords and\n\
+therefore may be easily guessed. Please choose another password.\n\
+See the ovpasswd man page for help in choosing a good password."
+
+ end
diff --git a/lib/et/test_cases/continuation.h b/lib/et/test_cases/continuation.h
new file mode 100644
index 0000000..9cfe602
--- /dev/null
+++ b/lib/et/test_cases/continuation.h
@@ -0,0 +1,19 @@
+/*
+ * continuation.h:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <et/com_err.h>
+
+#define CHPASS_UTIL_PASSWORD_IN_DICTIONARY (43787520L)
+extern const struct error_table et_ovk_error_table;
+extern void initialize_ovk_error_table(void);
+
+/* For compatibility with Heimdal */
+extern void initialize_ovk_error_table_r(struct et_list **list);
+
+#define ERROR_TABLE_BASE_ovk (43787520L)
+
+/* for compatibility with older versions... */
+#define init_ovk_err_tbl initialize_ovk_error_table
+#define ovk_err_base ERROR_TABLE_BASE_ovk
diff --git a/lib/et/test_cases/heimdal.c b/lib/et/test_cases/heimdal.c
new file mode 100644
index 0000000..d9be4ce
--- /dev/null
+++ b/lib/et/test_cases/heimdal.c
@@ -0,0 +1,136 @@
+/*
+ * heimdal.c:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <stdlib.h>
+
+#define N_(a) a
+
+static const char * const text[] = {
+ N_("Kerberos successful"),
+ N_("Kerberos principal expired"),
+ N_("Kerberos service expired"),
+ N_("Kerberos auth expired"),
+ N_("Incorrect kerberos master key version"),
+ N_("Incorrect kerberos master key version"),
+ N_("Incorrect kerberos master key version"),
+ N_("Kerberos error: byte order unknown"),
+ N_("Kerberos principal unknown"),
+ N_("Kerberos principal not unique"),
+ N_("Kerberos principal has null key"),
+ N_("Reserved krb error (11)"),
+ N_("Reserved krb error (12)"),
+ N_("Reserved krb error (13)"),
+ N_("Reserved krb error (14)"),
+ N_("Reserved krb error (15)"),
+ N_("Reserved krb error (16)"),
+ N_("Reserved krb error (17)"),
+ N_("Reserved krb error (18)"),
+ N_("Reserved krb error (19)"),
+ N_("Generic error from Kerberos KDC"),
+ N_("Can't read Kerberos ticket file"),
+ N_("Can't find Kerberos ticket or TGT"),
+ N_("Reserved krb error (23)"),
+ N_("Reserved krb error (24)"),
+ N_("Reserved krb error (25)"),
+ N_("Kerberos TGT Expired"),
+ N_("Reserved krb error (27)"),
+ N_("Reserved krb error (28)"),
+ N_("Reserved krb error (29)"),
+ N_("Reserved krb error (30)"),
+ N_("Kerberos error: Can't decode authenticator"),
+ N_("Kerberos ticket expired"),
+ N_("Kerberos ticket not yet valid"),
+ N_("Kerberos error: Repeated request"),
+ N_("The kerberos ticket isn't for us"),
+ N_("Kerberos request inconsistent"),
+ N_("Kerberos error: delta_t too big"),
+ N_("Kerberos error: incorrect net address"),
+ N_("Kerberos protocol version mismatch"),
+ N_("Kerberos error: invalid msg type"),
+ N_("Kerberos error: message stream modified"),
+ N_("Kerberos error: message out of order"),
+ N_("Kerberos error: unauthorized request"),
+ N_("Reserved krb error (44)"),
+ N_("Reserved krb error (45)"),
+ N_("Reserved krb error (46)"),
+ N_("Reserved krb error (47)"),
+ N_("Reserved krb error (48)"),
+ N_("Reserved krb error (49)"),
+ N_("Reserved krb error (50)"),
+ N_("Kerberos error: current PW is null"),
+ N_("Kerberos error: Incorrect current password"),
+ N_("Kerberos protocol error"),
+ N_("Error returned by Kerberos KDC"),
+ N_("Null Kerberos ticket returned by KDC"),
+ N_("Kerberos error: Retry count exceeded"),
+ N_("Kerberos error: Can't send request"),
+ N_("Reserved krb error (58)"),
+ N_("Reserved krb error (59)"),
+ N_("Reserved krb error (60)"),
+ N_("Kerberos error: not all tickets returned"),
+ N_("Kerberos error: incorrect password"),
+ N_("Kerberos error: Protocol Error"),
+ N_("Reserved krb error (64)"),
+ N_("Reserved krb error (65)"),
+ N_("Reserved krb error (66)"),
+ N_("Reserved krb error (67)"),
+ N_("Reserved krb error (68)"),
+ N_("Reserved krb error (69)"),
+ N_("Other error"),
+ N_("Don't have Kerberos ticket-granting ticket"),
+ N_("Reserved krb error (72)"),
+ N_("Reserved krb error (73)"),
+ N_("Reserved krb error (74)"),
+ N_("Reserved krb error (75)"),
+ N_("No ticket file found"),
+ N_("Couldn't access ticket file"),
+ N_("Couldn't lock ticket file"),
+ N_("Bad ticket file format"),
+ N_("tf_init not called first"),
+ N_("Bad Kerberos name format"),
+ 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, 82 };
+
+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;
+}
diff --git a/lib/et/test_cases/heimdal.et b/lib/et/test_cases/heimdal.et
new file mode 100644
index 0000000..9dce192
--- /dev/null
+++ b/lib/et/test_cases/heimdal.et
@@ -0,0 +1,65 @@
+# Copyright 1987,1988 Massachusetts Institute of Technology
+#
+# For copying and distribution information, see the file
+# "mit-copyright.h".
+#
+# This might look like a com_err file, but is not
+#
+id "$Id: krb_err.et,v 1.7 1998/03/29 14:19:52 bg Exp $"
+
+error_table krb
+
+prefix KRBET
+ec KSUCCESS, "Kerberos successful"
+ec KDC_NAME_EXP, "Kerberos principal expired"
+ec KDC_SERVICE_EXP, "Kerberos service expired"
+ec KDC_AUTH_EXP, "Kerberos auth expired"
+ec KDC_PKT_VER, "Incorrect kerberos master key version"
+ec KDC_P_MKEY_VER, "Incorrect kerberos master key version"
+ec KDC_S_MKEY_VER, "Incorrect kerberos master key version"
+ec KDC_BYTE_ORDER, "Kerberos error: byte order unknown"
+ec KDC_PR_UNKNOWN, "Kerberos principal unknown"
+ec KDC_PR_N_UNIQUE, "Kerberos principal not unique"
+ec KDC_NULL_KEY, "Kerberos principal has null key"
+index 20
+ec KDC_GEN_ERR, "Generic error from Kerberos KDC"
+ec GC_TKFIL, "Can't read Kerberos ticket file"
+ec GC_NOTKT, "Can't find Kerberos ticket or TGT"
+index 26
+ec MK_AP_TGTEXP, "Kerberos TGT Expired"
+index 31
+ec RD_AP_UNDEC, "Kerberos error: Can't decode authenticator"
+ec RD_AP_EXP, "Kerberos ticket expired"
+ec RD_AP_NYV, "Kerberos ticket not yet valid"
+ec RD_AP_REPEAT, "Kerberos error: Repeated request"
+ec RD_AP_NOT_US, "The kerberos ticket isn't for us"
+ec RD_AP_INCON, "Kerberos request inconsistent"
+ec RD_AP_TIME, "Kerberos error: delta_t too big"
+ec RD_AP_BADD, "Kerberos error: incorrect net address"
+ec RD_AP_VERSION, "Kerberos protocol version mismatch"
+ec RD_AP_MSG_TYPE, "Kerberos error: invalid msg type"
+ec RD_AP_MODIFIED, "Kerberos error: message stream modified"
+ec RD_AP_ORDER, "Kerberos error: message out of order"
+ec RD_AP_UNAUTHOR, "Kerberos error: unauthorized request"
+index 51
+ec GT_PW_NULL, "Kerberos error: current PW is null"
+ec GT_PW_BADPW, "Kerberos error: Incorrect current password"
+ec GT_PW_PROT, "Kerberos protocol error"
+ec GT_PW_KDCERR, "Error returned by Kerberos KDC"
+ec GT_PW_NULLTKT, "Null Kerberos ticket returned by KDC"
+ec SKDC_RETRY, "Kerberos error: Retry count exceeded"
+ec SKDC_CANT, "Kerberos error: Can't send request"
+index 61
+ec INTK_W_NOTALL, "Kerberos error: not all tickets returned"
+ec INTK_BADPW, "Kerberos error: incorrect password"
+ec INTK_PROT, "Kerberos error: Protocol Error"
+index 70
+ec INTK_ERR, "Other error"
+ec AD_NOTGT, "Don't have Kerberos ticket-granting ticket"
+index 76
+ec NO_TKT_FIL, "No ticket file found"
+ec TKT_FIL_ACC, "Couldn't access ticket file"
+ec TKT_FIL_LCK, "Couldn't lock ticket file"
+ec TKT_FIL_FMT, "Bad ticket file format"
+ec TKT_FIL_INI, "tf_init not called first"
+ec KNAME_FMT, "Bad Kerberos name format"
diff --git a/lib/et/test_cases/heimdal.h b/lib/et/test_cases/heimdal.h
new file mode 100644
index 0000000..5c94354
--- /dev/null
+++ b/lib/et/test_cases/heimdal.h
@@ -0,0 +1,64 @@
+/*
+ * heimdal.h:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <et/com_err.h>
+
+#define KRBET_KSUCCESS (39525376L)
+#define KRBET_KDC_NAME_EXP (39525377L)
+#define KRBET_KDC_SERVICE_EXP (39525378L)
+#define KRBET_KDC_AUTH_EXP (39525379L)
+#define KRBET_KDC_PKT_VER (39525380L)
+#define KRBET_KDC_P_MKEY_VER (39525381L)
+#define KRBET_KDC_S_MKEY_VER (39525382L)
+#define KRBET_KDC_BYTE_ORDER (39525383L)
+#define KRBET_KDC_PR_UNKNOWN (39525384L)
+#define KRBET_KDC_PR_N_UNIQUE (39525385L)
+#define KRBET_KDC_NULL_KEY (39525386L)
+#define KRBET_KDC_GEN_ERR (39525396L)
+#define KRBET_GC_TKFIL (39525397L)
+#define KRBET_GC_NOTKT (39525398L)
+#define KRBET_MK_AP_TGTEXP (39525402L)
+#define KRBET_RD_AP_UNDEC (39525407L)
+#define KRBET_RD_AP_EXP (39525408L)
+#define KRBET_RD_AP_NYV (39525409L)
+#define KRBET_RD_AP_REPEAT (39525410L)
+#define KRBET_RD_AP_NOT_US (39525411L)
+#define KRBET_RD_AP_INCON (39525412L)
+#define KRBET_RD_AP_TIME (39525413L)
+#define KRBET_RD_AP_BADD (39525414L)
+#define KRBET_RD_AP_VERSION (39525415L)
+#define KRBET_RD_AP_MSG_TYPE (39525416L)
+#define KRBET_RD_AP_MODIFIED (39525417L)
+#define KRBET_RD_AP_ORDER (39525418L)
+#define KRBET_RD_AP_UNAUTHOR (39525419L)
+#define KRBET_GT_PW_NULL (39525427L)
+#define KRBET_GT_PW_BADPW (39525428L)
+#define KRBET_GT_PW_PROT (39525429L)
+#define KRBET_GT_PW_KDCERR (39525430L)
+#define KRBET_GT_PW_NULLTKT (39525431L)
+#define KRBET_SKDC_RETRY (39525432L)
+#define KRBET_SKDC_CANT (39525433L)
+#define KRBET_INTK_W_NOTALL (39525437L)
+#define KRBET_INTK_BADPW (39525438L)
+#define KRBET_INTK_PROT (39525439L)
+#define KRBET_INTK_ERR (39525446L)
+#define KRBET_AD_NOTGT (39525447L)
+#define KRBET_NO_TKT_FIL (39525452L)
+#define KRBET_TKT_FIL_ACC (39525453L)
+#define KRBET_TKT_FIL_LCK (39525454L)
+#define KRBET_TKT_FIL_FMT (39525455L)
+#define KRBET_TKT_FIL_INI (39525456L)
+#define KRBET_KNAME_FMT (39525457L)
+extern const struct error_table et_krb_error_table;
+extern void initialize_krb_error_table(void);
+
+/* For compatibility with Heimdal */
+extern void initialize_krb_error_table_r(struct et_list **list);
+
+#define ERROR_TABLE_BASE_krb (39525376L)
+
+/* for compatibility with older versions... */
+#define init_krb_err_tbl initialize_krb_error_table
+#define krb_err_base ERROR_TABLE_BASE_krb
diff --git a/lib/et/test_cases/heimdal2.c b/lib/et/test_cases/heimdal2.c
new file mode 100644
index 0000000..d2ad572
--- /dev/null
+++ b/lib/et/test_cases/heimdal2.c
@@ -0,0 +1,122 @@
+/*
+ * heimdal2.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: kadm_err.et,v 1.5 1998/01/16 23:11:27 joda Exp $"),
+ N_("Cannot fetch local realm"),
+ N_("Unable to fetch credentials"),
+ N_("Bad key supplied"),
+ N_("Can't encrypt data"),
+ N_("Cannot encode/decode authentication info"),
+ N_("Principal attempting change is in wrong realm"),
+ N_("Packet is too large"),
+ N_("Version number is incorrect"),
+ N_("Checksum does not match"),
+ N_("Unsealing private data failed"),
+ N_("Unsupported operation"),
+ N_("Could not find administrating host"),
+ N_("Administrating host name is unknown"),
+ N_("Could not find service name in services database"),
+ N_("Could not create socket"),
+ N_("Could not connect to server"),
+ N_("Could not fetch local socket address"),
+ N_("Could not fetch master key"),
+ N_("Could not verify master key"),
+ N_("Entry already exists in database"),
+ N_("Database store error"),
+ N_("Database read error"),
+ N_("Insufficient access to perform requested operation"),
+ N_("Data is available for return to client"),
+ N_("No such entry in the database"),
+ N_("Memory exhausted"),
+ N_("Could not fetch system hostname"),
+ N_("Could not bind port"),
+ N_("Length mismatch problem"),
+ N_("Illegal use of wildcard"),
+ N_("Database is locked or in use--try again later"),
+ N_("Insecure password rejected"),
+ N_("Cleartext password and DES key did not match"),
+ N_("Invalid principal for change srvtab request"),
+ N_("Attempt do delete immutable principal"),
+ N_("Reserved kadm error (36)"),
+ N_("Reserved kadm error (37)"),
+ N_("Reserved kadm error (38)"),
+ N_("Reserved kadm error (39)"),
+ N_("Reserved kadm error (40)"),
+ N_("Reserved kadm error (41)"),
+ N_("Reserved kadm error (42)"),
+ N_("Reserved kadm error (43)"),
+ N_("Reserved kadm error (44)"),
+ N_("Reserved kadm error (45)"),
+ N_("Reserved kadm error (46)"),
+ N_("Reserved kadm error (47)"),
+ N_("Reserved kadm error (48)"),
+ N_("Reserved kadm error (49)"),
+ N_("Reserved kadm error (50)"),
+ N_("Reserved kadm error (51)"),
+ N_("Reserved kadm error (52)"),
+ N_("Reserved kadm error (53)"),
+ N_("Reserved kadm error (54)"),
+ N_("Reserved kadm error (55)"),
+ N_("Reserved kadm error (56)"),
+ N_("Reserved kadm error (57)"),
+ N_("Reserved kadm error (58)"),
+ N_("Reserved kadm error (59)"),
+ N_("Reserved kadm error (60)"),
+ N_("Reserved kadm error (61)"),
+ N_("Reserved kadm error (62)"),
+ N_("Reserved kadm error (63)"),
+ N_("Null passwords are not allowed"),
+ N_("Password is too short"),
+ N_("Too few character classes in password"),
+ N_("Password is in the password dictionary"),
+ 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_kadm_error_table = { text, -1783126272L, 68 };
+
+static struct et_list link = { 0, 0 };
+
+void initialize_kadm_error_table_r(struct et_list **list);
+void initialize_kadm_error_table(void);
+
+void initialize_kadm_error_table(void) {
+ initialize_kadm_error_table_r(&_et_list);
+}
+
+/* For Heimdal compatibility */
+void initialize_kadm_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_kadm_error_table;
+ et->next = 0;
+ *end = et;
+}
diff --git a/lib/et/test_cases/heimdal2.et b/lib/et/test_cases/heimdal2.et
new file mode 100644
index 0000000..703600c
--- /dev/null
+++ b/lib/et/test_cases/heimdal2.et
@@ -0,0 +1,65 @@
+# $Id: kadm_err.et,v 1.5 1998/01/16 23:11:27 joda Exp $
+#
+# Copyright 1988 by the Massachusetts Institute of Technology.
+#
+# For copying and distribution information, please see the file
+# <mit-copyright.h>.
+#
+# Kerberos administration server error table
+#
+ et kadm
+
+# KADM_SUCCESS, as all success codes should be, is zero
+
+ec KADM_RCSID, "$Id: kadm_err.et,v 1.5 1998/01/16 23:11:27 joda Exp $"
+# /* Building and unbuilding the packet errors */
+ec KADM_NO_REALM, "Cannot fetch local realm"
+ec KADM_NO_CRED, "Unable to fetch credentials"
+ec KADM_BAD_KEY, "Bad key supplied"
+ec KADM_NO_ENCRYPT, "Can't encrypt data"
+ec KADM_NO_AUTH, "Cannot encode/decode authentication info"
+ec KADM_WRONG_REALM, "Principal attempting change is in wrong realm"
+ec KADM_NO_ROOM, "Packet is too large"
+ec KADM_BAD_VER, "Version number is incorrect"
+ec KADM_BAD_CHK, "Checksum does not match"
+ec KADM_NO_READ, "Unsealing private data failed"
+ec KADM_NO_OPCODE, "Unsupported operation"
+ec KADM_NO_HOST, "Could not find administrating host"
+ec KADM_UNK_HOST, "Administrating host name is unknown"
+ec KADM_NO_SERV, "Could not find service name in services database"
+ec KADM_NO_SOCK, "Could not create socket"
+ec KADM_NO_CONN, "Could not connect to server"
+ec KADM_NO_HERE, "Could not fetch local socket address"
+ec KADM_NO_MAST, "Could not fetch master key"
+ec KADM_NO_VERI, "Could not verify master key"
+
+# /* From the server side routines */
+ec KADM_INUSE, "Entry already exists in database"
+ec KADM_UK_SERROR, "Database store error"
+ec KADM_UK_RERROR, "Database read error"
+ec KADM_UNAUTH, "Insufficient access to perform requested operation"
+# KADM_DATA isn't really an error, but...
+ec KADM_DATA, "Data is available for return to client"
+ec KADM_NOENTRY, "No such entry in the database"
+
+ec KADM_NOMEM, "Memory exhausted"
+ec KADM_NO_HOSTNAME, "Could not fetch system hostname"
+ec KADM_NO_BIND, "Could not bind port"
+ec KADM_LENGTH_ERROR, "Length mismatch problem"
+ec KADM_ILL_WILDCARD, "Illegal use of wildcard"
+
+ec KADM_DB_INUSE, "Database is locked or in use--try again later"
+
+ec KADM_INSECURE_PW, "Insecure password rejected"
+ec KADM_PW_MISMATCH, "Cleartext password and DES key did not match"
+
+ec KADM_NOT_SERV_PRINC, "Invalid principal for change srvtab request"
+ec KADM_IMMUTABLE, "Attempt do delete immutable principal"
+# password quality basically stolen from OV libkadm5
+index 64
+prefix KADM_PASS_Q
+ec NULL, "Null passwords are not allowed"
+ec TOOSHORT, "Password is too short"
+ec CLASS, "Too few character classes in password"
+ec DICT, "Password is in the password dictionary"
+end
diff --git a/lib/et/test_cases/heimdal2.h b/lib/et/test_cases/heimdal2.h
new file mode 100644
index 0000000..3c2cb7d
--- /dev/null
+++ b/lib/et/test_cases/heimdal2.h
@@ -0,0 +1,58 @@
+/*
+ * heimdal2.h:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <et/com_err.h>
+
+#define KADM_RCSID (-1783126272L)
+#define KADM_NO_REALM (-1783126271L)
+#define KADM_NO_CRED (-1783126270L)
+#define KADM_BAD_KEY (-1783126269L)
+#define KADM_NO_ENCRYPT (-1783126268L)
+#define KADM_NO_AUTH (-1783126267L)
+#define KADM_WRONG_REALM (-1783126266L)
+#define KADM_NO_ROOM (-1783126265L)
+#define KADM_BAD_VER (-1783126264L)
+#define KADM_BAD_CHK (-1783126263L)
+#define KADM_NO_READ (-1783126262L)
+#define KADM_NO_OPCODE (-1783126261L)
+#define KADM_NO_HOST (-1783126260L)
+#define KADM_UNK_HOST (-1783126259L)
+#define KADM_NO_SERV (-1783126258L)
+#define KADM_NO_SOCK (-1783126257L)
+#define KADM_NO_CONN (-1783126256L)
+#define KADM_NO_HERE (-1783126255L)
+#define KADM_NO_MAST (-1783126254L)
+#define KADM_NO_VERI (-1783126253L)
+#define KADM_INUSE (-1783126252L)
+#define KADM_UK_SERROR (-1783126251L)
+#define KADM_UK_RERROR (-1783126250L)
+#define KADM_UNAUTH (-1783126249L)
+#define KADM_DATA (-1783126248L)
+#define KADM_NOENTRY (-1783126247L)
+#define KADM_NOMEM (-1783126246L)
+#define KADM_NO_HOSTNAME (-1783126245L)
+#define KADM_NO_BIND (-1783126244L)
+#define KADM_LENGTH_ERROR (-1783126243L)
+#define KADM_ILL_WILDCARD (-1783126242L)
+#define KADM_DB_INUSE (-1783126241L)
+#define KADM_INSECURE_PW (-1783126240L)
+#define KADM_PW_MISMATCH (-1783126239L)
+#define KADM_NOT_SERV_PRINC (-1783126238L)
+#define KADM_IMMUTABLE (-1783126237L)
+#define KADM_PASS_Q_NULL (-1783126208L)
+#define KADM_PASS_Q_TOOSHORT (-1783126207L)
+#define KADM_PASS_Q_CLASS (-1783126206L)
+#define KADM_PASS_Q_DICT (-1783126205L)
+extern const struct error_table et_kadm_error_table;
+extern void initialize_kadm_error_table(void);
+
+/* For compatibility with Heimdal */
+extern void initialize_kadm_error_table_r(struct et_list **list);
+
+#define ERROR_TABLE_BASE_kadm (-1783126272L)
+
+/* for compatibility with older versions... */
+#define init_kadm_err_tbl initialize_kadm_error_table
+#define kadm_err_base ERROR_TABLE_BASE_kadm
diff --git a/lib/et/test_cases/heimdal3.c b/lib/et/test_cases/heimdal3.c
new file mode 100644
index 0000000..b8b9b73
--- /dev/null
+++ b/lib/et/test_cases/heimdal3.c
@@ -0,0 +1,56 @@
+/*
+ * heimdal3.c:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <stdlib.h>
+
+#define N_(a) a
+
+static const char * const text[] = {
+ N_("Test message 1"),
+ N_("Test message 2"),
+ 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_h3test_error_table = { text, 43787520L, 2 };
+
+static struct et_list link = { 0, 0 };
+
+void initialize_h3test_error_table_r(struct et_list **list);
+void initialize_h3test_error_table(void);
+
+void initialize_h3test_error_table(void) {
+ initialize_h3test_error_table_r(&_et_list);
+}
+
+/* For Heimdal compatibility */
+void initialize_h3test_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_h3test_error_table;
+ et->next = 0;
+ *end = et;
+}
diff --git a/lib/et/test_cases/heimdal3.et b/lib/et/test_cases/heimdal3.et
new file mode 100644
index 0000000..a0bd5c1
--- /dev/null
+++ b/lib/et/test_cases/heimdal3.et
@@ -0,0 +1,5 @@
+error_table ovk h3test
+prefix H3TEST
+ec TEST1, "Test message 1"
+ec TEST2, "Test message 2"
+end
diff --git a/lib/et/test_cases/heimdal3.h b/lib/et/test_cases/heimdal3.h
new file mode 100644
index 0000000..91d2cb9
--- /dev/null
+++ b/lib/et/test_cases/heimdal3.h
@@ -0,0 +1,20 @@
+/*
+ * heimdal3.h:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <et/com_err.h>
+
+#define H3TEST_TEST1 (43787520L)
+#define H3TEST_TEST2 (43787521L)
+extern const struct error_table et_h3test_error_table;
+extern void initialize_h3test_error_table(void);
+
+/* For compatibility with Heimdal */
+extern void initialize_h3test_error_table_r(struct et_list **list);
+
+#define ERROR_TABLE_BASE_h3test (43787520L)
+
+/* for compatibility with older versions... */
+#define init_h3test_err_tbl initialize_h3test_error_table
+#define h3test_err_base ERROR_TABLE_BASE_h3test
diff --git a/lib/et/test_cases/imap_err.c b/lib/et/test_cases/imap_err.c
new file mode 100644
index 0000000..4d2ffc6
--- /dev/null
+++ b/lib/et/test_cases/imap_err.c
@@ -0,0 +1,115 @@
+/*
+ * imap_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_( "Internal Error"),
+ N_( "System I/O error"),
+ N_( "Item does not exist"),
+ N_( "Operating System Error"),
+ N_( "mail system storage has been exceeded"),
+ N_( "Permission denied"),
+ N_( "Over quota"),
+ N_( "Message size exceeds fixed limit"),
+ N_( "Too many user flags in mailbox"),
+ N_( "Invalid namespace prefix in configuration file"),
+ N_( "Mailbox has an invalid format"),
+ N_( "Replication inconsistency detected"),
+ N_( "Mailbox format corruption detected"),
+ N_( "Operation is not supported on mailbox"),
+ N_( "Mailbox does not exist"),
+ N_( "Mailbox already exists"),
+ N_( "Invalid mailbox name"),
+ N_( "Invalid mailbox type"),
+ N_( "Mailbox has been moved to another server"),
+ N_( "Mailbox is currently reserved"),
+ N_( "Mailbox is locked"),
+ N_( "Delivery to mailbox is disabled"),
+ N_( "Unknown/invalid partition"),
+ N_( "Invalid identifier"),
+ N_( "Message contains NUL characters"),
+ N_( "Message contains bare newlines"),
+ N_( "Message contains non-ASCII characters in headers"),
+ N_( "Message contains invalid header"),
+ N_( "Message has no header/body separator"),
+ N_( "Quota root does not exist"),
+ N_( "Bad protocol"),
+ N_( "Syntax error in parameters"),
+ N_( "Invalid annotation entry"),
+ N_( "Invalid annotation attribute"),
+ N_( "Invalid annotation value"),
+ N_( "Bad URL"),
+ N_( "Zero-length message literal"),
+ N_( "Invalid server requested"),
+ N_( "Server(s) unavailable to complete operation"),
+ N_( "The remote Server(s) denied the operation"),
+ N_( "Retry operation"),
+ N_( "This mailbox hierarchy does not exist on a single backend server."),
+ N_( "The remote server does not support MULTIAPPEND"),
+ N_( "Unrecognized character set"),
+ N_( "Invalid user"),
+ N_( "Login incorrect"),
+ N_( "Anonymous login is not permitted"),
+ N_( "Unsupported quota resource"),
+ N_( "Authentication failed"),
+ N_( "Client cancelled authentication"),
+ N_( "Protocol error during authentication"),
+ N_( "Mailbox is over %s quota"),
+ N_( "Mailbox is at %d%% of %s quota"),
+ N_( "Message %d no longer exists"),
+ N_( "Unable to checkpoint \\Seen state"),
+ N_( "Unable to preserve \\Seen state"),
+ N_( "No matching messages"),
+ N_( "No matching annotations"),
+ N_( "[UNKNOWN-CTE] Can not process the binary data"),
+ N_( "LOGOUT received"),
+ N_( "Completed"),
+ 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_imap_error_table = { text, -1904809472L, 61 };
+
+static struct et_list link = { 0, 0 };
+
+void initialize_imap_error_table_r(struct et_list **list);
+void initialize_imap_error_table(void);
+
+void initialize_imap_error_table(void) {
+ initialize_imap_error_table_r(&_et_list);
+}
+
+/* For Heimdal compatibility */
+void initialize_imap_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_imap_error_table;
+ et->next = 0;
+ *end = et;
+}
diff --git a/lib/et/test_cases/imap_err.et b/lib/et/test_cases/imap_err.et
new file mode 100644
index 0000000..bfae243
--- /dev/null
+++ b/lib/et/test_cases/imap_err.et
@@ -0,0 +1,238 @@
+# imap_err.et -- Error codes for Cyrus IMAP server programs
+#
+# Copyright (c) 1994-2008 Carnegie Mellon University. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+#
+# 3. The name "Carnegie Mellon University" must not be used to
+# endorse or promote products derived from this software without
+# prior written permission. For permission or any legal
+# details, please contact
+# Carnegie Mellon University
+# Center for Technology Transfer and Enterprise Creation
+# 4615 Forbes Avenue
+# Suite 302
+# Pittsburgh, PA 15213
+# (412) 268-7393, fax: (412) 268-7395
+# innovation@andrew.cmu.edu
+#
+# 4. Redistributions of any form whatsoever must retain the following
+# acknowledgment:
+# "This product includes software developed by Computing Services
+# at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+#
+# CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+# AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+# OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+error_table imap
+
+ec IMAP_INTERNAL,
+ "Internal Error"
+
+ec IMAP_IOERROR,
+ "System I/O error"
+
+ec IMAP_NOTFOUND,
+ "Item does not exist"
+
+ec IMAP_SYS_ERROR,
+ "Operating System Error"
+
+ec IMAP_NOSPACE,
+ "mail system storage has been exceeded"
+
+ec IMAP_PERMISSION_DENIED,
+ "Permission denied"
+
+ec IMAP_QUOTA_EXCEEDED,
+ "Over quota"
+
+ec IMAP_MESSAGE_TOO_LARGE,
+ "Message size exceeds fixed limit"
+
+ec IMAP_USERFLAG_EXHAUSTED,
+ "Too many user flags in mailbox"
+
+ec IMAP_NAMESPACE_BADPREFIX,
+ "Invalid namespace prefix in configuration file"
+
+ec IMAP_MAILBOX_BADFORMAT,
+ "Mailbox has an invalid format"
+
+ec IMAP_SYNC_CHECKSUM,
+ "Replication inconsistency detected"
+
+ec IMAP_MAILBOX_CHECKSUM,
+ "Mailbox format corruption detected"
+
+ec IMAP_MAILBOX_NOTSUPPORTED,
+ "Operation is not supported on mailbox"
+
+ec IMAP_MAILBOX_NONEXISTENT,
+ "Mailbox does not exist"
+
+ec IMAP_MAILBOX_EXISTS,
+ "Mailbox already exists"
+
+ec IMAP_MAILBOX_BADNAME,
+ "Invalid mailbox name"
+
+ec IMAP_MAILBOX_BADTYPE,
+ "Invalid mailbox type"
+
+ec IMAP_MAILBOX_MOVED,
+ "Mailbox has been moved to another server"
+
+ec IMAP_MAILBOX_RESERVED,
+ "Mailbox is currently reserved"
+
+ec IMAP_MAILBOX_LOCKED,
+ "Mailbox is locked"
+
+ec IMAP_MAILBOX_DISABLED,
+ "Delivery to mailbox is disabled"
+
+ec IMAP_PARTITION_UNKNOWN,
+ "Unknown/invalid partition"
+
+ec IMAP_INVALID_IDENTIFIER,
+ "Invalid identifier"
+
+ec IMAP_MESSAGE_CONTAINSNULL,
+ "Message contains NUL characters"
+
+ec IMAP_MESSAGE_CONTAINSNL,
+ "Message contains bare newlines"
+
+ec IMAP_MESSAGE_CONTAINS8BIT,
+ "Message contains non-ASCII characters in headers"
+
+ec IMAP_MESSAGE_BADHEADER,
+ "Message contains invalid header"
+
+ec IMAP_MESSAGE_NOBLANKLINE,
+ "Message has no header/body separator"
+
+ec IMAP_QUOTAROOT_NONEXISTENT,
+ "Quota root does not exist"
+
+ec IMAP_PROTOCOL_ERROR,
+ "Bad protocol"
+
+ec IMAP_PROTOCOL_BAD_PARAMETERS,
+ "Syntax error in parameters"
+
+ec IMAP_ANNOTATION_BADENTRY,
+ "Invalid annotation entry"
+
+ec IMAP_ANNOTATION_BADATTRIB,
+ "Invalid annotation attribute"
+
+ec IMAP_ANNOTATION_BADVALUE,
+ "Invalid annotation value"
+
+ec IMAP_BADURL,
+ "Bad URL"
+
+ec IMAP_ZERO_LENGTH_LITERAL,
+ "Zero-length message literal"
+
+# following used only proxy/db operations
+ec IMAP_BAD_SERVER,
+ "Invalid server requested"
+
+ec IMAP_SERVER_UNAVAILABLE,
+ "Server(s) unavailable to complete operation"
+
+ec IMAP_REMOTE_DENIED,
+ "The remote Server(s) denied the operation"
+
+ec IMAP_AGAIN,
+ "Retry operation"
+
+ec IMAP_NOT_SINGULAR_ROOT,
+ "This mailbox hierarchy does not exist on a single backend server."
+
+ec IMAP_REMOTE_NO_MULTIAPPEND,
+ "The remote server does not support MULTIAPPEND"
+
+# Following only used for internationalization of error messages
+
+ec IMAP_UNRECOGNIZED_CHARSET,
+ "Unrecognized character set"
+
+ec IMAP_INVALID_USER,
+ "Invalid user"
+
+ec IMAP_INVALID_LOGIN,
+ "Login incorrect"
+
+ec IMAP_ANONYMOUS_NOT_PERMITTED,
+ "Anonymous login is not permitted"
+
+ec IMAP_UNSUPPORTED_QUOTA,
+ "Unsupported quota resource"
+
+# Following used only for SASL operations
+
+ec IMAP_SASL_FAIL,
+ "Authentication failed"
+
+ec IMAP_SASL_CANCEL,
+ "Client cancelled authentication"
+
+ec IMAP_SASL_PROTERR,
+ "Protocol error during authentication"
+
+# Following used for internationalization of untagged OK/NO responses
+
+ec IMAP_NO_OVERQUOTA,
+ "Mailbox is over %s quota"
+
+ec IMAP_NO_CLOSEQUOTA,
+ "Mailbox is at %d%% of %s quota"
+
+ec IMAP_NO_MSGGONE,
+ "Message %d no longer exists"
+
+ec IMAP_NO_CHECKSEEN,
+ "Unable to checkpoint \\Seen state"
+
+ec IMAP_NO_CHECKPRESERVE,
+ "Unable to preserve \\Seen state"
+
+ec IMAP_NO_NOSUCHMSG,
+ "No matching messages"
+
+ec IMAP_NO_NOSUCHANNOTATION,
+ "No matching annotations"
+
+ec IMAP_NO_UNKNOWN_CTE,
+ "[UNKNOWN-CTE] Can not process the binary data"
+
+# Following used for internationalization of untagged BYE response
+
+ec IMAP_BYE_LOGOUT,
+ "LOGOUT received"
+
+# Following used for internationalization of tagged OK response
+
+ec IMAP_OK_COMPLETED,
+ "Completed"
+
+end
diff --git a/lib/et/test_cases/imap_err.h b/lib/et/test_cases/imap_err.h
new file mode 100644
index 0000000..bfa8f65
--- /dev/null
+++ b/lib/et/test_cases/imap_err.h
@@ -0,0 +1,79 @@
+/*
+ * imap_err.h:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <et/com_err.h>
+
+#define IMAP_INTERNAL (-1904809472L)
+#define IMAP_IOERROR (-1904809471L)
+#define IMAP_NOTFOUND (-1904809470L)
+#define IMAP_SYS_ERROR (-1904809469L)
+#define IMAP_NOSPACE (-1904809468L)
+#define IMAP_PERMISSION_DENIED (-1904809467L)
+#define IMAP_QUOTA_EXCEEDED (-1904809466L)
+#define IMAP_MESSAGE_TOO_LARGE (-1904809465L)
+#define IMAP_USERFLAG_EXHAUSTED (-1904809464L)
+#define IMAP_NAMESPACE_BADPREFIX (-1904809463L)
+#define IMAP_MAILBOX_BADFORMAT (-1904809462L)
+#define IMAP_SYNC_CHECKSUM (-1904809461L)
+#define IMAP_MAILBOX_CHECKSUM (-1904809460L)
+#define IMAP_MAILBOX_NOTSUPPORTED (-1904809459L)
+#define IMAP_MAILBOX_NONEXISTENT (-1904809458L)
+#define IMAP_MAILBOX_EXISTS (-1904809457L)
+#define IMAP_MAILBOX_BADNAME (-1904809456L)
+#define IMAP_MAILBOX_BADTYPE (-1904809455L)
+#define IMAP_MAILBOX_MOVED (-1904809454L)
+#define IMAP_MAILBOX_RESERVED (-1904809453L)
+#define IMAP_MAILBOX_LOCKED (-1904809452L)
+#define IMAP_MAILBOX_DISABLED (-1904809451L)
+#define IMAP_PARTITION_UNKNOWN (-1904809450L)
+#define IMAP_INVALID_IDENTIFIER (-1904809449L)
+#define IMAP_MESSAGE_CONTAINSNULL (-1904809448L)
+#define IMAP_MESSAGE_CONTAINSNL (-1904809447L)
+#define IMAP_MESSAGE_CONTAINS8BIT (-1904809446L)
+#define IMAP_MESSAGE_BADHEADER (-1904809445L)
+#define IMAP_MESSAGE_NOBLANKLINE (-1904809444L)
+#define IMAP_QUOTAROOT_NONEXISTENT (-1904809443L)
+#define IMAP_PROTOCOL_ERROR (-1904809442L)
+#define IMAP_PROTOCOL_BAD_PARAMETERS (-1904809441L)
+#define IMAP_ANNOTATION_BADENTRY (-1904809440L)
+#define IMAP_ANNOTATION_BADATTRIB (-1904809439L)
+#define IMAP_ANNOTATION_BADVALUE (-1904809438L)
+#define IMAP_BADURL (-1904809437L)
+#define IMAP_ZERO_LENGTH_LITERAL (-1904809436L)
+#define IMAP_BAD_SERVER (-1904809435L)
+#define IMAP_SERVER_UNAVAILABLE (-1904809434L)
+#define IMAP_REMOTE_DENIED (-1904809433L)
+#define IMAP_AGAIN (-1904809432L)
+#define IMAP_NOT_SINGULAR_ROOT (-1904809431L)
+#define IMAP_REMOTE_NO_MULTIAPPEND (-1904809430L)
+#define IMAP_UNRECOGNIZED_CHARSET (-1904809429L)
+#define IMAP_INVALID_USER (-1904809428L)
+#define IMAP_INVALID_LOGIN (-1904809427L)
+#define IMAP_ANONYMOUS_NOT_PERMITTED (-1904809426L)
+#define IMAP_UNSUPPORTED_QUOTA (-1904809425L)
+#define IMAP_SASL_FAIL (-1904809424L)
+#define IMAP_SASL_CANCEL (-1904809423L)
+#define IMAP_SASL_PROTERR (-1904809422L)
+#define IMAP_NO_OVERQUOTA (-1904809421L)
+#define IMAP_NO_CLOSEQUOTA (-1904809420L)
+#define IMAP_NO_MSGGONE (-1904809419L)
+#define IMAP_NO_CHECKSEEN (-1904809418L)
+#define IMAP_NO_CHECKPRESERVE (-1904809417L)
+#define IMAP_NO_NOSUCHMSG (-1904809416L)
+#define IMAP_NO_NOSUCHANNOTATION (-1904809415L)
+#define IMAP_NO_UNKNOWN_CTE (-1904809414L)
+#define IMAP_BYE_LOGOUT (-1904809413L)
+#define IMAP_OK_COMPLETED (-1904809412L)
+extern const struct error_table et_imap_error_table;
+extern void initialize_imap_error_table(void);
+
+/* For compatibility with Heimdal */
+extern void initialize_imap_error_table_r(struct et_list **list);
+
+#define ERROR_TABLE_BASE_imap (-1904809472L)
+
+/* for compatibility with older versions... */
+#define init_imap_err_tbl initialize_imap_error_table
+#define imap_err_base ERROR_TABLE_BASE_imap
diff --git a/lib/et/test_cases/simple.c b/lib/et/test_cases/simple.c
new file mode 100644
index 0000000..10ab1a3
--- /dev/null
+++ b/lib/et/test_cases/simple.c
@@ -0,0 +1,76 @@
+/*
+ * 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;
+}
diff --git a/lib/et/test_cases/simple.et b/lib/et/test_cases/simple.et
new file mode 100644
index 0000000..4c7b77f
--- /dev/null
+++ b/lib/et/test_cases/simple.et
@@ -0,0 +1,69 @@
+ error_table krb
+
+ error_code KRB_MK_AP_TKFIL,
+ "Can't read ticket file"
+
+ ec KRB_MK_AP_NOTKT,
+ "Can't find ticket or TGT"
+
+ ec KRB_MK_AP_TGTEXP,
+ "TGT expired"
+
+ ec KRB_RD_AP_UNDEC,
+ "Can't decode authenticator"
+
+ ec KRB_RD_AP_EXP,
+ "Ticket expired"
+
+ ec KRB_RD_AP_REPEAT,
+ "Repeated request"
+
+ ec KRB_RD_AP_NOT_US,
+ "The ticket isn't for us"
+
+ ec KRB_RD_AP_INCON,
+ "Request is inconsistent"
+
+ ec KRB_RD_AP_TIME,
+ "Delta-T too big"
+
+ ec KRB_RD_AP_BADD,
+ "Incorrect net address"
+
+ ec KRB_RD_AP_VERSION,
+ "Protocol version mismatch"
+
+ ec KRB_RD_AP_MSG_TYPE,
+ "Invalid message type"
+
+ ec KRB_RD_AP_MODIFIED,
+ "Message stream modified"
+
+ ec KRB_RD_AP_ORDER,
+ "Message out of order"
+
+ ec KRB_RD_AP_UNAUTHOR,
+ "Unauthorized request"
+
+ ec KRB_GT_PW_NULL,
+ "Current password is null"
+
+ ec KRB_GT_PW_BADPW,
+ "Incorrect current password"
+
+ ec KRB_GT_PW_PROT,
+ "Protocol error"
+
+ ec KRB_GT_PW_KDCERR,
+ "Error returned by KDC"
+
+ ec KRB_GT_PW_NULLTKT,
+ "Null ticket returned by KDC"
+
+ ec KRB_SKDC_RETRY,
+ "Retry count exceeded"
+
+ ec KRB_SKDC_CANT,
+ "Can't send request"
+
+ end
diff --git a/lib/et/test_cases/simple.h b/lib/et/test_cases/simple.h
new file mode 100644
index 0000000..e7800b7
--- /dev/null
+++ b/lib/et/test_cases/simple.h
@@ -0,0 +1,40 @@
+/*
+ * simple.h:
+ * This file is automatically generated; please do not edit it.
+ */
+
+#include <et/com_err.h>
+
+#define KRB_MK_AP_TKFIL (39525376L)
+#define KRB_MK_AP_NOTKT (39525377L)
+#define KRB_MK_AP_TGTEXP (39525378L)
+#define KRB_RD_AP_UNDEC (39525379L)
+#define KRB_RD_AP_EXP (39525380L)
+#define KRB_RD_AP_REPEAT (39525381L)
+#define KRB_RD_AP_NOT_US (39525382L)
+#define KRB_RD_AP_INCON (39525383L)
+#define KRB_RD_AP_TIME (39525384L)
+#define KRB_RD_AP_BADD (39525385L)
+#define KRB_RD_AP_VERSION (39525386L)
+#define KRB_RD_AP_MSG_TYPE (39525387L)
+#define KRB_RD_AP_MODIFIED (39525388L)
+#define KRB_RD_AP_ORDER (39525389L)
+#define KRB_RD_AP_UNAUTHOR (39525390L)
+#define KRB_GT_PW_NULL (39525391L)
+#define KRB_GT_PW_BADPW (39525392L)
+#define KRB_GT_PW_PROT (39525393L)
+#define KRB_GT_PW_KDCERR (39525394L)
+#define KRB_GT_PW_NULLTKT (39525395L)
+#define KRB_SKDC_RETRY (39525396L)
+#define KRB_SKDC_CANT (39525397L)
+extern const struct error_table et_krb_error_table;
+extern void initialize_krb_error_table(void);
+
+/* For compatibility with Heimdal */
+extern void initialize_krb_error_table_r(struct et_list **list);
+
+#define ERROR_TABLE_BASE_krb (39525376L)
+
+/* for compatibility with older versions... */
+#define init_krb_err_tbl initialize_krb_error_table
+#define krb_err_base ERROR_TABLE_BASE_krb