2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
9 #ifndef _KRB5_PROFILE_H
10 #define _KRB5_PROFILE_H
16 #if defined(__MACH__) && defined(__APPLE__)
17 # include <TargetConditionals.h>
18 # if TARGET_RT_MAC_CFM
19 # error "Use KfM 4.0 SDK headers for CFM compilation."
25 #define KRB5_CALLCONV_C
28 typedef struct _profile_t
*profile_t
;
31 * Used by the profile iterator in prof_get.c
33 #define PROFILE_ITER_LIST_SECTION 0x0001
34 #define PROFILE_ITER_SECTIONS_ONLY 0x0002
35 #define PROFILE_ITER_RELATIONS_ONLY 0x0004
41 typedef char* profile_filespec_t
; /* path as C string */
42 typedef char* profile_filespec_list_t
; /* list of : separated paths, C string */
43 typedef const char * const_profile_filespec_t
; /* path as C string */
44 typedef const char * const_profile_filespec_list_t
; /* list of : separated paths, C string */
46 long KRB5_CALLCONV profile_init
47 (const_profile_filespec_t
*files
, profile_t
*ret_profile
);
49 long KRB5_CALLCONV profile_init_path
50 (const_profile_filespec_list_t filelist
, profile_t
*ret_profile
);
52 long KRB5_CALLCONV profile_flush
54 long KRB5_CALLCONV profile_flush_to_file
55 (profile_t profile
, const_profile_filespec_t outfile
);
56 long KRB5_CALLCONV profile_flush_to_buffer
57 (profile_t profile
, char **bufp
);
58 void KRB5_CALLCONV profile_free_buffer
59 (profile_t profile
, char *buf
);
61 long KRB5_CALLCONV profile_is_writable
62 (profile_t profile
, int *writable
);
63 long KRB5_CALLCONV profile_is_modified
64 (profile_t profile
, int *modified
);
66 void KRB5_CALLCONV profile_abandon
69 void KRB5_CALLCONV profile_release
72 long KRB5_CALLCONV profile_get_values
73 (profile_t profile
, const char *const *names
, char ***ret_values
);
75 void KRB5_CALLCONV profile_free_list
78 long KRB5_CALLCONV profile_get_string
79 (profile_t profile
, const char *name
, const char *subname
,
80 const char *subsubname
, const char *def_val
,
82 long KRB5_CALLCONV profile_get_integer
83 (profile_t profile
, const char *name
, const char *subname
,
84 const char *subsubname
, int def_val
,
87 long KRB5_CALLCONV profile_get_boolean
88 (profile_t profile
, const char *name
, const char *subname
,
89 const char *subsubname
, int def_val
,
92 long KRB5_CALLCONV profile_get_relation_names
93 (profile_t profile
, const char **names
, char ***ret_names
);
95 long KRB5_CALLCONV profile_get_subsection_names
96 (profile_t profile
, const char **names
, char ***ret_names
);
98 long KRB5_CALLCONV profile_iterator_create
99 (profile_t profile
, const char *const *names
,
100 int flags
, void **ret_iter
);
102 void KRB5_CALLCONV profile_iterator_free
105 long KRB5_CALLCONV profile_iterator
106 (void **iter_p
, char **ret_name
, char **ret_value
);
108 void KRB5_CALLCONV
profile_release_string (char *str
);
110 long KRB5_CALLCONV profile_update_relation
111 (profile_t profile
, const char **names
,
112 const char *old_value
, const char *new_value
);
114 long KRB5_CALLCONV profile_clear_relation
115 (profile_t profile
, const char **names
);
117 long KRB5_CALLCONV profile_rename_section
118 (profile_t profile
, const char **names
,
119 const char *new_name
);
121 long KRB5_CALLCONV profile_add_relation
122 (profile_t profile
, const char **names
,
123 const char *new_value
);
126 * Solaris Kerberos: Provide abstract declarations for applications, such as
129 long __profile_init(char *filename
, profile_t
*profile
);
130 long __profile_release(profile_t profile
);
131 void __profile_abandon(profile_t profile
);
132 long __profile_add_domain_mapping(profile_t profile
, char *domain
, char *realm
);
133 long __profile_remove_domain_mapping(profile_t profile
, char *realm
);
134 long __profile_get_realm_entry(profile_t profile
, char *realm
, char *name
,
136 long __profile_add_realm_entry(profile_t profile
, char *realm
, char *name
,
138 long __profile_get_default_realm(profile_t profile
, char **realm
);
139 long __profile_get_realms(profile_t profile
, char ***realms
);
140 long __profile_add_realm(profile_t profile
, char *realm
, char *master
,
141 char **kdcs
, boolean_t set_change
, boolean_t default_realm
);
142 long __profile_remove_xrealm_mapping(profile_t profile
, char *realm
);
143 long __profile_remove_realm(profile_t profile
, char *realm
);
144 long __profile_add_xrealm_mapping(profile_t profile
, char *source
, char *target
,
146 long __profile_validate(profile_t profile
, int *val_err
, char **val
);
152 #endif /* _KRB5_PROFILE_H */
156 * This file is automatically generated; please do not edit it.
161 #define PROF_VERSION (-1429577728L)
162 #define PROF_MAGIC_NODE (-1429577727L)
163 #define PROF_NO_SECTION (-1429577726L)
164 #define PROF_NO_RELATION (-1429577725L)
165 #define PROF_ADD_NOT_SECTION (-1429577724L)
166 #define PROF_SECTION_WITH_VALUE (-1429577723L)
167 #define PROF_BAD_LINK_LIST (-1429577722L)
168 #define PROF_BAD_GROUP_LVL (-1429577721L)
169 #define PROF_BAD_PARENT_PTR (-1429577720L)
170 #define PROF_MAGIC_ITERATOR (-1429577719L)
171 #define PROF_SET_SECTION_VALUE (-1429577718L)
172 #define PROF_EINVAL (-1429577717L)
173 #define PROF_READ_ONLY (-1429577716L)
174 #define PROF_SECTION_NOTOP (-1429577715L)
175 #define PROF_SECTION_SYNTAX (-1429577714L)
176 #define PROF_RELATION_SYNTAX (-1429577713L)
177 #define PROF_EXTRA_CBRACE (-1429577712L)
178 #define PROF_MISSING_OBRACE (-1429577711L)
179 #define PROF_MAGIC_PROFILE (-1429577710L)
180 #define PROF_MAGIC_SECTION (-1429577709L)
181 #define PROF_TOPSECTION_ITER_NOSUPP (-1429577708L)
182 #define PROF_INVALID_SECTION (-1429577707L)
183 #define PROF_END_OF_SECTIONS (-1429577706L)
184 #define PROF_BAD_NAMESET (-1429577705L)
185 #define PROF_NO_PROFILE (-1429577704L)
186 #define PROF_MAGIC_FILE (-1429577703L)
187 #define PROF_FAIL_OPEN (-1429577702L)
188 #define PROF_EXISTS (-1429577701L)
189 #define PROF_BAD_BOOLEAN (-1429577700L)
190 #define PROF_BAD_INTEGER (-1429577699L)
191 #define PROF_MAGIC_FILE_DATA (-1429577698L)
193 #define ERROR_TABLE_BASE_prof (-1429577728L)
195 /* for compatibility with older versions... */
196 #define prof_err_base ERROR_TABLE_BASE_prof