]> jfr.im git - irc/quakenet/newserv.git/blobdiff - trojanscan/trojanscan.h
use correct stats level
[irc/quakenet/newserv.git] / trojanscan / trojanscan.h
index bc2d92b3ba0c59dc13dfa5af4633d59274300a2e..3c21a8a4e227d325bb8cafb3af1e5af8ea9becd3 100644 (file)
@@ -5,6 +5,7 @@
 #include "../core/schedule.h"
 #include "../lib/irc_string.h"
 #include "../lib/splitline.h"
+#include "../lib/strlfunc.h"
 #include "../localuser/localuserchannel.h"
 
 #include <assert.h>
 #include <stdarg.h>
 #include <stdio.h>
 #include <string.h>
+#include <ctype.h>
+#include <strings.h>
 
-#define TROJANSCAN_VERSION "2.43"
+#define TROJANSCAN_VERSION "2.71"
 
-#define TROJANSCAN_CLONE_MAX        250 /* 80 */
-#define TROJANSCAN_WATCHCLONE_MAX   20
+#define TROJANSCAN_MAX_HOST_GLINE   5
+
+#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_MINPOOLSIZE 100
+#define TROJANSCAN_MINPOOLSIZE 500 /* 500 */
 
-#define TROJANSCAN_MINIMUM_HOSTS_BEFORE_POOL 500
+#define TROJANSCAN_MINIMUM_HOSTS_BEFORE_POOL 5000 /* 5000 */
 
-#define TROJANSCAN_DEFAULT_MAXCHANS 200
-#define TROJANSCAN_DEFAULT_CYCLETIME 300
+#define TROJANSCAN_DEFAULT_MAXCHANS 750
+#define TROJANSCAN_DEFAULT_CYCLETIME 1600
 
-#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 150
+#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 100 /* 100 */
 
 #define TROJANSCAN_NICKCHANGE_ODDS 8
 #define TROJANSCAN_INVISIBLE_ODDS 8
 
-#define TROJANSCAN_DEFAULT_PARTTIME 100
+#define TROJANSCAN_DEFAULT_PARTTIME 150
 #define TROJANSCAN_DEFAULT_MAXUSERS 20
 
 #define TROJANSCAN_POOL_REGENERATION 3600
 #define TROJANSCAN_HOST_POOL      0x00
 #define TROJANSCAN_STEAL_HOST     0x01
 
-#define TROJANSCAN_EPIDEMIC_MULTIPLIER 20
+#define TROJANSCAN_EPIDEMIC_MULTIPLIER 40
 
 #define TROJANSCAN_HOST_MODE      TROJANSCAN_STEAL_HOST
 
+#define TROJANSCAN_MAX_CLONE_COUNT 5
+
 #define TROJANSCAN_CAT "./trojanscan/cat.txt"
 
-#define TROJANSCAN_CHANNEL "#qnet.sec.trj"
+#define TROJANSCAN_CHANNEL "#qnet.trj"
 #define TROJANSCAN_OPERCHANNEL "#twilightzone"
 
 #define TROJANSCAN_URL_PREFIX "http://trojanscan.quakenet.org/?"
 #define TROJANSCAN_QUERY_TEMP_BUF_SIZE 1040
 #define TROJANSCAN_QUERY_BUF_SIZE 5040
 
-#define TROJANSCAN_FIRST_OFFENSE 2
+#define TROJANSCAN_FIRST_OFFENSE 12
 #define TROJANSCAN_IPLEN         20
 
 #define TROJANSCAN_VERSION_DETECT "\001VERSION"
-#define TROJANSCAN_CLONE_VERSION_REPLY "mIRC v6.16 Khaled Mardam-Bey"
+#define TROJANSCAN_DEFAULT_VERSION_REPLY "mIRC v6.31 Khaled Mardam-Bey"
 
 typedef struct trojanscan_clones {
   int              remaining, sitting, index;
   nick             *clone;
+  patricia_node_t *fakeipnode;
 } trojanscan_clones;
 
 typedef struct trojanscan_channels {
@@ -142,7 +150,7 @@ typedef struct trojanscan_flagmodification {
 
 typedef struct trojanscan_rejoinlist {
   sstring *channel;
-  nick *clone;
+  trojanscan_clones *clone;
   void *schedule;
   struct trojanscan_realchannels *rp;
   struct trojanscan_rejoinlist *next;
@@ -204,6 +212,7 @@ char trojanscan_getmtfrommessagetype(int input);
 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, ...);
 
@@ -242,25 +251,27 @@ 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);
 void trojanscan_database_free_result(trojanscan_database_res *res);
+nick *trojanscan_selectuser(void);
 
 int trojanscan_is_not_octet(char *begin, int length);
 void trojanscan_genreal(char *ptc, char size);
 char trojanscan_genchar(int ty);
 void trojanscan_gennick(char *ptc, char size);
 void trojanscan_genident(char *ptc, char size);
-void trojanscan_genhost(char *ptc, char size);
+void trojanscan_genhost(char *ptc, char size, patricia_node_t **fakeipnode);
 
 int trojanscan_generatepool(void);
 void trojanscan_watch_clone_update(struct trojanscan_prechannels *hp, int count);
 void trojanscan_repool(void *arg);
 
-void trojanscan_generatehost(char *buf, int maxsize);
+void trojanscan_generatehost(char *buf, int maxsize, patricia_node_t **fakeipnode);
 void trojanscan_generatenick(char *buf, int maxsize);
 void trojanscan_generateident(char *buf, int maxsize);
 void trojanscan_generaterealname(char *buf, int maxsize);
 
 sstring *trojanscan_getsstring(char *string, int length);
 int trojanscan_strip_codes(char *buf, size_t max, char *original);
+int trojanscan_isip(char *host);
 
 struct trojanscan_clones trojanscan_swarm[TROJANSCAN_CLONE_TOTAL];
 struct trojanscan_db trojanscan_database;
@@ -278,7 +289,7 @@ char trojanscan_hostmode;
 void *trojanscan_schedule, *trojanscan_connect_schedule;
 void *trojanscan_initialschedule, *trojanscan_rehashschedule, *trojanscan_poolschedule, *trojanscan_cloneschedule;
 
-int trojanscan_minchansize;
+int trojanscan_minchansize, trojanscan_min_hosts;
 int trojanscan_swarm_created = 0;
 
 nick *trojanscan_nick;