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 *)