]> jfr.im git - irc/quakenet/newserv.git/commitdiff
PROXYSCAN: add Mikrotik HttpProxy scan.
authorChris Porter <redacted>
Sat, 17 Jul 2010 18:07:22 +0000 (20:07 +0200)
committerChris Porter <redacted>
Sat, 17 Jul 2010 18:07:22 +0000 (20:07 +0200)
proxyscan/proxyscan.c
proxyscan/proxyscan.h
proxyscan/proxyscandb.c

index 11e179841571e44b84aa77395af2674d5ad57651..b8195327a5d2d3cefcff61e5d442dc0557eaab15 100644 (file)
@@ -285,6 +285,7 @@ void _init(void) {
   proxyscan_addscantype(STYPE_DIRECT_IRC, 6668);
   proxyscan_addscantype(STYPE_DIRECT_IRC, 6669);
   proxyscan_addscantype(STYPE_DIRECT_IRC, 6670);
+  proxyscan_addscantype(STYPE_ROUTER, 3128);
  
   /* Schedule saves */
   schedulerecurring(time(NULL)+3600,0,3600,&dumpcachehosts,NULL);
@@ -712,6 +713,16 @@ void handlescansock(int fd, short events) {
         return;
       }
       
+      /* Do nothing */
+      break;    
+
+    case STYPE_ROUTER:
+      sprintf(buf,"GET /nonexistent HTTP/1.0\r\n\r\n");
+      if ((write(fd,buf,strlen(buf)))<strlen(buf)) {
+       killsock(sp, SOUTCOME_CLOSED);
+        return;
+      }
+      
       /* Do nothing */
       break;    
     }                
@@ -735,12 +746,15 @@ void handlescansock(int fd, short events) {
       char *magicstring;
       int magicstringlength;
 
-      if(sp->type != STYPE_DIRECT_IRC) {
-        magicstring = MAGICSTRING;
-        magicstringlength = MAGICSTRINGLENGTH;
-      } else {
+      if(sp->type == STYPE_DIRECT_IRC) {
         magicstring = MAGICIRCSTRING;
         magicstringlength = MAGICIRCSTRINGLENGTH;
+      } else if(sp->type == STYPE_ROUTER) {
+        magicstring = MAGICROUTERSTRING;
+        magicstringlength = MAGICROUTERSTRINGLENGTH;
+      } else {
+        magicstring = MAGICSTRING;
+        magicstringlength = MAGICSTRINGLENGTH;
       }
 
       for (i=0;i<sp->bytesread - magicstringlength;i++) {
index 6f649c674e10e3fc4d09b341bcf0efffd45e8489..e4a638917ae82aa082f43913c3dbac54f340fce0 100644 (file)
@@ -13,6 +13,9 @@
 #define MAGICIRCSTRING      ".quakenet.org 451 *  :Register first.\r\n"
 #define MAGICIRCSTRINGLENGTH 38
 
+#define MAGICROUTERSTRING        "\r\nServer: Mikrotik HttpProxy\r\n"
+#define MAGICROUTERSTRINGLENGTH  30
+
 #define PSCAN_MAXSCANS      50
 #define PSCAN_READBUFSIZE   (MAGICSTRINGLENGTH * 2)
 
@@ -27,6 +30,7 @@
 #define STYPE_CISCO         4
 #define STYPE_DIRECT        5 /* not sure what this is so I'm leaving it alone */
 #define STYPE_DIRECT_IRC    6
+#define STYPE_ROUTER        7
 
 #define SOUTCOME_INPROGRESS 0
 #define SOUTCOME_OPEN       1
index 006b0edd088332cf9114966e14213f60cc92a227..c378c726e2b6c46ea7980888190dd991bd1c6271 100644 (file)
@@ -103,6 +103,10 @@ const char *scantostr(int type) {
     case STYPE_DIRECT_IRC:
       reason="fwdirc";
       break;
+
+    case STYPE_ROUTER:
+      reason="router";
+      break;
   }
    
   return reason;