27 #define PCF_SHOW_NONDEF (1<<0)
28 #define PCF_SHOW_DEFS (1<<1)
29 #define PCF_HIDE_NAME (1<<2)
30 #define PCF_SHOW_MAPS (1<<3)
31 #define PCF_EDIT_CONF (1<<4)
32 #define PCF_SHOW_LOCKS (1<<5)
33 #define PCF_SHOW_EVAL (1<<6)
34 #define PCF_SHOW_SASL_SERV (1<<7)
35 #define PCF_SHOW_SASL_CLNT (1<<8)
36 #define PCF_COMMENT_OUT (1<<9)
37 #define PCF_MASTER_ENTRY (1<<10)
38 #define PCF_FOLD_LINE (1<<11)
39 #define PCF_EDIT_EXCL (1<<12)
40 #define PCF_MASTER_FLD (1<<13)
41 #define PCF_MAIN_PARAM (1<<14)
42 #define PCF_EXP_DSN_TEMPL (1<<15)
43 #define PCF_PARAM_CLASS (1<<16)
44 #define PCF_MAIN_OVER (1<<17)
45 #define PCF_DUMP_DSN_TEMPL (1<<18)
46 #define PCF_MASTER_PARAM (1<<19)
47 #define PCF_HIDE_VALUE (1<<20)
48 #define PCF_SHOW_TLS (1<<21)
50 #define PCF_DEF_MODE 0
60 const char *(*convert_fn) (
void *);
64 #define PCF_PARAM_FLAG_RAW (1<<0)
65 #define PCF_PARAM_FLAG_BUILTIN (1<<1)
66 #define PCF_PARAM_FLAG_SERVICE (1<<2)
67 #define PCF_PARAM_FLAG_USER (1<<3)
68 #define PCF_PARAM_FLAG_LEGACY (1<<4)
69 #define PCF_PARAM_FLAG_READONLY (1<<5)
70 #define PCF_PARAM_FLAG_DBMS (1<<6)
72 #define PCF_PARAM_MASK_CLASS \
73 (PCF_PARAM_FLAG_BUILTIN | PCF_PARAM_FLAG_SERVICE | PCF_PARAM_FLAG_USER)
74 #define PCF_PARAM_CLASS_OVERRIDE(node, class) \
75 ((node)->flags = (((node)->flags & ~PCF_PARAM_MASK_CLASS) | (class)))
77 #define PCF_RAW_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_RAW)
78 #define PCF_BUILTIN_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_BUILTIN)
79 #define PCF_SERVICE_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_SERVICE)
80 #define PCF_USER_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_USER)
81 #define PCF_LEGACY_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_LEGACY)
82 #define PCF_READONLY_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_READONLY)
83 #define PCF_DBMS_PARAMETER(node) ((node)->flags & PCF_PARAM_FLAG_DBMS)
86 #define PCF_PARAM_NO_DATA ((char *) 0)
91 #define PCF_PARAM_TABLE HTABLE
92 #define PCF_PARAM_INFO HTABLE_INFO
99 #define PCF_PARAM_TABLE_CREATE(size) htable_create(size);
100 #define PCF_PARAM_NODE_CAST(ptr) ((PCF_PARAM_NODE *) (ptr))
102 #define PCF_PARAM_TABLE_LIST(table) htable_list(table)
103 #define PCF_PARAM_INFO_NAME(ht) ((const char *) (ht)->key)
104 #define PCF_PARAM_INFO_NODE(ht) PCF_PARAM_NODE_CAST((ht)->value)
106 #define PCF_PARAM_TABLE_FIND(table, name) \
107 PCF_PARAM_NODE_CAST(htable_find((table), (name)))
108 #define PCF_PARAM_TABLE_LOCATE(table, name) htable_locate((table), (name))
109 #define PCF_PARAM_TABLE_ENTER(table, name, flags, data, func) \
110 htable_enter((table), (name), (char *) pcf_make_param_node((flags), \
128 #define PCF_MASTER_MIN_FIELDS 8
130 #define PCF_MASTER_NAME_SERVICE "service"
131 #define PCF_MASTER_NAME_TYPE "type"
132 #define PCF_MASTER_NAME_PRIVATE "private"
133 #define PCF_MASTER_NAME_UNPRIV "unprivileged"
134 #define PCF_MASTER_NAME_CHROOT "chroot"
135 #define PCF_MASTER_NAME_WAKEUP "wakeup"
136 #define PCF_MASTER_NAME_MAXPROC "process_limit"
137 #define PCF_MASTER_NAME_CMD "command"
139 #define PCF_MASTER_FLD_SERVICE 0
140 #define PCF_MASTER_FLD_TYPE 1
141 #define PCF_MASTER_FLD_PRIVATE 2
142 #define PCF_MASTER_FLD_UNPRIV 3
143 #define PCF_MASTER_FLD_CHROOT 4
144 #define PCF_MASTER_FLD_WAKEUP 5
145 #define PCF_MASTER_FLD_MAXPROC 6
146 #define PCF_MASTER_FLD_CMD 7
148 #define PCF_MASTER_FLD_WILDC -1
149 #define PCF_MASTER_FLD_NONE -2
160 #define PCF_LINE_LIMIT 80
161 #define PCF_SEPARATORS " \t\r\n"
162 #define PCF_INDENT_LEN 4
163 #define PCF_INDENT_TEXT " "
202 #define PCF_WARN_ON_OPEN_ERROR 0
203 #define PCF_FAIL_ON_OPEN_ERROR 1
205 #define PCF_MASTER_BLANKS " \t\r\n"
224 #define PCF_NAMESP_SEP_CH '/'
225 #define PCF_NAMESP_SEP_STR "/"
227 #define PCF_LEGACY_SEP_CH '.'
232 #define PCF_MATCH_WILDC_STR "*"
233 #define PCF_MATCH_ANY(p) ((p)[0] == PCF_MATCH_WILDC_STR[0] && (p)[1] == 0)
234 #define PCF_MATCH_STRING(p, s) (PCF_MATCH_ANY(p) || strcmp((p), (s)) == 0)
239 #define PCF_IS_MAGIC_SERVICE_PATTERN(pat) \
240 (PCF_MATCH_ANY((pat)->argv[0]) || PCF_MATCH_ANY((pat)->argv[1]))
241 #define PCF_MATCH_SERVICE_PATTERN(pat, name, type) \
242 (PCF_MATCH_STRING((pat)->argv[0], (name)) \
243 && PCF_MATCH_STRING((pat)->argv[1], (type)))
245 #define pcf_is_magic_field_pattern(pat) ((pat) == PCF_MASTER_FLD_WILDC)
246 #define pcf_str_field_pattern(pat) ((const char *) (pcf_field_name_offset[pat].name))
248 #define PCF_IS_MAGIC_PARAM_PATTERN(pat) PCF_MATCH_ANY(pat)
249 #define PCF_MATCH_PARAM_PATTERN(pat, name) PCF_MATCH_STRING((pat), (name))
void pcf_register_builtin_parameters(const char *, pid_t)
PCF_MASTER_ENT * pcf_master_table
void pcf_edit_master_field(PCF_MASTER_ENT *, int, const char *)
ARGV * pcf_parse_service_pattern(const char *, int, int)
void pcf_set_parameters(char **)
char * pcf_expand_parameter_value(VSTRING *, int, const char *, PCF_MASTER_ENT *)
void const char void pcf_flag_unused_main_parameters(void)
void pcf_show_master_params(VSTREAM *, int, int, char **)
void pcf_edit_master(int, int, char **)
PCF_MASTER_ENT * local_scope
void pcf_show_master_fields(VSTREAM *, int, int, char **)
const char pcf_daemon_options_expecting_value[]
void pcf_print_master_entry(VSTREAM *, int, PCF_MASTER_ENT *)
void pcf_free_master_entry(PCF_MASTER_ENT *)
void pcf_read_master(int)
void pcf_show_locks(void)
void PRINTFLIKE(3, 4) pcf_print_line(VSTREAM *
const char * pcf_convert_param_node(int, const char *, PCF_PARAM_NODE *)
const char * pcf_lookup_parameter_value(int, const char *, PCF_MASTER_ENT *, PCF_PARAM_NODE *)
void pcf_register_dbms_parameters(const char *, const char *(*)(const char *, int, PCF_MASTER_ENT *), PCF_MASTER_ENT *)
void pcf_read_parameters(void)
int pcf_parse_field_pattern(const char *)
void pcf_edit_main(int, int, char **)
VSTRING * pcf_param_string_buf
void pcf_flag_unused_master_parameters(void)
void pcf_show_parameters(VSTREAM *, int, int, char **)
PCF_PARAM_TABLE * pcf_param_table
void pcf_set_config_dir(void)
PCF_PARAM_NODE * pcf_make_param_node(int, void *, const char *(*)(void *))
void pcf_edit_master_param(PCF_MASTER_ENT *, int, const char *, const char *)
void pcf_register_user_parameters(void)
const char * pcf_parse_master_entry(PCF_MASTER_ENT *, const char *)
void pcf_print_line(VSTREAM *fp, int mode, const char *fmt,...)
void pcf_show_master_entries(VSTREAM *, int, int, char **)
NAME_CODE pcf_field_name_offset[]
void pcf_register_service_parameters(void)
void pcf_show_tls(const char *)