#define LINGERTIME 300
#define DUMPINTERVAL 300
#define EMAILLEN 60
-#define CHANTYPES 8
+#define CHANTYPES 9
#define CHANOPHISTORY 10
/* Suspension and g-line hit count limits */
#define MAXSUSPENDHIT 500
/* Maximum number of times a user may attempt to auth */
-#define MAXAUTHATTEMPT 10
+#define MAXAUTHATTEMPT 5
/* Maximum number of hellos in a session */
#define MAXHELLOS 2
#define CHALLENGEAUTHSITE "http://www.quakenet.org/development/challengeauth/"
/* Cleanup options */
-#define CLEANUP_ACCOUNT_INACTIVE 180
+#define CLEANUP_ACCOUNT_INACTIVE 240 /* make sure you update CLEANUP_AUTHHISTORY too... */
#define CLEANUP_ACCOUNT_UNUSED 3
-#define CLEANUP_CHANNEL_INACTIVE 40
+#define CLEANUP_CHANNEL_INACTIVE 120
-#define CLEANUP_AUTHHISTORY 60
+#define CLEANUP_AUTHHISTORY 300
#define CLEANUP_MIN_CHAN_SIZE 2
#define ENTROPYLEN 8
/* Minimum acceptable reason length for stuff like deluser */
-#define MIN_REASONLEN 20
+#define MIN_REASONLEN 15
#include "chanserv_messages.h"
#define QPRIV_VIEWCHANSUSPENSION 110
#define QPRIV_VIEWSUSPENDEDBY 111
#define QPRIV_VIEWWALLMESSAGE 112
+#define QPRIV_VIEWREALHOST 113
#define QPRIV_CHANGECHANFLAGS 200
#define QPRIV_CHANGECHANLEV 201
#define QPRIV_CHANGEBANTIMER 204
#define QPRIV_CHANGEUSERFLAGS 205
#define QPRIV_CHANGEWELCOME 206
+#define QPRIV_RESETCHANSTAT 207
/* List of access checks */
/* email */
#define MAX_RESEND_TIME 2*3600L /* cooling off period */
-#define VALID_EMAIL "^[-_.+[:alpha:][:digit:]]+(\\.[-_[:digit:][:alpha:]]+)*@([[:digit:][:alpha:]](-?[[:digit:][:alpha:]])*\\.)+[[:alpha:]]{2}([zmuvtgol]|fo|me|seum|op|ro)?$"
+#define VALID_EMAIL "\\A[^\\s\\+@]+@([a-z0-9][a-z0-9\\-]*\\.)+[a-z]{2,}\\Z"
-#define VALID_ACCOUNT_NAME "^[a-z][-a-z0-9]+$"
+#define VALID_ACCOUNT_NAME "\\A[a-z][a-z0-9\\-]+\\Z"
#define QMAIL_NEWACCOUNT 1 /* new account */
#define QMAIL_REQPW 2 /* requestpassword */
void chanservcommandinit();
void chanservcommandclose();
void chanservstdmessage(nick *np, int messageid, ... );
+void chanservstdvmessage(nick *np, reguser *rup, int messageid, int max_line_len, void (*callback)(nick *, char *), va_list va);
void chanservaddcommand(char *command, int flags, int maxparams, CommandHandler handler, char *description, const char *help);
void chanservremovecommand(char *command, CommandHandler handler);
void chanservaddctcpcommand(char *command, CommandHandler hander);
int cs_unbanfn(nick *sender, chanindex *cip, int (*fn)(void *arg, struct chanban *ban), void *arg, int removepermbans, int abortonfailure);
void cs_logchanop(regchan *rcp, char *nick, reguser *rup);
int checkreason(nick *np, char *reason);
+regchan *cs_addchan(chanindex *cip, nick *sender, reguser *addedby, reguser *founder, flag_t flags, flag_t forcemodes, flag_t denymodes, short type);
/* chanservstdcmds.c */
int cs_doshowcommands(void *source, int cargc, char **cargv);
/* chanservschedule.c */
void chanservdgline(void *arg);
-/* authlib.c */
-int csa_checkeboy(nick *sender, char *eboy);
-void csa_createrandompw(char *pw, int n);
-int csa_checkthrottled(nick *sender, reguser *rup, char *s);
-
/* chanservdb_updates.c */
void csdb_updateauthinfo(reguser *rup);
void csdb_updatelastjoin(regchanuser *rcup);