]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Merged revisions 239 via svnmerge from
authorChris Porter <redacted>
Sun, 30 Oct 2005 17:44:00 +0000 (17:44 +0000)
committerChris Porter <redacted>
Sun, 30 Oct 2005 17:44:00 +0000 (17:44 +0000)
https://svn.quakenet.org/svn/dev-com/N/trunk

........
r239 | slug | 2005-10-30 17:43:57 +0000 (Sun, 30 Oct 2005) | 2 lines

Made the generation functions more random.

........

trojanscan/trojanscan.c
trojanscan/trojanscan.h

index 18c0a18457a62ff07c9e13a04c399146a40c99aa..45f9221b9dbde20abc7eb289446303ad0214a3b0 100644 (file)
@@ -464,7 +464,7 @@ void trojanscan_log(nick *np, char *event, char *details, ...) {
 }
 
 void trojanscan_generateclone(void *arg) {
-  int i, loops = 0, modes = UMODE_XOPER;
+  int i, loops = 0, modes = UMODE_XOPER | UMODE_INV;
   char c_nick[NICKLEN+1], c_ident[USERLEN+1], c_host[HOSTLEN+1], c_real[REALLEN+1];
 
   i = (int)arg;
@@ -495,9 +495,6 @@ void trojanscan_generateclone(void *arg) {
   if(!c_real)
     trojanscan_genreal(c_real, trojanscan_minmaxrand(15, TROJANSCAN_MMIN(50, REALLEN)));
 
-  if(trojanscan_minmaxrand(0, TROJANSCAN_INVISIBLE_ODDS - 1))
-    modes |= UMODE_INV;
-  
   trojanscan_swarm[i].clone = registerlocaluser(c_nick, c_ident, c_host, c_real, NULL, modes, &trojanscan_clonehandlemessages);
   trojanscan_swarm[i].remaining = trojanscan_minmaxrand(5, 100);
 
@@ -2118,18 +2115,30 @@ int trojanscan_generatepool(void) {
   return i;
 }
 
+nick *trojanscan_selectuser(void) {
+  int target = trojanscan_minmaxrand(0, 500), loops = 50, j;
+  nick *np;
+  do {
+    for (j=trojanscan_minmaxrand(0, NICKHASHSIZE-1);j<NICKHASHSIZE;j++)
+      for(np=nicktable[j];np;np=np->next)
+        if (!--target)
+          return np;
+  } while(--loops > 0);
+  return NULL;
+}
+
 void trojanscan_generatehost(char *buf, int maxsize) {
   if(TROJANSCAN_HOST_MODE == TROJANSCAN_STEAL_HOST) {
-    int loops, j;
+    nick *np;
+    int loops = 20;
+    buf[0] = '\0';
     do {
-      for (j=trojanscan_minmaxrand(0, NICKHASHSIZE-1);j<NICKHASHSIZE;j++) {
-        if (nicktable[j] && !trojanscan_isip(nicktable[j]->host->name->content)) {
-          strcpy(buf, nicktable[j]->host->name->content);
-          return;
-        }
+      np = trojanscan_selectuser();
+      if(np && !trojanscan_isip(np->host->name->content)) {
+        strncpy(buf, np->host->name->content, maxsize);
+        break;
       }
-      loops++;
-    } while (loops < 10);
+    } while(--loops > 0);
   } else {
     char *cpos;
     int pieces = trojanscan_minmaxrand(2, 4), totallen = 0, a = 0, i;
@@ -2169,57 +2178,35 @@ void trojanscan_generatehost(char *buf, int maxsize) {
 }
 
 void trojanscan_generatenick(char *buf, int maxsize) {
-  int bits = trojanscan_minmaxrand(2, 4), j, loops = 0, d = 0, wanttocopy, len = 0, i;
-  buf[0] = '\0';
+  int bits = trojanscan_minmaxrand(2, 3), loops = 0, wanttocopy, len = 0, i, d = 0;
+  nick *np;
   do {
-    for (j=trojanscan_minmaxrand(0, NICKHASHSIZE-1);j<NICKHASHSIZE;j++) {
-      if (nicktable[j]) {
-        if(nicktable[j]->nick) {
-          wanttocopy = trojanscan_minmaxrand(1, (strlen(nicktable[j]->nick) / 2) + 1);
-          for(i=0;((i<wanttocopy) && (len<maxsize));i++)
-            buf[len++] = nicktable[j]->nick[i];
-          if(++d > bits) {
-            buf[len] = 0;
-            return;
-          }
-        }
+    np = trojanscan_selectuser();
+    if(np) {
+      wanttocopy = trojanscan_minmaxrand(1, (strlen(np->nick) / 2) + 2);
+      for(i=0;((i<wanttocopy) && (len<maxsize));i++)
+        buf[len++] = np->nick[i];
+      if(++d > bits) {
+        buf[len] = '\0';
+        return;
       }
     }
-    loops++;
-  } while (loops < 10);
+  } while (++loops < 10);
   buf[0] = '\0';
 }
 
 void trojanscan_generateident(char *buf, int maxsize) {
-  int j, loops = 0;
+  nick *np = trojanscan_selectuser();
   buf[0] = '\0';
-  do {
-    for (j=trojanscan_minmaxrand(0, NICKHASHSIZE-1);j<NICKHASHSIZE;j++) {
-      if (nicktable[j]) {
-        if(nicktable[j]->ident) {
-          strncpy(buf, nicktable[j]->ident, maxsize);
-          return;
-        }
-      }
-    }
-    loops++;
-  } while (loops < 10);
+  if(np)
+    strncpy(buf, np->ident, maxsize);
 }
 
 void trojanscan_generaterealname(char *buf, int maxsize) {
-  int j, loops = 0;
+  nick *np = trojanscan_selectuser();
   buf[0] = '\0';
-  do {
-    for (j=trojanscan_minmaxrand(0, NICKHASHSIZE-1);j<NICKHASHSIZE;j++) {
-      if (nicktable[j]) {
-        if(nicktable[j]->realname->name->content) {
-          strncpy(buf, nicktable[j]->realname->name->content, maxsize);
-          return;
-        }
-      }
-    }
-    loops++;
-  } while (loops < 10);
+  if(np)
+    strncpy(buf, np->realname->name->content, maxsize);
 }
 
 void trojanscan_database_close(void) {
index bc2d92b3ba0c59dc13dfa5af4633d59274300a2e..d23392843b4d57a204e73ed93aa01db3dfa4b4f6 100644 (file)
 #include <stdarg.h>
 #include <stdio.h>
 #include <string.h>
+#include <ctype.h>
+#include <strings.h>
 
-#define TROJANSCAN_VERSION "2.43"
+#define TROJANSCAN_VERSION "2.51"
 
-#define TROJANSCAN_CLONE_MAX        250 /* 80 */
-#define TROJANSCAN_WATCHCLONE_MAX   20
+#define TROJANSCAN_CLONE_MAX        300 /* 80 */
+#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 500
 
-#define TROJANSCAN_DEFAULT_MAXCHANS 200
-#define TROJANSCAN_DEFAULT_CYCLETIME 300
+#define TROJANSCAN_DEFAULT_MAXCHANS 500
+#define TROJANSCAN_DEFAULT_CYCLETIME 600
 
-#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 150
+#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 100
 
 #define TROJANSCAN_NICKCHANGE_ODDS 8
 #define TROJANSCAN_INVISIBLE_ODDS 8
@@ -242,6 +244,7 @@ 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);
@@ -261,6 +264,7 @@ 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;