Annotation of embedaddon/ntp/include/ntp_config.h, revision 1.1

1.1     ! misho       1: #ifndef NTP_CONFIG_H
        !             2: #define NTP_CONFIG_H
        !             3: 
        !             4: #include "ntp_machine.h"
        !             5: #include "ntp_data_structures.h"
        !             6: #include "ntpsim.h"
        !             7: 
        !             8: 
        !             9: /*
        !            10:  * Configuration file name
        !            11:  */
        !            12: #ifndef CONFIG_FILE
        !            13: # ifndef SYS_WINNT
        !            14: #  define      CONFIG_FILE "/etc/ntp.conf"
        !            15: # else /* SYS_WINNT */
        !            16: #  define      CONFIG_FILE     "%windir%\\system32\\drivers\\etc\\ntp.conf"
        !            17: #  define      ALT_CONFIG_FILE "%windir%\\ntp.conf"
        !            18: #  define      NTP_KEYSDIR     "%windir%\\system32\\drivers\\etc"
        !            19: # endif /* SYS_WINNT */
        !            20: #endif /* not CONFIG_FILE */
        !            21: 
        !            22: #ifdef HAVE_IPTOS_SUPPORT
        !            23: /* 
        !            24:  * "qos" modified keywords 
        !            25:  */
        !            26: #define        CONF_QOS_LOWDELAY               1
        !            27: #define CONF_QOS_THROUGHPUT            2
        !            28: #define CONF_QOS_RELIABILITY           3
        !            29: #define CONF_QOS_MINCOST               4
        !            30: 
        !            31: #ifdef                 IPTOS_PREC_INTERNETCONTROL
        !            32: #define CONF_QOS_CS0                   5
        !            33: #define CONF_QOS_CS1                   6
        !            34: #define CONF_QOS_CS2                   7
        !            35: #define CONF_QOS_CS3                   8
        !            36: #define CONF_QOS_CS4                   9
        !            37: #define CONF_QOS_CS5                   10
        !            38: #define CONF_QOS_CS6                   11
        !            39: #define CONF_QOS_CS7                   12
        !            40: #endif         /* IPTOS_PREC_INTERNETCONTROL */
        !            41: 
        !            42: #endif /* HAVE_IPTOS_SUPPORT */
        !            43: 
        !            44: 
        !            45: /*
        !            46:  * We keep config trees around for possible saveconfig use.  When
        !            47:  * built with configure --disable-saveconfig, and when built with
        !            48:  * debugging enabled, include the free_config_*() routines.  In the
        !            49:  * DEBUG case, they are used in an atexit() cleanup routine to make
        !            50:  * postmortem leak check reports more interesting.
        !            51:  */
        !            52: #if !defined(FREE_CFG_T) && (!defined(SAVECONFIG) || defined(DEBUG))
        !            53: #define FREE_CFG_T
        !            54: #endif
        !            55: 
        !            56: /* Limits */
        !            57: #define MAXLINE 1024
        !            58: 
        !            59: /* Configuration sources */
        !            60: 
        !            61: #define CONF_SOURCE_FILE               0
        !            62: #define CONF_SOURCE_NTPQ               1
        !            63: 
        !            64: 
        !            65: /* Structure for storing an attribute-value pair  */
        !            66: struct attr_val {
        !            67:     int attr;
        !            68:     union val {
        !            69:        double  d;
        !            70:        int     i;
        !            71:        u_int   u;
        !            72:        char *  s;
        !            73:        void *  p;
        !            74:     } value;
        !            75:     int type;
        !            76: };
        !            77: 
        !            78: /* Structure for nodes on the syntax tree */
        !            79: struct address_node {
        !            80:     char *address;
        !            81:     int type;
        !            82: };
        !            83: 
        !            84: struct restrict_node {
        !            85:     struct address_node *addr;
        !            86:     struct address_node *mask;
        !            87:     queue *flags;
        !            88:     int line_no;
        !            89: };
        !            90: 
        !            91: struct peer_node {
        !            92:     int host_mode;
        !            93:     struct address_node *addr;
        !            94:     queue *peerflags;
        !            95:     int minpoll;
        !            96:     int maxpoll;
        !            97:     int ttl;
        !            98:     int peerversion;
        !            99:     int peerkey;
        !           100:     double bias;
        !           101: };
        !           102: 
        !           103: struct unpeer_node {
        !           104:        u_int                   assocID;
        !           105:        struct address_node *   addr;
        !           106: };
        !           107: 
        !           108: struct auth_node {
        !           109:     int control_key;
        !           110:     int cryptosw;
        !           111:     queue *crypto_cmd_list;
        !           112:     char *keys;
        !           113:     char *keysdir;
        !           114:     int request_key;
        !           115:     int revoke;
        !           116:     queue *trusted_key_list;
        !           117:     char *ntp_signd_socket;
        !           118: };
        !           119: 
        !           120: struct filegen_node {
        !           121:        int     filegen_token;
        !           122:        queue * options;
        !           123: };
        !           124: 
        !           125: struct setvar_node {
        !           126:        char *  var;
        !           127:        char *  val;
        !           128:        int     isdefault;
        !           129: };
        !           130: 
        !           131: typedef struct nic_rule_node_tag {
        !           132:     int match_class;
        !           133:     char *if_name;     /* interface name or numeric address */
        !           134:     int action;
        !           135: } nic_rule_node;
        !           136: 
        !           137: struct addr_opts_node {
        !           138:     struct address_node *addr;
        !           139:     queue *options;
        !           140: };
        !           141: 
        !           142: struct sim_node {
        !           143:     queue *init_opts;
        !           144:     queue *servers;
        !           145: };
        !           146: 
        !           147: 
        !           148: /* The syntax tree */
        !           149: struct config_tree {
        !           150:     struct config_tree *link;
        !           151: 
        !           152:     struct attr_val source;
        !           153:     time_t timestamp;
        !           154: 
        !           155:     queue *peers;
        !           156:     queue *unpeers;
        !           157: 
        !           158:     /* Other Modes */
        !           159:     int broadcastclient;
        !           160:     queue *manycastserver;
        !           161:     queue *multicastclient;
        !           162: 
        !           163:     queue *orphan_cmds;
        !           164: 
        !           165:     /* Monitoring Configuration */
        !           166:     queue *stats_list;
        !           167:     char *stats_dir;
        !           168:     queue *filegen_opts;
        !           169: 
        !           170:     /* Access Control Configuration */
        !           171:     queue *discard_opts;
        !           172:     queue *restrict_opts;
        !           173: 
        !           174:     queue *fudge;
        !           175:     queue *tinker;
        !           176:     queue *enable_opts;
        !           177:     queue *disable_opts;
        !           178:     struct auth_node auth;
        !           179: 
        !           180:     queue *logconfig;
        !           181:     queue *qos;
        !           182:     queue *phone;
        !           183:     queue *setvar;
        !           184:     queue *ttl;
        !           185:     queue *trap;
        !           186:     queue *vars;
        !           187:     queue *nic_rules;
        !           188: 
        !           189:     struct sim_node *sim_details;
        !           190: };
        !           191: 
        !           192: 
        !           193: /* Structure for holding a remote configuration command */
        !           194: struct REMOTE_CONFIG_INFO {
        !           195:        char buffer[MAXLINE];
        !           196:        char err_msg[MAXLINE];
        !           197:        int pos;
        !           198:        int err_pos;
        !           199:        int no_errors;
        !           200: };
        !           201: 
        !           202: /* get text from T_ tokens */
        !           203: const char * token_name(int token);
        !           204: 
        !           205: struct peer_node *create_peer_node(int hmode,
        !           206:                                   struct address_node *addr,
        !           207:                                   queue *options);
        !           208: struct unpeer_node *create_unpeer_node(struct address_node *addr);
        !           209: struct address_node *create_address_node(char *addr, int type);
        !           210: void destroy_address_node(struct address_node *my_node);
        !           211: queue *enqueue_in_new_queue(void *my_node);
        !           212: struct attr_val *create_attr_dval(int attr, double value);
        !           213: struct attr_val *create_attr_ival(int attr, int value);
        !           214: struct attr_val *create_attr_shorts(int, ntp_u_int16_t, ntp_u_int16_t);
        !           215: struct attr_val *create_attr_sval(int attr, char *s);
        !           216: struct attr_val *create_attr_pval(int attr, void *s);
        !           217: struct filegen_node *create_filegen_node(int filegen_token, queue *options);
        !           218: void **create_pval(void *val);
        !           219: struct restrict_node *create_restrict_node(struct address_node *addr,
        !           220:                                           struct address_node *mask,
        !           221:                                           queue *flags, int line_no);
        !           222: int *create_ival(int val);
        !           223: struct addr_opts_node *create_addr_opts_node(struct address_node *addr,
        !           224:                                             queue *options);
        !           225: struct sim_node *create_sim_node(queue *init_opts, queue *servers);
        !           226: struct setvar_node *create_setvar_node(char *var, char *val,
        !           227:                                       int isdefault);
        !           228: nic_rule_node *create_nic_rule_node(int match_class, char *if_name,
        !           229:                                    int action);
        !           230: 
        !           231: script_info *create_sim_script_info(double duration,
        !           232:                                    queue *script_queue);
        !           233: server_info *create_sim_server(struct address_node *addr,
        !           234:                               double server_offset, queue *script);
        !           235: 
        !           236: extern struct REMOTE_CONFIG_INFO remote_config;
        !           237: void config_remotely(sockaddr_u *);
        !           238: 
        !           239: #ifdef SAVECONFIG
        !           240: int dump_config_tree(struct config_tree *ptree, FILE *df, int comment);
        !           241: int dump_all_config_trees(FILE *df, int comment);
        !           242: #endif
        !           243: 
        !           244: 
        !           245: #endif /* !defined(NTP_CONFIG_H) */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>