/* Copyright (C) 2003, 2004 IRCtoo Network, Pasi Hirvonen */ #ifndef _STRUCTS_H_ #define _STRUCTS_H_ #include #include "spamserv.h" struct status_t { time_t started; int connected; int quitting; int synched; int forked; int dbconnection; GTimer *scheduler; struct { unsigned long pseudoclient_count; unsigned long global_users; unsigned long parsed_privmsgs; unsigned long set_autokills; unsigned long killed_users; unsigned long matched_spams; } stats; } status; struct conf_t { /* our servername */ char servername[MAXHOSTLEN]; char remoteserver[MAXHOSTLEN]; int remoteport; char remotepassword[MAXPWDLEN]; char serverdesc[500]; struct { char host[MAXHOSTLEN]; int port; char database[24]; char user[16]; char pass[MAXPWDLEN]; } db; char reportchan[MAXCHANLEN]; char infochan[MAXCHANLEN]; char logpath[PATH_MAX]; char loglevels[120]; char diepass[8]; int akilllen; int fork; } conf; typedef struct t_irc_user { char nick[MAXNICKLEN+1]; char username[MAXUSERLEN+1]; char host[MAXHOSTLEN+1]; char gcos[MAXREALLEN+1]; int user_flags; } irc_user; typedef struct t_irc_msg { irc_user user; char **msgtoks; char *target; char *msg; unsigned int lasttok; } irc_msg; struct cmd { char *cmd; unsigned long usagecount; void (*func) (irc_msg *); }; struct spam_str { unsigned long id; GString *match_str; GPatternSpec *pattern; char *addedby; time_t added; int flags; unsigned long matches; time_t last_match; GString *reason; GString *comment; }; enum actions { NONE, AUTOKILL, KILL, REPORT }; #endif /* _STRUCTS_H_ */