1 /*
2  * profile.h
3  */
4 
5 #ifndef _KRB5_PROFILE_H
6 #define _KRB5_PROFILE_H
7 
8 #if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__))
9 	#include <KerberosSupport/KerberosSupport.h>
10 
11 	#if TARGET_API_MAC_OS8 || (TARGET_API_MAC_CARBON && !TARGET_API_MAC_OSX)
12 		#include <Kerberos5/win-mac.h>
13 	#endif
14 #endif
15 
16 #if TARGET_API_MAC_OSX && TARGET_API_MAC_CARBON
17 	#include <CoreServices/CoreServices.h>
18 #elif TARGET_API_MAC_OS8 || TARGET_API_MAC_CARBON
19 	#include <Files.h>
20 #else
21 	#error "Unknown OS"
22 #endif
23 
24 #if defined(_MSDOS) || defined(_WIN32)
25 #include <win-mac.h>
26 #endif
27 
28 #ifndef KRB5_CALLCONV
29 #define KRB5_CALLCONV
30 #define KRB5_CALLCONV_C
31 #define KRB5_DLLIMP
32 #define GSS_DLLIMP
33 #define KRB5_EXPORTVAR
34 #define FAR
35 #define NEAR
36 #endif
37 
38 typedef struct _profile_t *profile_t;
39 
40 #if !defined(PROTOTYPE)
41 #if defined(__STDC__) || defined(__cplusplus) || defined(_MSDOS) || defined(_WIN32)
42 #define PROTOTYPE(x) x
43 #else
44 #define PROTOTYPE(x) ()
45 #endif
46 #endif
47 
48 /*
49  * Used by the profile iterator in prof_get.c
50  */
51 #define PROFILE_ITER_LIST_SECTION	0x0001
52 #define PROFILE_ITER_SECTIONS_ONLY	0x0002
53 #define PROFILE_ITER_RELATIONS_ONLY	0x0004
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif /* __cplusplus */
58 
59 /* Macintoh CFM-68K magic incantation */
60 #if PRAGMA_IMPORT
61 #pragma import on
62 #endif
63 
64 #if PRAGMA_STRUCT_ALIGN
65 	#pragma options align=mac68k
66 #elif PRAGMA_STRUCT_PACKPUSH
67 	#pragma pack(push, 2)
68 #elif PRAGMA_STRUCT_PACK
69 	#pragma pack(2)
70 #endif
71 
72 /* We use file paths as unique file identifiers except Mac OS 8 and 9*/
73 #if TARGET_API_MAC_OS8 || (TARGET_API_MAC_CARBON && !TARGET_API_MAC_OSX)
74     /* On CFM MacOS, we use native file specifiers as unique file identifiers */
75     typedef FSSpec profile_filespec_t;
76     typedef FSSpec* profile_filespec_list_t;
77     /* array should be terminated with {0, 0, ""} */
78     typedef FSSpec const_profile_filespec_t;
79     typedef FSSpec* const_profile_filespec_list_t;
80 #else
81     #define PROFILE_USES_PATHS
82 
83     typedef char* profile_filespec_t;	/* path as C string */
84     typedef char* profile_filespec_list_t;	/* list of : separated paths, C string */
85     typedef const char* const_profile_filespec_t;	/* path as C string */
86     typedef const char* const_profile_filespec_list_t;	/* list of : separated paths, C string */
87 #endif
88 
89 KRB5_DLLIMP long KRB5_CALLCONV profile_init
90 	PROTOTYPE ((const_profile_filespec_t *files, profile_t *ret_profile));
91 
92 KRB5_DLLIMP long KRB5_CALLCONV profile_init_path
93 	PROTOTYPE ((const_profile_filespec_list_t filelist, profile_t *ret_profile));
94 
95 /* On Mac Carbon, also provide FSSpec variants */
96 #if TARGET_OS_MAC
97 KRB5_DLLIMP long KRB5_CALLCONV FSp_profile_init
98 	PROTOTYPE ((const FSSpec* files, profile_t *ret_profile));
99 
100 KRB5_DLLIMP long KRB5_CALLCONV FSp_profile_init_path
101 	PROTOTYPE ((const FSSpec* files, profile_t *ret_profile));
102 #endif
103 
104 KRB5_DLLIMP long KRB5_CALLCONV profile_flush
105 	PROTOTYPE ((profile_t profile));
106 
107 KRB5_DLLIMP void KRB5_CALLCONV profile_abandon
108 	PROTOTYPE ((profile_t profile));
109 
110 KRB5_DLLIMP void KRB5_CALLCONV profile_release
111 	PROTOTYPE ((profile_t profile));
112 
113 KRB5_DLLIMP long KRB5_CALLCONV profile_get_values
114 	PROTOTYPE ((profile_t profile, const char **names, char ***ret_values));
115 
116 KRB5_DLLIMP void KRB5_CALLCONV profile_free_list
117 	PROTOTYPE ((char **list));
118 
119 KRB5_DLLIMP long KRB5_CALLCONV profile_get_string
120 	PROTOTYPE((profile_t profile, const char *name, const char *subname,
121 			const char *subsubname, const char *def_val,
122 			char **ret_string));
123 KRB5_DLLIMP long KRB5_CALLCONV profile_get_integer
124 	PROTOTYPE((profile_t profile, const char *name, const char *subname,
125 			const char *subsubname, int def_val,
126 			int *ret_default));
127 
128 KRB5_DLLIMP long KRB5_CALLCONV profile_get_boolean
129 	PROTOTYPE((profile_t profile, const char *name, const char *subname,
130 			const char *subsubname, int def_val,
131 			int *ret_default));
132 
133 KRB5_DLLIMP long KRB5_CALLCONV profile_get_relation_names
134 	PROTOTYPE((profile_t profile, const char **names, char ***ret_names));
135 
136 KRB5_DLLIMP long KRB5_CALLCONV profile_get_subsection_names
137 	PROTOTYPE((profile_t profile, const char **names, char ***ret_names));
138 
139 KRB5_DLLIMP long KRB5_CALLCONV profile_iterator_create
140 	PROTOTYPE((profile_t profile, const char **names,
141 		   int flags, void **ret_iter));
142 
143 KRB5_DLLIMP void KRB5_CALLCONV profile_iterator_free
144 	PROTOTYPE((void **iter_p));
145 
146 KRB5_DLLIMP long KRB5_CALLCONV profile_iterator
147 	PROTOTYPE((void	**iter_p, char **ret_name, char **ret_value));
148 
149 KRB5_DLLIMP void KRB5_CALLCONV profile_release_string PROTOTYPE((char *str));
150 
151 KRB5_DLLIMP long KRB5_CALLCONV profile_update_relation
152 	PROTOTYPE((profile_t profile, const char **names,
153 		   const char *old_value, const char *new_value));
154 
155 KRB5_DLLIMP long KRB5_CALLCONV profile_clear_relation
156 	PROTOTYPE((profile_t profile, const char **names));
157 
158 KRB5_DLLIMP long KRB5_CALLCONV profile_rename_section
159 	PROTOTYPE((profile_t profile, const char **names,
160 		   const char *new_name));
161 
162 KRB5_DLLIMP long KRB5_CALLCONV profile_add_relation
163 	PROTOTYPE((profile_t profile, const char **names,
164 		   const char *new_value));
165 
166 /* Macintosh CFM-68K magic incantation */
167 #if PRAGMA_STRUCT_ALIGN
168 	#pragma options align=reset
169 #elif PRAGMA_STRUCT_PACKPUSH
170 	#pragma pack(pop)
171 #elif PRAGMA_STRUCT_PACK
172 	#pragma pack()
173 #endif
174 
175 #ifdef PRAGMA_IMPORT_OFF
176 #pragma import off
177 #elif PRAGMA_IMPORT
178 #pragma import reset
179 #endif
180 
181 #ifdef __cplusplus
182 }
183 #endif /* __cplusplus */
184 
185 #endif /* _KRB5_PROFILE_H */
186 /*
187  * :::MITKerberosLib:GSSKerberos5Sources_9:util:profile:prof_err.h:
188  * This file is automatically generated; please do not edit it.
189  */
190 
191 #if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__))
192 #include <KerberosComErr/KerberosComErr.h>
193 #else
194 #include <com_err.h>
195 #endif
196 
197 #define PROF_VERSION                             (-1429577728L)
198 #define PROF_MAGIC_NODE                          (-1429577727L)
199 #define PROF_NO_SECTION                          (-1429577726L)
200 #define PROF_NO_RELATION                         (-1429577725L)
201 #define PROF_ADD_NOT_SECTION                     (-1429577724L)
202 #define PROF_SECTION_WITH_VALUE                  (-1429577723L)
203 #define PROF_BAD_LINK_LIST                       (-1429577722L)
204 #define PROF_BAD_GROUP_LVL                       (-1429577721L)
205 #define PROF_BAD_PARENT_PTR                      (-1429577720L)
206 #define PROF_MAGIC_ITERATOR                      (-1429577719L)
207 #define PROF_SET_SECTION_VALUE                   (-1429577718L)
208 #define PROF_EINVAL                              (-1429577717L)
209 #define PROF_READ_ONLY                           (-1429577716L)
210 #define PROF_SECTION_NOTOP                       (-1429577715L)
211 #define PROF_SECTION_SYNTAX                      (-1429577714L)
212 #define PROF_RELATION_SYNTAX                     (-1429577713L)
213 #define PROF_EXTRA_CBRACE                        (-1429577712L)
214 #define PROF_MISSING_OBRACE                      (-1429577711L)
215 #define PROF_MAGIC_PROFILE                       (-1429577710L)
216 #define PROF_MAGIC_SECTION                       (-1429577709L)
217 #define PROF_TOPSECTION_ITER_NOSUPP              (-1429577708L)
218 #define PROF_INVALID_SECTION                     (-1429577707L)
219 #define PROF_END_OF_SECTIONS                     (-1429577706L)
220 #define PROF_BAD_NAMESET                         (-1429577705L)
221 #define PROF_NO_PROFILE                          (-1429577704L)
222 #define PROF_MAGIC_FILE                          (-1429577703L)
223 #define PROF_MAGIC_FILE_DATA                     (-1429577702L)
224 #define PROF_FAIL_OPEN                           (-1429577701L)
225 #define PROF_EXISTS                              (-1429577700L)
226 #define PROF_BAD_BOOLEAN                         (-1429577699L)
227 #define PROF_BAD_INTEGER                         (-1429577698L)
228 #define ERROR_TABLE_BASE_prof (-1429577728L)
229 
230 extern struct error_table et_prof_error_table;
231 
232 #if (defined(unix) || defined(_AIX)) && !(defined(__MACH__) && defined(__APPLE__))
233 /* for compatibility with older versions... */
234 extern void initialize_prof_error_table ();
235 #define init_prof_err_tbl initialize_prof_error_table
236 #define prof_err_base ERROR_TABLE_BASE_prof
237 #else
238 #define initialize_prof_error_table()
239 #endif
240