Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/src/global/   (Postfix Mailserver Version 3.11©)  Datei vom 2.11.2025 mit Größe 9 kB image not shown  

Quelle  mail_conf.h

  Sprache: C
 

#ifndef _MAIL_CONF_H_INCLUDED_
#define _MAIL_CONF_H_INCLUDED_

/*++
/* NAME
/* mail_conf 3h
/* SUMMARY
/* global configuration parameter management
/* SYNOPSIS
/* #include <mail_conf.h>
/* DESCRIPTION
/* .nf

 /*
  * Well known names. These are not configurable. One has to start somewhere.
  */

#define CONFIG_DICT "mail_dict" /* global Postfix dictionary */

 /*
  * Environment variables.
  */

#define CONF_ENV_PATH "MAIL_CONFIG" /* config database */
#define CONF_ENV_VERB "MAIL_VERBOSE" /* verbose mode on */
#define CONF_ENV_DEBUG "MAIL_DEBUG" /* live debugging */
#define CONF_ENV_LOGTAG "MAIL_LOGTAG" /* instance name */

 /*
  * External representation for booleans.
  */

#define CONFIG_BOOL_YES "yes"
#define CONFIG_BOOL_NO "no"

 /*
  * Basic configuration management.
  */

extern void mail_conf_read(void);
extern void mail_conf_suck(void);
extern void mail_conf_flush(void);
extern void mail_conf_checkdir(const char *);

extern void mail_conf_update(const char *, const char *);
extern const char *mail_conf_lookup(const char *);
extern const char *mail_conf_eval(const char *);
extern const char *mail_conf_eval_once(const char *);
extern const char *mail_conf_lookup_eval(const char *);

 /*
  * Specific parameter lookup routines.
  */

extern char *get_mail_conf_str(const char *, const char *, intint);
extern int get_mail_conf_int(const char *, intintint);
extern long get_mail_conf_long(const char *, longlonglong);
extern int get_mail_conf_bool(const char *, int);
extern int get_mail_conf_time(const char *, const char *, intint);
extern int get_mail_conf_nint(const char *, const char *, intint);
extern char *get_mail_conf_raw(const char *, const char *, intint);
extern int get_mail_conf_nbool(const char *, const char *);

extern char *get_mail_conf_str2(const char *, const char *, const char *, intint);
extern int get_mail_conf_int2(const char *, const char *, intintint);
extern long get_mail_conf_long2(const char *, const char *, longlonglong);
extern int get_mail_conf_time2(const char *, const char *, intintintint);
extern int get_mail_conf_nint2(const char *, const char *, intintint);
extern void check_mail_conf_str(const char *, const char *, intint);
extern void check_mail_conf_time(const char *, intintint);
extern void check_mail_conf_int(const char *, intintint);

 /*
  * Lookup with function-call defaults.
  */

extern char *get_mail_conf_str_fn(const char *, const char *(*) (void), intint);
extern int get_mail_conf_int_fn(const char *, int (*) (void), intint);
extern long get_mail_conf_long_fn(const char *, long (*) (void), longlong);
extern int get_mail_conf_bool_fn(const char *, int (*) (void));
extern int get_mail_conf_time_fn(const char *, const char *(*) (void), intintint);
extern int get_mail_conf_nint_fn(const char *, const char *(*) (void), intint);
extern char *get_mail_conf_raw_fn(const char *, const char *(*) (void), intint);
extern int get_mail_conf_nbool_fn(const char *, const char *(*) (void));

 /*
  * Update dictionary.
  */

extern void set_mail_conf_str(const char *, const char *);
extern void set_mail_conf_int(const char *, int);
extern void set_mail_conf_long(const char *, long);
extern void set_mail_conf_bool(const char *, int);
extern void set_mail_conf_time(const char *, const char *);
extern void set_mail_conf_time_int(const char *, int);
extern void set_mail_conf_nint(const char *, const char *);
extern void set_mail_conf_nint_int(const char *, int);
extern void set_mail_conf_nbool(const char *, const char *);

