X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/1f980bdf5093d59a9d2664b79527c494a03c4347..5ec20d224f8f4d79c9cb9e5b8546c4a638a35943:/chanserv/chanserv.h diff --git a/chanserv/chanserv.h b/chanserv/chanserv.h index 98878f66..f59cea78 100644 --- a/chanserv/chanserv.h +++ b/chanserv/chanserv.h @@ -11,6 +11,8 @@ #include #include #include +#include + #include "../lib/sstring.h" #include "../core/schedule.h" #include "../lib/flags.h" @@ -18,7 +20,10 @@ #include "../channel/channel.h" #include "../parser/parser.h" #include "../localuser/localuserchannel.h" + +#ifndef CS_NODB #include "../dbapi/dbapi.h" +#endif #define CS_PARANOID @@ -68,7 +73,7 @@ /* Cleanup options */ #define CLEANUP_ACCOUNT_INACTIVE 80 #define CLEANUP_ACCOUNT_UNUSED 10 -#define CLEANUP_CHANNEL_INACTIVE 30 +#define CLEANUP_CHANNEL_INACTIVE 40 /* Sizes of the main hashes */ #define REGUSERHASHSIZE 60000 @@ -78,7 +83,7 @@ #define MAXLANG 50 /* Maximum number of user chanlevs and bans */ -#define MAXCHANLEVS 250 +#define MAXCHANLEVS 500 #define MAXBANS 50 /* Sources of entropy and standard length defines */ @@ -87,6 +92,9 @@ #include "chanserv_messages.h" +#define CSMIN(a, b) ((a)<(b)?(a):(b)) +#define CSMAX(a, b) ((a)>(b)?(a):(b)) + /* List of privileged operations */ #define QPRIV_SUSPENDBYPASS 1 @@ -100,6 +108,8 @@ #define QPRIV_VIEWWELCOME 107 #define QPRIV_VIEWCOMMENTS 108 #define QPRIV_VIEWEMAIL 109 +#define QPRIV_VIEWCHANSUSPENSION 110 +#define QPRIV_VIEWSUSPENDEDBY 111 #define QPRIV_CHANGECHANFLAGS 200 #define QPRIV_CHANGECHANLEV 201 @@ -649,7 +659,10 @@ extern unsigned int lastmaillockID; extern int chanserv_init_status; extern int chanservdb_ready; + +#ifndef CS_NODB extern DBModuleIdentifier q9dbid, q9adbid, q9cdbid, q9udbid; +#endif extern maildomain *maildomainnametable[MAILDOMAINHASHSIZE]; extern maildomain *maildomainIDtable[MAILDOMAINHASHSIZE]; @@ -678,6 +691,8 @@ extern sstring **chantypes; extern maillock *maillocks; +extern sstring *cs_quitreason; + /* Function prototypes */ /* chanserv.c */ @@ -773,8 +788,8 @@ void chanservreguser(void *arg); void chanservjoinchan(channel *cp); #define chanservsendmessage(np, fmt, args...) chanservsendmessage_real(np, 0, fmt , ## args) #define chanservsendmessageoneline(np, fmt, args...) chanservsendmessage_real(np, 1, fmt , ## args) -void chanservsendmessage_real(nick *np, int oneline, char *message, ... ); -void chanservwallmessage(char *message, ... ); +void chanservsendmessage_real(nick *np, int oneline, char *message, ... ) __attribute__ ((format (printf, 3, 4)));; +void chanservwallmessage(char *message, ... ) __attribute__ ((format (printf, 1, 2))); void chanservcommandinit(); void chanservcommandclose(); void chanservstdmessage(nick *np, int messageid, ... ); @@ -813,6 +828,7 @@ void cs_logchanop(regchan *rcp, char *nick, reguser *rup); int cs_doshowcommands(void *source, int cargc, char **cargv); int cs_dohelp(void *source, int cargc, char **cargv); int cs_doquit(void *source, int cargc, char **cargv); +int cs_dosetquitreason(void *source, int cargc, char **cargv); int cs_dorename(void *source, int cargc, char **cargv); int cs_dorehash(void *source, int cargc, char **cargv); int cs_doversion(void *source, int cargc, char **cargv); @@ -845,7 +861,7 @@ chanindex *cs_checkaccess(nick *np, const char *chan, unsigned int flags, chanin /* chanservlog.c */ void cs_initlog(); void cs_closelog(); -void cs_log(nick *np, char *event, ...); +void cs_log(nick *np, char *event, ...) __attribute__ ((format (printf, 2, 3))); /* chanservdump.c */ int dumplastjoindata(const char *filename); @@ -881,7 +897,7 @@ void csdb_deletemaildomain(maildomain *mdp); void csdb_createmaildomain(maildomain *mdp); void csdb_updatemaildomain(maildomain *mdp); void csdb_chanlevhistory_insert(regchan *rcp, nick *np, reguser *trup, flag_t oldflags, flag_t newflags); -void csdb_accounthistory_insert(nick *np, char *oldpass, char *newpass, sstring *oldemail, sstring *newemail); +void csdb_accounthistory_insert(nick *np, char *oldpass, char *newpass, char *oldemail, char *newemail); void csdb_cleanuphistories(); void csdb_deletemaillock(maillock *mlp); void csdb_createmaillock(maillock *mlp); @@ -890,4 +906,9 @@ void csdb_updatemaillock(maillock *mlp); /* q9snprintf.c */ void q9snprintf(char *buf, size_t size, const char *format, const char *args, ...); void q9vsnprintf(char *buf, size_t size, const char *format, const char *args, va_list ap); + +/* chanserv_flags.c */ +u_int64_t cs_accountflagmap(reguser *rup); +u_int64_t cs_accountflagmap_str(char *flags); + #endif