+char *get_token_name(tok_t);
+
+
+void validate_positive0 (t_conf_var *, val_t *);
+void validate_positive1 (t_conf_var *, val_t *);
+void validate_runspercycle(t_conf_var *, val_t *);
+void validate_bumppercent (t_conf_var *, val_t *);
+void validate_bumpmult (t_conf_var *, val_t *);
+void validate_inparallel (t_conf_var *, val_t *);
+void validate_displayunit (t_conf_var *, val_t *);
+void validate_reserve (t_conf_var *, val_t *);
+void validate_use (t_conf_var *, val_t *);
+void validate_chunksize (t_conf_var *, val_t *);
+void validate_blocksize (t_conf_var *, val_t *);
+
+static void init_defaults(void);
+static void read_conffile_recursively(char *filename);
+
+static int read_confline(void);
+static void get_holdingdisk(void);
+static void init_holdingdisk_defaults(void);
+static void save_holdingdisk(void);
+static void get_dumptype(void);
+static void init_dumptype_defaults(void);
+static void save_dumptype(void);
+static void copy_dumptype(void);
+static void get_tapetype(void);
+static void init_tapetype_defaults(void);
+static void save_tapetype(void);
+static void copy_tapetype(void);
+static void get_interface(void);
+static void init_interface_defaults(void);
+static void save_interface(void);
+static void copy_interface(void);
+static void get_comprate(t_conf_var *, val_t *);
+static void get_compress(t_conf_var *, val_t *);
+static void get_encrypt (t_conf_var *, val_t *);
+static void get_holding (t_conf_var *, val_t *);
+static void get_priority(t_conf_var *, val_t *);
+static void get_strategy(t_conf_var *, val_t *);
+static void get_estimate(t_conf_var *, val_t *);
+static void get_exclude (t_conf_var *, val_t *);
+/*static void get_include(t_conf_var *, val_t *);*/
+static void get_taperalgo(t_conf_var *, val_t *);
+
+keytab_t server_keytab[] = {
+ { "AMANDAD_PATH", CONF_AMANDAD_PATH },
+ { "AMRECOVER_CHANGER", CONF_AMRECOVER_CHANGER },
+ { "AMRECOVER_CHECK_LABEL", CONF_AMRECOVER_CHECK_LABEL },
+ { "AMRECOVER_DO_FSF", CONF_AMRECOVER_DO_FSF },
+ { "APPEND", CONF_APPEND },
+ { "AUTH", CONF_AUTH },
+ { "AUTO", CONF_AUTO },
+ { "AUTOFLUSH", CONF_AUTOFLUSH },
+ { "BEST", CONF_BEST },
+ { "BLOCKSIZE", CONF_BLOCKSIZE },
+ { "BUMPDAYS", CONF_BUMPDAYS },
+ { "BUMPMULT", CONF_BUMPMULT },
+ { "BUMPPERCENT", CONF_BUMPPERCENT },
+ { "BUMPSIZE", CONF_BUMPSIZE },
+ { "CALCSIZE", CONF_CALCSIZE },
+ { "CHANGERDEV", CONF_CHNGRDEV },
+ { "CHANGERFILE", CONF_CHNGRFILE },
+ { "CHUNKSIZE", CONF_CHUNKSIZE },
+ { "CLIENT", CONF_CLIENT },
+ { "CLIENT_CUSTOM_COMPRESS", CONF_CLNTCOMPPROG },
+ { "CLIENT_DECRYPT_OPTION", CONF_CLNT_DECRYPT_OPT },
+ { "CLIENT_ENCRYPT", CONF_CLNT_ENCRYPT },
+ { "CLIENT_USERNAME", CONF_CLIENT_USERNAME },
+ { "COLUMNSPEC", CONF_COLUMNSPEC },
+ { "COMMENT", CONF_COMMENT },
+ { "COMPRATE", CONF_COMPRATE },
+ { "COMPRESS", CONF_COMPRESS },
+ { "CTIMEOUT", CONF_CTIMEOUT },
+ { "CUSTOM", CONF_CUSTOM },
+ { "DEFINE", CONF_DEFINE },
+ { "DIRECTORY", CONF_DIRECTORY },
+ { "DISKFILE", CONF_DISKFILE },
+ { "DISPLAYUNIT", CONF_DISPLAYUNIT },
+ { "DTIMEOUT", CONF_DTIMEOUT },
+ { "DUMPCYCLE", CONF_DUMPCYCLE },
+ { "DUMPORDER", CONF_DUMPORDER },
+ { "DUMPTYPE", CONF_DUMPTYPE },
+ { "DUMPUSER", CONF_DUMPUSER },
+ { "ENCRYPT", CONF_ENCRYPT },
+ { "ESTIMATE", CONF_ESTIMATE },
+ { "ETIMEOUT", CONF_ETIMEOUT },
+ { "EXCLUDE", CONF_EXCLUDE },
+ { "EXCLUDE-FILE", CONF_EXCLUDE_FILE },
+ { "EXCLUDE-LIST", CONF_EXCLUDE_LIST },
+ { "FALLBACK_SPLITSIZE", CONF_FALLBACK_SPLITSIZE },
+ { "FAST", CONF_FAST },
+ { "FILE", CONF_EFILE },
+ { "FILE-PAD", CONF_FILE_PAD },
+ { "FILEMARK", CONF_FILEMARK },
+ { "FIRST", CONF_FIRST },
+ { "FIRSTFIT", CONF_FIRSTFIT },
+ { "HANOI", CONF_HANOI },
+ { "HIGH", CONF_HIGH },
+ { "HOLDINGDISK", CONF_HOLDING },
+ { "IGNORE", CONF_IGNORE },
+ { "INCLUDE", CONF_INCLUDE },
+ { "INCLUDEFILE", CONF_INCLUDEFILE },
+ { "INCRONLY", CONF_INCRONLY },
+ { "INDEX", CONF_INDEX },
+ { "INDEXDIR", CONF_INDEXDIR },
+ { "INFOFILE", CONF_INFOFILE },
+ { "INPARALLEL", CONF_INPARALLEL },
+ { "INTERFACE", CONF_INTERFACE },
+ { "KENCRYPT", CONF_KENCRYPT },
+ { "KRB5KEYTAB", CONF_KRB5KEYTAB },
+ { "KRB5PRINCIPAL", CONF_KRB5PRINCIPAL },
+ { "LABELSTR", CONF_LABELSTR },
+ { "LABEL_NEW_TAPES", CONF_LABEL_NEW_TAPES },
+ { "LARGEST", CONF_LARGEST },
+ { "LARGESTFIT", CONF_LARGESTFIT },
+ { "LAST", CONF_LAST },
+ { "LBL-TEMPL", CONF_LBL_TEMPL },
+ { "LENGTH", CONF_LENGTH },
+ { "LIST", CONF_LIST },
+ { "LOGDIR", CONF_LOGDIR },
+ { "LOW", CONF_LOW },
+ { "MAILTO", CONF_MAILTO },
+ { "MAXDUMPS", CONF_MAXDUMPS },
+ { "MAXDUMPSIZE", CONF_MAXDUMPSIZE },
+ { "MAXPROMOTEDAY", CONF_MAXPROMOTEDAY },
+ { "MEDIUM", CONF_MEDIUM },
+ { "NETUSAGE", CONF_NETUSAGE }, /* XXX - historical */
+ { "NEVER", CONF_NEVER },
+ { "NOFULL", CONF_NOFULL },
+ { "NOINC", CONF_NOINC },
+ { "NONE", CONF_NONE },
+ { "OPTIONAL", CONF_OPTIONAL },
+ { "ORG", CONF_ORG },
+ { "PRINTER", CONF_PRINTER },
+ { "PRIORITY", CONF_PRIORITY },
+ { "PROGRAM", CONF_PROGRAM },
+ { "RAWTAPEDEV", CONF_RAWTAPEDEV },
+ { "RECORD", CONF_RECORD },
+ { "REQUIRED", CONF_REQUIRED },
+ { "RESERVE", CONF_RESERVE },
+ { "RUNSPERCYCLE", CONF_RUNSPERCYCLE },
+ { "RUNTAPES", CONF_RUNTAPES },
+ { "SERVER", CONF_SERVER },
+ { "SERVER_CUSTOM_COMPRESS", CONF_SRVCOMPPROG },
+ { "SERVER_DECRYPT_OPTION", CONF_SRV_DECRYPT_OPT },
+ { "SERVER_ENCRYPT", CONF_SRV_ENCRYPT },
+ { "SKIP", CONF_SKIP },
+ { "SKIP-FULL", CONF_SKIP_FULL },
+ { "SKIP-INCR", CONF_SKIP_INCR },
+ { "SMALLEST", CONF_SMALLEST },
+ { "SPEED", CONF_SPEED },
+ { "SPLIT_DISKBUFFER", CONF_SPLIT_DISKBUFFER },
+ { "SSH_KEYS", CONF_SSH_KEYS },
+ { "STANDARD", CONF_STANDARD },
+ { "STARTTIME", CONF_STARTTIME },
+ { "STRATEGY", CONF_STRATEGY },
+ { "TAPEBUFS", CONF_TAPEBUFS },
+ { "TAPECYCLE", CONF_TAPECYCLE },
+ { "TAPEDEV", CONF_TAPEDEV },
+ { "TAPELIST", CONF_TAPELIST },
+ { "TAPERALGO", CONF_TAPERALGO },
+ { "TAPETYPE", CONF_TAPETYPE },
+ { "TAPE_SPLITSIZE", CONF_TAPE_SPLITSIZE },
+ { "TPCHANGER", CONF_TPCHANGER },
+ { "USE", CONF_USE },
+ { "USETIMESTAMPS", CONF_USETIMESTAMPS },
+ { NULL, CONF_IDENT },
+ { NULL, CONF_UNKNOWN }
+};