]> jfr.im git - irc/quakenet/newserv.git/blobdiff - proxyscan/proxyscandb.c
PROXYSCAN: fix crashes on commands if no arg supplied, and allow more maxscans.
[irc/quakenet/newserv.git] / proxyscan / proxyscandb.c
index 484445d2aa938372163b32f033885e9c33f92a05..c378c726e2b6c46ea7980888190dd991bd1c6271 100644 (file)
@@ -99,6 +99,14 @@ const char *scantostr(int type) {
     case STYPE_DIRECT:
       reason="forward";
       break;
+
+    case STYPE_DIRECT_IRC:
+      reason="fwdirc";
+      break;
+
+    case STYPE_ROUTER:
+      reason="router";
+      break;
   }
    
   return reason;
@@ -122,8 +130,8 @@ int scantodm(int scannum) {
  */
 
 void loggline(cachehost *chp, patricia_node_t *node) {
-  char reasonlist[100];
-  char reasonesc[200 + 1]; /* reasonlist*2+1 */
+  char reasonlist[200];
+  char reasonesc[400 + 1]; /* reasonlist*2+1 */
   int reasonmask=0;
   int reasonpos=0;
   foundproxy *fpp;
@@ -136,6 +144,9 @@ void loggline(cachehost *chp, patricia_node_t *node) {
   reasonlist[0]='\0';
   reasonmask=0;
   for (fpp=chp->proxies;fpp;fpp=fpp->next) {
+    if ((reasonpos + 20) > sizeof(reasonlist))
+      break;
+
     reasonpos += sprintf(reasonlist+reasonpos, "%s:%d ",scantostr(fpp->type), fpp->port);
   }
 
@@ -196,10 +207,12 @@ void proxyscandolistopen_real(DBConn *dbconn, void *arg) {
   sendnoticetouser(proxyscannick,np,"--- End of list ---");
 }
 
-void proxyscandolistopen(nick *mynick, nick *usernick, time_t snce) {
-
+int proxyscandolistopen(void *sender, int cargc, char **cargv) {
+  nick *usernick = (nick *)sender;
+   
   dbasyncquery(proxyscandolistopen_real,(void *)usernick->numeric, 
-               "SELECT IP,TS,RH FROM openproxies WHERE TS>'%lu' ORDER BY TS",snce);
+               "SELECT IP,TS,RH FROM openproxies WHERE TS>'%lu' ORDER BY TS",time(NULL)-rescaninterval);
+  return CMD_OK;
 }
 
 /*
@@ -282,7 +295,6 @@ void proxyscanshowkill_real(DBConn *dbconn, void *arg) {
   sendnoticetouser(proxyscannick,np,"--- End of list ---");
 }
 
-
 void proxyscanshowkill(nick *mynick, nick *usernick, unsigned long a) {
   dbasyncquery(proxyscanspewip_real,(void *)usernick->numeric,
                "SELECT ID,IP,TS,RH FROM openproxies WHERE ID='%lu'",a);