#ifndef __CCENTER_H__
#define __CCENTER_H__
#define NETWORK_FIDO 1
#define NETWORK_WWIV 2
#define TYPE_LOCAL_AREA 0
#define TYPE_NETMAIL_AREA 1
#define TYPE_ECHOMAIL_AREA 2
#define TYPE_NEWSGROUP_AREA 3
struct fido_addr {
unsigned short zone;
unsigned short net;
unsigned short node;
unsigned short point;
};
struct text_file {
char *name;
char *path;
struct door_config {
char key;
char *command;
int stdio;
struct mail_area {
char *qwkname;
int read_sec_level;
int write_sec_level;
int type;
struct mail_conference {
char *tagline;
int networked;
int nettype;
int realnames;
int sec_level;
int mail_area_count;
struct mail_area **mail_areas;
struct fido_addr *fidoaddr;
int wwivnode;
struct file_sub {
char *database;
char *upload_path;
int upload_sec_level;
int download_sec_level;
struct file_directory {
int file_sub_count;
struct file_sub **file_subs;
struct archiver {
char *extension;
char *unpack;
char *pack;
struct protocol {
char *upload;
char *download;
int internal_zmodem;
int upload_prompt;
struct bbs_config {
char *bbs_name;
char *bwave_name;
char *sysop_name;
char *pid_file;
char *ansi_path;
char *bbs_path;
char *log_path;
char *script_path;
char *echomail_sem;
char *netmail_sem;
char *default_tagline;
int telnet_port;
int www_server;
int www_port;
char *www_path;
int ssh_server;
int ssh_port;
char *ssh_dsa_key;
char *ssh_rsa_key;
char *string_file;
char *mgchat_server;
int mgchat_port;
char *mgchat_bbstag;
int bwave_max_msgs;
struct fido_addr *main_aka;
char *external_editor_cmd;
int external_editor_stdio;
int fork;
int nodes;
int newuserlvl;
int automsgwritelvl;
int broadcast_enable;
int broadcast_port;
char *broadcast_address;
int ipguard_enable;
int ipguard_timeout;
int ipguard_tries;
int mail_conference_count;
struct mail_conference **mail_conferences;
int door_count;
struct door_config **doors;
int file_directory_count;
struct file_directory **file_directories;
int text_file_count;
struct text_file **text_files;
char *config_path;
int archiver_count;
struct archiver **archivers;
int protocol_count;
struct protocol **protocols;
struct sec_level_t {
int timeperday;
struct user_record {
int id;
char *loginname;
char *password;
char *salt;
char *firstname;
char *lastname;
char *email;
char *location;
struct sec_level_t *sec_info;
time_t laston;
int timeleft;
int cur_mail_conf;
int cur_mail_area;
int cur_file_dir;
int cur_file_sub;
int timeson;
int bwavepktno;
int defarchiver;
int defprotocol;
extern int get_valid_seclevels(int **levels, int *count);
extern struct fido_addr *parse_fido_addr(const char *str);
extern int load_ini_file(char *ini_file);
extern void system_config(void);
#endif