From: Chris Porter Date: Sat, 17 Jul 2010 18:07:22 +0000 (+0200) Subject: PROXYSCAN: add Mikrotik HttpProxy scan. X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/e95140be5ef23a338bbfaf280e88df63db2c5ab1 PROXYSCAN: add Mikrotik HttpProxy scan. --- diff --git a/proxyscan/proxyscan.c b/proxyscan/proxyscan.c index 11e17984..b8195327 100644 --- a/proxyscan/proxyscan.c +++ b/proxyscan/proxyscan.c @@ -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)))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;ibytesread - magicstringlength;i++) { diff --git a/proxyscan/proxyscan.h b/proxyscan/proxyscan.h index 6f649c67..e4a63891 100644 --- a/proxyscan/proxyscan.h +++ b/proxyscan/proxyscan.h @@ -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 diff --git a/proxyscan/proxyscandb.c b/proxyscan/proxyscandb.c index 006b0edd..c378c726 100644 --- a/proxyscan/proxyscandb.c +++ b/proxyscan/proxyscandb.c @@ -103,6 +103,10 @@ const char *scantostr(int type) { case STYPE_DIRECT_IRC: reason="fwdirc"; break; + + case STYPE_ROUTER: + reason="router"; + break; } return reason;