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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
/*
* profile.h
*/
#ifndef _KRB5_PROFILE_H
#define _KRB5_PROFILE_H
#if defined(_MSDOS) || defined(_WIN32) || defined(MACINTOSH)
#include <win-mac.h>
#endif
#ifndef KRB5_CALLCONV
#define KRB5_CALLCONV
#define KRB5_CALLCONV_C
#define KRB5_EXPORTVAR
#define FAR
#define NEAR
#endif
typedef struct _profile_t *profile_t;
#if !defined(PROTOTYPE)
#if defined(__STDC__) || defined(__cplusplus) || defined(_MSDOS) || defined(_WIN32)
#define PROTOTYPE(x) x
#else
#define PROTOTYPE(x) ()
#endif
#endif
/*
* 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
/* Macintoh CFM-68K magic incantation */
#if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__)
#pragma import on
#endif
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* On everything but MacOS, we use file paths as unique file identifiers */
#ifndef macintosh
#define PROFILE_USES_PATHS
#endif
#ifdef PROFILE_USES_PATHS
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 */
#else
/* On MacOS, we use native file specifiers as unique file identifiers */
#include <Files.h>
typedef FSSpec profile_filespec_t;
typedef FSSpec* profile_filespec_list_t;
/* array should be terminated with {0, 0, ""} */
typedef FSSpec const_profile_filespec_t;
typedef FSSpec* const_profile_filespec_list_t;
#endif
long KRB5_CALLCONV profile_init
PROTOTYPE ((const_profile_filespec_t *files, profile_t *ret_profile));
long KRB5_CALLCONV profile_init_path
PROTOTYPE ((const_profile_filespec_list_t filelist, profile_t *ret_profile));
long KRB5_CALLCONV profile_flush
PROTOTYPE ((profile_t profile));
void KRB5_CALLCONV profile_abandon
PROTOTYPE ((profile_t profile));
void KRB5_CALLCONV profile_release
PROTOTYPE ((profile_t profile));
long KRB5_CALLCONV profile_get_values
PROTOTYPE ((profile_t profile, const char *const *names, char ***ret_values));
void KRB5_CALLCONV profile_free_list
PROTOTYPE ((char **list));
long KRB5_CALLCONV profile_get_string
PROTOTYPE((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
PROTOTYPE((profile_t profile, const char *name, const char *subname,
const char *subsubname, int def_val,
int *ret_default));
long KRB5_CALLCONV profile_get_boolean
PROTOTYPE((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
PROTOTYPE((profile_t profile, const char **names, char ***ret_names));
long KRB5_CALLCONV profile_get_subsection_names
PROTOTYPE((profile_t profile, const char **names, char ***ret_names));
long KRB5_CALLCONV profile_iterator_create
PROTOTYPE((profile_t profile, const char **names,
int flags, void **ret_iter));
void KRB5_CALLCONV profile_iterator_free
PROTOTYPE((void **iter_p));
long KRB5_CALLCONV profile_iterator
PROTOTYPE((void **iter_p, char **ret_name, char **ret_value));
void KRB5_CALLCONV profile_release_string PROTOTYPE((char *str));
long KRB5_CALLCONV profile_update_relation
PROTOTYPE((profile_t profile, const char **names,
const char *old_value, const char *new_value));
long KRB5_CALLCONV profile_clear_relation
PROTOTYPE((profile_t profile, const char **names));
long KRB5_CALLCONV profile_rename_section
PROTOTYPE((profile_t profile, const char **names,
const char *new_name));
long KRB5_CALLCONV profile_add_relation
PROTOTYPE((profile_t profile, const char **names,
const char *new_value));
#ifdef __cplusplus
}
#endif /* __cplusplus */
/* Macintoh CFM-68K magic incantation */
#if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__)
#pragma import reset
#endif
#endif /* _KRB5_PROFILE_H */
|