/*
* iroffer by David Johnson (PMG)
* Copyright (C) 1998-2005 David Johnson
*
* By using this file, you agree to the terms and conditions set
* forth in the GNU General Public License. More information is
* available in the README file.
*
* If you received this file without documentation, it can be
* downloaded from http://iroffer.org/
*
* @(#) iroffer_globals.h 1.121@(#)
* pmg@wellington.i202.centerclick.org|src/iroffer_globals.h|20051123201144|11503
*
*/
#if !defined _IROFFER_GLOBALS
#define _IROFFER_GLOBALS
#if !defined GEX
#define GEX extern
#endif
typedef struct
{
/* config */
int dccserverport; /* iroffer-lamm: dccserver */
int atfind; /* iroffer-lamm: @find-reply */
int llistreply; /* iroffer-lamm: long-!list */
int autorelist; /* iroffer-lamm: autorelist */
int noxdccinfo; /* iroffer-lamm: noxdccinfo */
char *autoaddann; /* iroffer-lamm: autoaddann */
int overallmaxspeedtemp; /* iroffer-lamm: scap */
int privacy; /* iroffer-lamm: privacy */
char *privacymsg; /* iroffer-lamm: privacy */
connectionmethod_t connectionmethod;
char* configfile[MAXCONFIG];
char* osstring;
int hideos;
int lognotices;
int timestampconsole;
long startuptime;
unsigned long local_vhost;
int lowbdwth;
int logstats;
char *logfile;
time_t logrotate;
char *headline;
char *creditline;
int background;
unsigned long ourip;
int usenatip;
struct
{
ir_uint64 limit;
ir_uint64 used;
time_t ends;
} transferlimits[NUMBER_TRANSFERLIMITS];
int transferlimits_over;
char *pidfile;
irlist_t proxyinfo;
int tcprangestart;
float transferminspeed, transfermaxspeed;
int overallmaxspeed, overallmaxspeeddayspeed;
int maxb;
int overallmaxspeeddaytimestart, overallmaxspeeddaytimeend;
char overallmaxspeeddaydays;
int maxtransfersperperson, maxqueueditemsperperson;
irlist_t downloadhost;
char *adminpass;
irlist_t adminhost;
char *filedir;
char *statefile;
char *xdcclistfile;
int xdcclistfileraw;
char *periodicmsg_nick, *periodicmsg_msg;
int periodicmsg_time;
char *uploaddir;
off_t uploadmaxsize;
irlist_t uploadhost;
char *config_nick;
char *user_nick, *caps_nick;
char *user_realname, *user_modes, *loginname;
int restrictlist, restrictsend, restrictprivlist;
char *restrictprivlistmsg;
int punishslowusers;
int nomd5sum;
int getipfromserver;
int noduplicatefiles;
irlist_t adddir_exclude;
irlist_t autoqueue;
char *enable_nick;
int xdcclist_grouponly;
int auto_default_group;
int start_of_month;
int restrictprivlistmain;
int restrictprivlistfull;
int groupsincaps;
int ignoreuploadbandwidth;
int holdqueue;
int removelostfiles;
int ignoreduplicateip;
int hidelockedpacks;
int disablexdccinfo;
char *admin_job_file;
char *nickserv_pass;
int notifytime;
int respondtochannelxdcc;
int respondtochannellist;
int quietmode;
int smallfilebypass;
irlist_t autoignore_exclude;
int autoignore_threshold;
/* raw on join */
irlist_t server_join_raw;
irlist_t server_connected_raw;
irlist_t channel_join_raw;
/* rehash temp variables */
irlist_t r_channels;
unsigned long r_local_vhost;
char *r_pidfile;
char *r_config_nick;
float r_transferminspeed, r_transfermaxspeed;
unsigned long r_ourip;
/* server */
irlist_t servers;
server_t curserver;
char *curserveractualname;
int nocon;
int servertime;
struct
{
char *to_ip;
unsigned short to_port;
int sp_fd[2];
pid_t child_pid;
} serv_resolv;
enum
{
SERVERSTATUS_NEED_TO_CONNECT,
SERVERSTATUS_RESOLVING,
SERVERSTATUS_TRYING,
SERVERSTATUS_CONNECTED,
} serverstatus;
long lastservercontact;
long next_identify;
irlist_t serverq_fast;
irlist_t serverq_normal;
irlist_t serverq_slow;
int serverbucket;
int ircserver;
int serverconnectbackoff;
prefix_t prefixes[MAX_PREFIX];
char chanmodes[MAX_CHANMODES];
irlist_t msglog;
int adjustcore;
/* screen */
int attop, needsclear, termcols, termlines, nocolor, noscreen;
int curcol;
irlist_t console_history;
int console_history_offset;
char *console_input_line;
struct termios startup_tio;
int stdout_buffer_init;
ir_boutput_t stdout_buffer;
/* channel */
irlist_t channels;
irlist_t dccchats;
int num_dccchats;
time_t curtime;
unsigned long long curtimems;
fd_set readset, writeset;
float record;
float sentrecord;
unsigned long long totalsent;
long totaluptime;
int debug;
int exiting;
int crashing;
unsigned long xdccsent[XDCC_SENT_SIZE];
int inamnt[INAMNT_SIZE];
int ignore;
int slotsmax;
int recentsent;
int queuesize;
int noautosave;
long nonewcons;
long nolisting;
int needsrehash;
int needsshutdown;
int needsswitch;
int needsreap;
int delayedshutdown;
int cursendptr;
int next_tr_id;
off_t max_file_size;
unsigned int max_fds_from_rlimit;
int nick_number;
int logfd;
time_t last_logrotate;
unsigned char *sendbuff;
context_t context_log[MAXCONTEXTS];
int context_cur_ptr;
irlist_t xlistqueue;
irlist_t ignorelist;
irlist_t xdccs;
irlist_t mainqueue;
irlist_t trans;
irlist_t uploads;
meminfo_t *meminfo;
int meminfo_count;
int meminfo_depth;
#if !defined(NO_CHROOT)
char *chrootdir;
#endif
#if !defined(NO_SETUID)
char *runasuser;
#endif
irlist_t listen_ports;
struct
{
xdcc *xpack;
int file_fd;
struct MD5Context md5sum;
} md5build;
enum
{
#ifdef HAVE_FREEBSD_SENDFILE
TRANSFERMETHOD_FREEBSD_SENDFILE,
#endif
#ifdef HAVE_LINUX_SENDFILE
TRANSFERMETHOD_LINUX_SENDFILE,
#endif
#ifdef HAVE_MMAP
TRANSFERMETHOD_MMAP,
#endif
TRANSFERMETHOD_READ_WRITE,
} transfermethod;
} gdata_t;
GEX gdata_t gdata;
#endif
/* End of File */
syntax highlighted by Code2HTML, v. 0.9.1