/* * profile.h */ #ifndef _KRB5_PROFILE_H #define _KRB5_PROFILE_H #if defined(_MSDOS) || defined(_WIN32) || defined(MACINTOSH) #include #endif #ifndef KRB5_CALLCONV #define KRB5_CALLCONV #define KRB5_CALLCONV_C #define KRB5_DLLIMP #define GSS_DLLIMP #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 */ #else /* On MacOS, we use native file specifiers as unique file identifiers */ #include typedef FSSpec profile_filespec_t; typedef FSSpec* profile_filespec_list_t; /* array should be terminated with {0, 0, ""} */ #endif KRB5_DLLIMP long KRB5_CALLCONV profile_init PROTOTYPE ((profile_filespec_t *files, profile_t *ret_profile)); KRB5_DLLIMP long KRB5_CALLCONV profile_init_path PROTOTYPE ((profile_filespec_list_t filelist, profile_t *ret_profile)); KRB5_DLLIMP long KRB5_CALLCONV profile_flush PROTOTYPE ((profile_t profile)); KRB5_DLLIMP void KRB5_CALLCONV profile_abandon PROTOTYPE ((profile_t profile)); KRB5_DLLIMP void KRB5_CALLCONV profile_release PROTOTYPE ((profile_t profile)); KRB5_DLLIMP long KRB5_CALLCONV profile_get_values PROTOTYPE ((profile_t profile, const char **names, char ***ret_values)); KRB5_DLLIMP void KRB5_CALLCONV profile_free_list PROTOTYPE ((char **list)); KRB5_DLLIMP 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)); KRB5_DLLIMP 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)); KRB5_DLLIMP long KRB5_CALLCONV profile_get_relation_names PROTOTYPE((profile_t profile, const char **names, char ***ret_names)); KRB5_DLLIMP long KRB5_CALLCONV profile_get_subsection_names PROTOTYPE((profile_t profile, const char **names, char ***ret_names)); KRB5_DLLIMP long KRB5_CALLCONV profile_iterator_create PROTOTYPE((profile_t profile, const char **names, int flags, void **ret_iter)); KRB5_DLLIMP void KRB5_CALLCONV profile_iterator_free PROTOTYPE((void **iter_p)); KRB5_DLLIMP long KRB5_CALLCONV profile_iterator PROTOTYPE((void **iter_p, char **ret_name, char **ret_value)); KRB5_DLLIMP void KRB5_CALLCONV profile_release_string PROTOTYPE((char *str)); KRB5_DLLIMP long KRB5_CALLCONV profile_update_relation PROTOTYPE((profile_t profile, const char **names, const char *old_value, const char *new_value)); KRB5_DLLIMP long KRB5_CALLCONV profile_clear_relation PROTOTYPE((profile_t profile, const char **names)); KRB5_DLLIMP long KRB5_CALLCONV profile_rename_section PROTOTYPE((profile_t profile, const char **names, const char *new_name)); KRB5_DLLIMP 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 */