2 /* This header file transforms the Heimdal config_parse.c profile
3 * parser into an AFS profile parser, hiding the krb5-ness of the parser
17 #define PACKAGE "openafs"
26 #define KRB5_BUFSIZ 1024
28 #define KRB5_LIB_FUNCTION static AFS_UNUSED
31 #define KRB5_DEPRECATED_FUNCTION(x)
35 typedef struct cmd_config_binding krb5_config_binding;
36 typedef struct cmd_config_binding krb5_config_section;
38 #define krb5_config_list cmd_config_list
39 #define krb5_config_string cmd_config_string
40 #define _krb5_config_get_entry _cmd_config_get_entry
42 struct krb5_context_data {
43 krb5_config_section *cf;
46 typedef struct krb5_context_data * krb5_context;
47 typedef int krb5_error_code;
48 typedef int krb5_boolean;
49 typedef time_t krb5_deltat;
51 static void krb5_set_error_message(krb5_context context, krb5_error_code ret,
52 const char *fmt, ...) {
56 #ifdef EXPAND_PATH_HEADER
60 static int _krb5_expand_path_tokens(krb5_context, const char *, char**);
63 _cmd_ExpandPathTokens(krb5_context context, const char *in, char **out) {
64 return _krb5_expand_path_tokens(context, in, out);
67 HINSTANCE _krb5_hInstance = NULL;
69 /* This bodge avoids the need for everything linking against cmd to also
70 * link against the shell library on Windows */
71 #undef SHGetFolderPath
72 #define SHGetFolderPath internal_getpath
74 HRESULT internal_getpath(void *a, int b, void *c, DWORD d, LPTSTR out) {
80 #define KRB5_CONFIG_BADFORMAT CMD_BADFORMAT
82 #define _krb5_expand_path_tokens _cmd_ExpandPathTokens
84 extern int _cmd_ExpandPathTokens(krb5_context, const char *, char **);
86 static const void *_krb5_config_vget(krb5_context,
87 const krb5_config_section *, int,
89 static const void *_krb5_config_vget_next(krb5_context,
90 const krb5_config_section *,
91 const krb5_config_binding **,
93 static const char *krb5_config_vget_string(krb5_context,
94 const krb5_config_section *,
96 static const char *krb5_config_vget_string_default(krb5_context,
97 const krb5_config_section *,
100 static const krb5_config_binding * krb5_config_vget_list
101 (krb5_context, const krb5_config_section *, va_list);
102 static krb5_error_code krb5_config_parse_file_multi
103 (krb5_context, const char *, krb5_config_section **);
104 static krb5_error_code krb5_config_parse_file
105 (krb5_context, const char *, krb5_config_section **);
106 static krb5_error_code krb5_config_file_free
107 (krb5_context, krb5_config_section *);
108 static krb5_boolean krb5_config_vget_bool_default
109 (krb5_context, const krb5_config_section *, int, va_list);
110 static int krb5_config_vget_int_default
111 (krb5_context, const krb5_config_section *, int, va_list);
113 static krb5_error_code
114 krb5_string_to_deltat(const char *str, krb5_deltat *t) {
118 KRB5_LIB_FUNCTION void krb5_clear_error_message(krb5_context context) {
123 static int _krb5_homedir_access(krb5_context context) {
127 static krb5_error_code
128 krb5_abortx(krb5_context context, const char *fmt, ...)
133 vfprintf(stderr, fmt, ap);
143 cmd_RawConfigParseFileMulti(const char *fname, cmd_config_section **res) {
144 return krb5_config_parse_file_multi(NULL, fname, res);
148 cmd_RawConfigParseFile(const char *fname, cmd_config_section **res) {
149 return krb5_config_parse_file(NULL, fname, res);
153 cmd_RawConfigFileFree(cmd_config_section *s) {
154 return krb5_config_file_free(NULL, s);
158 cmd_RawConfigGetString(const cmd_config_section *c,
159 const char *defval, ...)
166 va_start(args, defval);
167 ret = krb5_config_vget_string_default (NULL, c, defval, args);
173 cmd_RawConfigGetBool(const cmd_config_section *c, int defval, ...)
180 va_start(ap, defval);
181 ret = krb5_config_vget_bool_default (NULL, c, defval, ap);
187 cmd_RawConfigGetInt(const cmd_config_section *c, int defval, ...)
194 va_start(ap, defval);
195 ret = krb5_config_vget_int_default (NULL, c, defval, ap);
200 const cmd_config_binding *
201 cmd_RawConfigGetList(const cmd_config_section *c, ...)
204 const cmd_config_binding *ret;
209 ret = krb5_config_vget_list (NULL, c, ap);