#include <ctype.h>
#include <strings.h>
-#define TROJANSCAN_VERSION "2.64"
+#define TROJANSCAN_VERSION "2.72"
-#define TROJANSCAN_MAX_HOST_GLINE 5
-
-#define TROJANSCAN_CLONE_MAX 150
-#define TROJANSCAN_WATCHCLONE_MAX 100
+#define TROJANSCAN_CLONE_MAX 75
+#define TROJANSCAN_WATCHCLONE_MAX 75
#define TROJANSCAN_CLONE_TOTAL TROJANSCAN_CLONE_MAX + TROJANSCAN_WATCHCLONE_MAX
#define TROJANSCAN_POOLSIZE 1000
#define TROJANSCAN_MINIMUM_HOSTS_BEFORE_POOL 5000 /* 5000 */
#define TROJANSCAN_DEFAULT_MAXCHANS 750
-#define TROJANSCAN_DEFAULT_CYCLETIME 800
+#define TROJANSCAN_DEFAULT_CYCLETIME 1600
#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 100 /* 100 */
-#define TROJANSCAN_NICKCHANGE_ODDS 8
+#define TROJANSCAN_NICKCHANGE_ODDS 16
#define TROJANSCAN_INVISIBLE_ODDS 8
-#define TROJANSCAN_DEFAULT_PARTTIME 100
+#define TROJANSCAN_DEFAULT_PARTTIME 260
#define TROJANSCAN_DEFAULT_MAXUSERS 20
#define TROJANSCAN_POOL_REGENERATION 3600
#define TROJANSCAN_HOST_POOL 0x00
#define TROJANSCAN_STEAL_HOST 0x01
-#define TROJANSCAN_EPIDEMIC_MULTIPLIER 40
+#define TROJANSCAN_EPIDEMIC_MULTIPLIER 20
#define TROJANSCAN_HOST_MODE TROJANSCAN_STEAL_HOST
-#define TROJANSCAN_MAX_CLONE_COUNT 5
+#define TROJANSCAN_MAX_CLONE_COUNT 3
#define TROJANSCAN_CAT "./trojanscan/cat.txt"
#define TROJANSCAN_IPLEN 20
#define TROJANSCAN_VERSION_DETECT "\001VERSION"
-#define TROJANSCAN_CLONE_VERSION_REPLY "mIRC v6.17 Khaled Mardam-Bey"
+#define TROJANSCAN_DEFAULT_VERSION_REPLY "mIRC v6.35 Khaled Mardam-Bey"
typedef struct trojanscan_clones {
int remaining, sitting, index;
void trojanscan_handlemessages(nick *target, int messagetype, void **args);
void trojanscan_clonehandlemessages(nick *target, int messagetype, void **args);
-void trojanscan_mainchanmsg(char *message, ...);
-void trojanscan_peonchanmsg(char *message, ...);
-void trojanscan_reply(nick *target, char *message, ... );
-void trojanscan_privmsg_chan_or_nick(channel *cp, nick *np, char *text, ...);
+void trojanscan_mainchanmsg(char *message, ...) __attribute__ ((format (printf, 1, 2)));
+void trojanscan_peonchanmsg(char *message, ...) __attribute__ ((format (printf, 1, 2)));
+void trojanscan_reply(nick *target, char *message, ... ) __attribute__ ((format (printf, 2, 3)));
+void trojanscan_privmsg_chan_or_nick(channel *cp, nick *np, char *text, ...) __attribute__ ((format (printf, 3, 4)));
void trojanscan_connect(void *arg);
void trojanscan_dojoin(void *arg);
int trojanscan_database_connect(char *dbhost, char *dbuser, char *dbpass, char *db, unsigned int port);
void trojanscan_database_close(void);
void trojanscan_database_escape_string(char *dest, char *source, size_t length);
-int trojanscan_database_query(char *format, ...);
+int trojanscan_database_query(char *format, ...) __attribute__ ((format (printf, 1, 2)));
int trojanscan_database_num_rows(trojanscan_database_res *res);
trojanscan_database_res *trojanscan_database_store_result();
trojanscan_database_row trojanscan_database_fetch_row(trojanscan_database_res *res);