xref: /illumos-gate/usr/src/lib/gss_mechs/mech_krb5/include/krb5/k5-err.h (revision 581cede61ac9c14d8d4ea452562a567189eead78)
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 #pragma ident	"%Z%%M%	%I%	%E% SMI"
34 
35 #ifndef _
36 #define _(X) (X)
37 #endif
38 
39 #if defined(_MSDOS) || defined(_WIN32)
40 #include <win-mac.h>
41 #endif
42 #ifndef KRB5_CALLCONV
43 #define KRB5_CALLCONV
44 #define KRB5_CALLCONV_C
45 #endif
46 
47 #include <stdarg.h>
48 
49 struct errinfo {
50     long code;
51     const char *msg;
52     char scratch_buf[1024];
53 };
54 
55 void
56 krb5int_set_error (struct errinfo *ep,
57 		   long code,
58 		   const char *fmt, ...);
59 void
60 krb5int_vset_error (struct errinfo *ep, long code,
61 		    const char *fmt, va_list args);
62 const char *
63 krb5int_get_error (struct errinfo *ep, long code);
64 void
65 krb5int_free_error (struct errinfo *ep, const char *msg);
66 void
67 krb5int_clear_error (struct errinfo *ep);
68 void
69 krb5int_set_error_info_callout_fn (const char *(KRB5_CALLCONV *f)(long));
70 
71 #endif /* K5_ERR_H */
72