]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Attempting to fix a few T problems.
authorChris Porter <redacted>
Sun, 30 Oct 2005 15:23:00 +0000 (15:23 +0000)
committerChris Porter <redacted>
Sun, 30 Oct 2005 15:23:00 +0000 (15:23 +0000)
trojanscan/trojanscan.c
trojanscan/trojanscan.h

index ae22c159f2fe019e0018abc9768ad92fe0014c1c..18c0a18457a62ff07c9e13a04c399146a40c99aa 100644 (file)
@@ -1755,8 +1755,6 @@ void trojanscan_clonehandlemessages(nick *target, int messagetype, void **args)
               }
             } 
 
-            trojanscan_database_query("INSERT INTO hits (nickname, ident, host, phrase, messagetype, glined) VALUES ('%s', '%s', '%s', %d, '%c', %d)", enick, eident, ehost, trojanscan_database.phrases[i].id, mt, glining);
-            
             if (!glining) {
               char matchbuf[513];
               matchbuf[0] = 0;
@@ -1766,11 +1764,16 @@ void trojanscan_clonehandlemessages(nick *target, int messagetype, void **args)
                 if (pcre_copy_substring(text, vector, pre, 1, matchbuf, sizeof(matchbuf) - 1) <= 0)
                   matchbuf[0] = 0;
               
-              trojanscan_mainchanmsg("m: t: %c u: %s!%s@%s%s%s w: %s f: %d%s%s", mt, sender->nick, sender->ident, sender->host->name->content, mt=='N'||mt=='M'?" #: ":"", mt=='N'||mt=='M'?chp->index->name->content:"", worm->name->content, frequency, matchbuf[0]?" --: ":"", matchbuf[0]?matchbuf:"");
+              trojanscan_mainchanmsg("m: t: %c u: %s!%s@%s%s%s w: %s %s%s", mt, sender->nick, sender->ident, sender->host->name->content, mt=='N'||mt=='M'?" #: ":"", mt=='N'||mt=='M'?chp->index->name->content:"", worm->name->content, matchbuf[0]?" --: ":"", matchbuf[0]?matchbuf:"");
             } else {
+              int glinetime = TROJANSCAN_FIRST_OFFENSE * frequency * (worm->epidemic?TROJANSCAN_EPIDEMIC_MULTIPLIER:1);
+              if(glinetime > 7 * 24)
+                glinetime = 7 * 24; /* can't set glines over 7 days with normal non U:lined glines */
+
+              trojanscan_database_query("INSERT INTO hits (nickname, ident, host, phrase, messagetype, glined) VALUES ('%s', '%s', '%s', %d, '%c', %d)", enick, eident, ehost, trojanscan_database.phrases[i].id, mt, glining);          
               trojanscan_database.glines++;
               
-              irc_send("%s GL * +%s %d :You (%s!%s@%s) are infected with a worm (%s), see %s%d for details - banned for %d hours\r\n", mynumeric->content, glinemask, 3600 * TROJANSCAN_FIRST_OFFENSE * frequency * (worm->epidemic?TROJANSCAN_EPIDEMIC_MULTIPLIER:1), sender->nick, sender->ident, sender->host->name->content, worm->name->content, TROJANSCAN_URL_PREFIX, worm->id, TROJANSCAN_FIRST_OFFENSE * frequency * (worm->epidemic?TROJANSCAN_EPIDEMIC_MULTIPLIER:1));
+              irc_send("%s GL * +%s %d %d :You (%s!%s@%s) are infected with a worm (%s), see %s%d for details - banned for %d hours\r\n", mynumeric->content, glinemask, glinetime * 3600, getnettime(), sender->nick, sender->ident, sender->host->name->content, worm->name->content, TROJANSCAN_URL_PREFIX, worm->id, glinetime);
               //trojanscan_mainchanmsg("%s GL * +%s %d :You are infected with a worm (%s), see %s%d for details - banned for %d hours\r\n", mynumeric->content, glinemask, 3600 * TROJANSCAN_FIRST_OFFENSE * frequency, worm->name->content, TROJANSCAN_URL_PREFIX, worm->id, TROJANSCAN_FIRST_OFFENSE * frequency);
 
               trojanscan_mainchanmsg("g: *!%s t: %c u: %s!%s@%s%s%s c: %d w: %s%s f: %d", glinemask, mt, sender->nick, sender->ident, sender->host->name->content, mt=='N'||mt=='M'?" #: ":"", mt=='N'||mt=='M'?chp->index->name->content:"", usercount, worm->name->content, worm->epidemic?"(E)":"", frequency);
@@ -2120,7 +2123,7 @@ void trojanscan_generatehost(char *buf, int maxsize) {
     int loops, j;
     do {
       for (j=trojanscan_minmaxrand(0, NICKHASHSIZE-1);j<NICKHASHSIZE;j++) {
-        if (nicktable[j]) {
+        if (nicktable[j] && !trojanscan_isip(nicktable[j]->host->name->content)) {
           strcpy(buf, nicktable[j]->host->name->content);
           return;
         }
@@ -2260,3 +2263,18 @@ void trojanscan_database_free_result(trojanscan_database_res *res) {
   mysql_free_result(res);
 }
 
+int trojanscan_isip(char *host) {
+  char *p = host, components = 0, length = 0;
+
+  for(;*p;p++) {
+    if(*p == '.') {
+      if(((!length) || (length = 0)) || (++components > 3))
+        return 0;
+    } else {
+      if ((++length > 3) || !isdigit(*p))
+        return 0;
+    }
+  }
+  return components == 3;
+}
+
index 6c79a8be8b70fb1270f68a0c89d50b3d54142ce7..bc2d92b3ba0c59dc13dfa5af4633d59274300a2e 100644 (file)
@@ -17,7 +17,7 @@
 
 #define TROJANSCAN_VERSION "2.43"
 
-#define TROJANSCAN_CLONE_MAX        160 /* 80 */
+#define TROJANSCAN_CLONE_MAX        250 /* 80 */
 #define TROJANSCAN_WATCHCLONE_MAX   20
 #define TROJANSCAN_CLONE_TOTAL TROJANSCAN_CLONE_MAX + TROJANSCAN_WATCHCLONE_MAX
 
 
 #define TROJANSCAN_MINIMUM_HOSTS_BEFORE_POOL 500
 
-#define TROJANSCAN_DEFAULT_MAXCHANS 300
-#define TROJANSCAN_DEFAULT_CYCLETIME 600
+#define TROJANSCAN_DEFAULT_MAXCHANS 200
+#define TROJANSCAN_DEFAULT_CYCLETIME 300
 
-#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 100
+#define TROJANSCAN_DEFAULT_MINIMUM_CHANNEL_SIZE 150
 
 #define TROJANSCAN_NICKCHANGE_ODDS 8
 #define TROJANSCAN_INVISIBLE_ODDS 8
@@ -42,7 +42,7 @@
 #define TROJANSCAN_HOST_POOL      0x00
 #define TROJANSCAN_STEAL_HOST     0x01
 
-#define TROJANSCAN_EPIDEMIC_MULTIPLIER 12
+#define TROJANSCAN_EPIDEMIC_MULTIPLIER 20
 
 #define TROJANSCAN_HOST_MODE      TROJANSCAN_STEAL_HOST