1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
/*
* profile.h
*/
#ifndef _KRB5_PROFILE_H
#define _KRB5_PROFILE_H
#if defined(_WIN32)
#include <win-mac.h>
#endif
#if defined(__MACH__) && defined(__APPLE__)
# include <TargetConditionals.h>
# if TARGET_RT_MAC_CFM
# error "Use KfM 4.0 SDK headers for CFM compilation."
# endif
#endif
#ifndef KRB5_CALLCONV
#define KRB5_CALLCONV
#define KRB5_CALLCONV_C
#endif
typedef struct _profile_t *profile_t;
/*
* Used by the profile iterator in prof_get.c
*/
#define PROFILE_ITER_LIST_SECTION 0x0001
#define PROFILE_ITER_SECTIONS_ONLY 0x0002
#define PROFILE_ITER_RELATIONS_ONLY 0x0004
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
typedef char* profile_filespec_t; /* path as C string */
typedef char* profile_filespec_list_t; /* list of : separated paths, C string */
typedef const char * const_profile_filespec_t; /* path as C string */
typedef const char * const_profile_filespec_list_t; /* list of : separated paths, C string */
long KRB5_CALLCONV profile_init
(const_profile_filespec_t *files, profile_t *ret_profile);
long KRB5_CALLCONV profile_init_path
(const_profile_filespec_list_t filelist, profile_t *ret_profile);
long KRB5_CALLCONV profile_flush
(profile_t profile);
long KRB5_CALLCONV profile_flush_to_file
(profile_t profile, const_profile_filespec_t outfile);
long KRB5_CALLCONV profile_flush_to_buffer
(profile_t profile, char **bufp);
void KRB5_CALLCONV profile_free_buffer
(profile_t profile, char *buf);
long KRB5_CALLCONV profile_is_writable
(profile_t profile, int *writable);
long KRB5_CALLCONV profile_is_modified
(profile_t profile, int *modified);
void KRB5_CALLCONV profile_abandon
(profile_t profile);
void KRB5_CALLCONV profile_release
(profile_t profile);
long KRB5_CALLCONV profile_get_values
(profile_t profile, const char *const *names, char ***ret_values);
void KRB5_CALLCONV profile_free_list
(char **list);
long KRB5_CALLCONV profile_get_string
(profile_t profile, const char *name, const char *subname,
const char *subsubname, const char *def_val,
char **ret_string);
long KRB5_CALLCONV profile_get_integer
(profile_t profile, const char *name, const char *subname,
const char *subsubname, int def_val,
int *ret_default);
long KRB5_CALLCONV profile_get_boolean
(profile_t profile, const char *name, const char *subname,
const char *subsubname, int def_val,
int *ret_default);
long KRB5_CALLCONV profile_get_relation_names
(profile_t profile, const char **names, char ***ret_names);
long KRB5_CALLCONV profile_get_subsection_names
(profile_t profile, const char **names, char ***ret_names);
long KRB5_CALLCONV profile_iterator_create
(profile_t profile, const char *const *names,
int flags, void **ret_iter);
void KRB5_CALLCONV profile_iterator_free
(void **iter_p);
long KRB5_CALLCONV profile_iterator
(void **iter_p, char **ret_name, char **ret_value);
void KRB5_CALLCONV profile_release_string (char *str);
long KRB5_CALLCONV profile_update_relation
(profile_t profile, const char **names,
const char *old_value, const char *new_value);
long KRB5_CALLCONV profile_clear_relation
(profile_t profile, const char **names);
long KRB5_CALLCONV profile_rename_section
(profile_t profile, const char **names,
const char *new_name);
long KRB5_CALLCONV profile_add_relation
(profile_t profile, const char **names,
const char *new_value);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _KRB5_PROFILE_H */
|