/*
* Trojanscan version 2
*
- * Trojanscan copyright (C) Chris Porter 2002-2007
+ * Trojanscan copyright (C) Chris Porter 2002-2009
* Newserv bits copyright (C) David Mansell 2002-2003
*
* TODO: CHECK::
return NULL;
}
+static int specialuseronhost(host *hp) {
+ nick *np;
+
+ for(np=hp->nicks;np;np=np->nextbyhost)
+ if(IsOper(np) || IsService(np) || IsXOper(np) || NickOnServiceServer(np))
+ return 1;
+
+ return 0;
+}
+
void trojanscan_generatehost(char *buf, int maxsize, patricia_node_t **fakeip) {
struct irc_in_addr ipaddress;
do {
hp = trojanscan_selecthost();
- if(hp && (hp->clonecount <= TROJANSCAN_MAX_CLONE_COUNT) && !trojanscan_isip(hp->name->content)) {
+ if(hp && (hp->clonecount <= TROJANSCAN_MAX_CLONE_COUNT) && !trojanscan_isip(hp->name->content) && !specialuseronhost(hp)) {
strlcpy(buf, hp->name->content, maxsize + 1);
if(hp->nicks) {
*fakeip = hp->nicks->ipnode;
#include <ctype.h>
#include <strings.h>
-#define TROJANSCAN_VERSION "2.71"
+#define TROJANSCAN_VERSION "2.72"
#define TROJANSCAN_MAX_HOST_GLINE 5
#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 150
+#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_DEFAULT_VERSION_REPLY "mIRC v6.31 Khaled Mardam-Bey"
+#define TROJANSCAN_DEFAULT_VERSION_REPLY "mIRC v6.35 Khaled Mardam-Bey"
typedef struct trojanscan_clones {
int remaining, sitting, index;