#define set_mail_conf_nbool_int(name, value) \
    set_mail_conf_nbool((name), (value) ? CONFIG_BOOL_YES : CONFIG_BOOL_NO)

 /*
  * Tables that allow us to selectively copy values from the global
  * configuration file to global variables.
  */

typedef struct {
    const char *name;   /* config variable name */
    const char *defval;   /* default value or null */
    char  **target;   /* pointer to global variable */
    int     min;   /* min length or zero */
    int     max;   /* max length or zero */
} CONFIG_STR_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *defval;   /* default value or null */
    char  **target;   /* pointer to global variable */
    int     min;   /* min length or zero */
    int     max;   /* max length or zero */
} CONFIG_RAW_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    int     defval;   /* default value */
    int    *target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_INT_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    long    defval;   /* default value */
    long   *target;   /* pointer to global variable */
    long    min;   /* lower bound or zero */
    long    max;   /* upper bound or zero */
} CONFIG_LONG_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    bool    defval;   /* default value */
    bool   *target;   /* pointer to global variable */
} CONFIG_BOOL_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *defval;   /* default value + default unit */
    int    *target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_TIME_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *defval;   /* default value + default unit */
    int    *target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_NINT_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *defval;   /* default value */
    bool   *target;   /* pointer to global variable */
} CONFIG_NBOOL_TABLE;

extern void get_mail_conf_str_table(const CONFIG_STR_TABLE *);
extern void get_mail_conf_int_table(const CONFIG_INT_TABLE *);
extern void get_mail_conf_long_table(const CONFIG_LONG_TABLE *);
extern void get_mail_conf_bool_table(const CONFIG_BOOL_TABLE *);
extern void get_mail_conf_time_table(const CONFIG_TIME_TABLE *);
extern void get_mail_conf_nint_table(const CONFIG_NINT_TABLE *);
extern void get_mail_conf_raw_table(const CONFIG_RAW_TABLE *);
extern void get_mail_conf_nbool_table(const CONFIG_NBOOL_TABLE *);

 /*
  * Tables to initialize parameters from the global configuration file or
  * from function calls.
  */

typedef struct {
    const char *name;   /* config variable name */
    const char *(*defval) (void); /* default value provider */
    char  **target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_STR_FN_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *(*defval) (void); /* default value provider */
    char  **target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_RAW_FN_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    int     (*defval) (void);  /* default value provider */
    int    *target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_INT_FN_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    long    (*defval) (void);  /* default value provider */
    long   *target;   /* pointer to global variable */
    long    min;   /* lower bound or zero */
    long    max;   /* upper bound or zero */
} CONFIG_LONG_FN_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    int     (*defval) (void);  /* default value provider */
    int    *target;   /* pointer to global variable */
} CONFIG_BOOL_FN_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *(*defval) (void); /* default value provider */
    int    *target;   /* pointer to global variable */
    int     min;   /* lower bound or zero */
    int     max;   /* upper bound or zero */
} CONFIG_NINT_FN_TABLE;

typedef struct {
    const char *name;   /* config variable name */
    const char *(*defval) (void); /* default value provider */
    int    *target;   /* pointer to global variable */
} CONFIG_NBOOL_FN_TABLE;

extern void get_mail_conf_str_fn_table(const CONFIG_STR_FN_TABLE *);
extern void get_mail_conf_int_fn_table(const CONFIG_INT_FN_TABLE *);
extern void get_mail_conf_long_fn_table(const CONFIG_LONG_FN_TABLE *);
extern void get_mail_conf_bool_fn_table(const CONFIG_BOOL_FN_TABLE *);
extern void get_mail_conf_raw_fn_table(const CONFIG_RAW_FN_TABLE *);
extern void get_mail_conf_nint_fn_table(const CONFIG_NINT_FN_TABLE *);
extern void get_mail_conf_nbool_fn_table(const CONFIG_NBOOL_FN_TABLE *);

/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*
/* Wietse Venema
/* Google, Inc.
/* 111 8th Avenue
/* New York, NY 10011, USA
/*--*/


#endif

Messung V0.5 in Prozent
C=78 H=95 G=86

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Normalansicht

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.