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>