1 /*
2  * include/k5-err.h
3  *
4  * Copyright 2006 Massachusetts Institute of Technology.
5  * All Rights Reserved.
6  *
7  * Export of this software from the United States of America may
8  *   require a specific license from the United States Government.
9  *   It is the responsibility of any person or organization contemplating
10  *   export to obtain such a license before exporting.
11  *
12  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
13  * distribute this software and its documentation for any purpose and
14  * without fee is hereby granted, provided that the above copyright
15  * notice appear in all copies and that both that copyright notice and
16  * this permission notice appear in supporting documentation, and that
17  * the name of M.I.T. not be used in advertising or publicity pertaining
18  * to distribution of the software without specific, written prior
19  * permission.	Furthermore if you modify this software you must label
20  * your software as modified software and not distribute it in such a
21  * fashion that it might be confused with the original M.I.T. software.
22  * M.I.T. makes no representations about the suitability of
23  * this software for any purpose.  It is provided "as is" without express
24  * or implied warranty.
25  *
26  *
27  * Error-message handling
28  */
29 
30 #ifndef K5_ERR_H
31 #define K5_ERR_H
32 
33 #ifndef _
34 #define _(X) (X)
35 #endif
36 
37 #if defined(_MSDOS) || defined(_WIN32)
38 #include <win-mac.h>
39 #endif
40 #ifndef KRB5_CALLCONV
41 #define KRB5_CALLCONV
42 #define KRB5_CALLCONV_C
43 #endif
44 
45 #include <stdarg.h>
46 
47 struct errinfo {
48     long code;
49     const char *msg;
50     char scratch_buf[1024];
51 };
52 
53 void
54 krb5int_set_error (struct errinfo *ep,
55 		   long code,
56 		   const char *fmt, ...);
57 void
58 krb5int_vset_error (struct errinfo *ep, long code,
59 		    const char *fmt, va_list args);
60 const char *
61 krb5int_get_error (struct errinfo *ep, long code);
62 void
63 krb5int_free_error (struct errinfo *ep, const char *msg);
64 void
65 krb5int_clear_error (struct errinfo *ep);
66 void
67 krb5int_set_error_info_callout_fn (const char *(KRB5_CALLCONV *f)(long));
68 
69 #endif /* K5_ERR_H */
70