Bladeren bron

* Socket debugging !

svn: 1124
Bryan Drewery 22 jaren geleden
bovenliggende
commit
7ec721ecce
3 gewijzigde bestanden met toevoegingen van 11 en 3 verwijderingen
  1. 8 1
      src/net.c
  2. 2 0
      src/net.h
  3. 1 2
      src/shell.c

+ 8 - 1
src/net.c

@@ -539,6 +539,8 @@ void real_killsock(register int sock, const char *file, int line)
 	socklist[i].outbuf = NULL;
 	socklist[i].outbuf = NULL;
 	socklist[i].outbuflen = 0;
 	socklist[i].outbuflen = 0;
       }
       }
+      if (socklist[i].host)
+        free(socklist[i].host);
       egg_bzero(&socklist[i], sizeof(socklist[i]));
       egg_bzero(&socklist[i], sizeof(socklist[i]));
       socklist[i].flags = SOCK_UNUSED;
       socklist[i].flags = SOCK_UNUSED;
       return;
       return;
@@ -694,8 +696,11 @@ int open_telnet_raw(int sock, char *server, port_t sport)
   }
   }
 
 
   for (i = 0; i < MAXSOCKS; i++) {
   for (i = 0; i < MAXSOCKS; i++) {
-    if (!(socklist[i].flags & SOCK_UNUSED) && (socklist[i].sock == sock))
+    if (!(socklist[i].flags & SOCK_UNUSED) && (socklist[i].sock == sock)) {
       socklist[i].flags = (socklist[i].flags & ~SOCK_VIRTUAL) | SOCK_CONNECT;
       socklist[i].flags = (socklist[i].flags & ~SOCK_VIRTUAL) | SOCK_CONNECT;
+      socklist[i].host = strdup(server);
+      socklist[i].port = port;
+    }
   }
   }
 
 
   rc = connect(sock, &so.sa, SIZEOF_SOCKADDR(so));
   rc = connect(sock, &so.sa, SIZEOF_SOCKADDR(so));
@@ -1760,6 +1765,8 @@ void tell_netdebug(int idx)
 	sprintf(&s[strlen(s)], " (inbuf: %04X)", strlen(socklist[i].inbuf));
 	sprintf(&s[strlen(s)], " (inbuf: %04X)", strlen(socklist[i].inbuf));
       if (socklist[i].outbuf != NULL)
       if (socklist[i].outbuf != NULL)
 	sprintf(&s[strlen(s)], " (outbuf: %06lX)", (unsigned long) socklist[i].outbuflen);
 	sprintf(&s[strlen(s)], " (outbuf: %06lX)", (unsigned long) socklist[i].outbuflen);
+      if (socklist[i].host)
+        sprintf(&s[strlen(s)], " (%s:%d)", socklist[i].host, socklist[i].port);
       strcat(s, ",");
       strcat(s, ",");
       dprintf(idx, "%s", s);
       dprintf(idx, "%s", s);
     }
     }

+ 2 - 0
src/net.h

@@ -110,11 +110,13 @@ typedef struct {
 #ifdef HAVE_SSL
 #ifdef HAVE_SSL
   SSL           *ssl;
   SSL           *ssl;
 #endif /* HAVE_SSL */
 #endif /* HAVE_SSL */
+  port_t port;
   short          flags;
   short          flags;
   char okey[33];                        /* botlink enckey: out */
   char okey[33];                        /* botlink enckey: out */
   char ikey[33];                        /* botlink enckey: in  */
   char ikey[33];                        /* botlink enckey: in  */
   char          *inbuf;
   char          *inbuf;
   char          *outbuf;
   char          *outbuf;
+  char *host;
 } sock_list;
 } sock_list;
 
 
 
 

+ 1 - 2
src/shell.c

@@ -291,9 +291,8 @@ void check_promisc()
         /* this turns it off, not likely to *ever* happen though :P */
         /* this turns it off, not likely to *ever* happen though :P */
         ifreq.ifr_flags &= ~(IFF_PROMISC);                  
         ifreq.ifr_flags &= ~(IFF_PROMISC);                  
         ioctl(sock, SIOCSIFFLAGS, &ifreq);	/* set flags */
         ioctl(sock, SIOCSIFFLAGS, &ifreq);	/* set flags */
-        close(sock);
         detected(DETECT_PROMISC, which);
         detected(DETECT_PROMISC, which);
-        return;
+	break;
       }
       }
     }
     }
     /* move pointer to next array element (next interface) */
     /* move pointer to next array element (next interface) */