diff -ru6 ../bopm-3.1.0.orig/src/config-lexer.l ./src/config-lexer.l
--- ../bopm-3.1.0.orig/src/config-lexer.l	Fri Jun 20 01:07:57 2003
+++ ./src/config-lexer.l	Fri Jun 27 22:17:01 2003
@@ -127,12 +127,13 @@
 SCANNER                 { return SCANNER;      }
 SENDMAIL                { return SENDMAIL;     }
 SERVER                  { return SERVER;       }
 TARGET_IP               { return TARGET_IP;    }
 TARGET_PORT             { return TARGET_PORT;  }
 TARGET_STRING           { return TARGET_STRING;}
+TARGET_URL              { return TARGET_URL;   }
 TIMEOUT                 { return TIMEOUT;      }
 TYPE                    { return TYPE;         }
 USER                    { return USER;         }
 USERNAME                { return USERNAME;     }
 VHOST                   { return VHOST;        }
 
@@ -141,12 +142,17 @@
                           yylval.number = OPM_TYPE_HTTP;
                           return PROTOCOLTYPE;
                         }
 
 HTTPPOST                {
                           yylval.number = OPM_TYPE_HTTPPOST;
+                          return PROTOCOLTYPE;
+                        }
+
+HTTPGET                 {
+                          yylval.number = OPM_TYPE_HTTPGET;
                           return PROTOCOLTYPE;
                         }
 
 SOCKS4                  {
                           yylval.number = OPM_TYPE_SOCKS4;
                           return PROTOCOLTYPE;
diff -ru6 ../bopm-3.1.0.orig/src/config-parser.y ./src/config-parser.y
--- ../bopm-3.1.0.orig/src/config-parser.y	Sun Jun 22 15:19:39 2003
+++ ./src/config-parser.y	Fri Jun 27 22:17:01 2003
@@ -69,12 +69,13 @@
 %token SCANNER
 %token SENDMAIL
 %token SERVER
 %token TARGET_IP
 %token TARGET_PORT
 %token TARGET_STRING
+%token TARGET_URL
 %token TIMEOUT
 %token TYPE
 %token USERNAME
 %token USER
 %token VHOST
 
@@ -362,24 +363,26 @@
 	   olditem = ScannerItemList->tail->data;
 
 		item->vhost = DupString(olditem->vhost);
 		item->fd = olditem->fd;
 		item->target_ip = DupString(olditem->target_ip);
 		item->target_port = olditem->target_port;
+		item->target_url = DupString(olditem->target_url);
 		item->timeout = olditem->timeout;
 		item->max_read = olditem->max_read;
 
 		item->target_string = olditem->target_string;
 		item->target_string_created = 0;
 	}
 	else
 	{
 	   item->vhost = DupString("0.0.0.0");
       item->fd = 512;
       item->target_ip = DupString("127.0.0.1");
       item->target_port = 6667;
+      item->target_url = DupString("http://localhost/bopmcheck.txt");
       item->timeout = 30;
       item->max_read = 4096;
 		
 		item->target_string = list_create();
 		item->target_string_created = 1;
 	}
@@ -398,12 +401,13 @@
 
 scanner_item: scanner_name          |
               scanner_vhost         |
               scanner_fd            |
               scanner_target_ip     |
               scanner_target_port   |
+              scanner_target_url    |
               scanner_target_string |
               scanner_protocol      |
               scanner_timeout       |
               scanner_max_read      |
               error;
 
@@ -423,12 +427,19 @@
 
 scanner_target_ip: TARGET_IP '=' STRING ';'
 {
    struct ScannerConf *item = (struct ScannerConf *) tmp;
    MyFree(item->target_ip);
    item->target_ip = DupString($3);
+};
+
+scanner_target_url: TARGET_URL '=' STRING ';'
+{
+   struct ScannerConf *item = (struct ScannerConf *) tmp;
+   MyFree(item->target_url);
+   item->target_url = DupString($3);
 };
 
 scanner_target_string: TARGET_STRING '=' STRING ';'
 {
    struct ScannerConf *item = (struct ScannerConf *) tmp;
 
diff -ru6 ../bopm-3.1.0.orig/src/config.h ./src/config.h
--- ../bopm-3.1.0.orig/src/config.h	Sat Jun 21 02:57:28 2003
+++ ./src/config.h	Fri Jun 27 22:17:01 2003
@@ -69,12 +69,13 @@
    char   *vhost;
 
    int     fd;
 
    char   *target_ip;
    int     target_port;
+   char   *target_url;
 
    int     timeout;
    int     max_read;
 
    list_t *target_string;
 	int     target_string_created;
diff -ru6 ../bopm-3.1.0.orig/src/libopm/src/config.c ./src/libopm/src/config.c
--- ../bopm-3.1.0.orig/src/libopm/src/config.c	Fri Jun 20 06:18:44 2003
+++ ./src/libopm/src/config.c	Fri Jun 27 22:18:04 2003
@@ -43,12 +43,13 @@
    {OPM_CONFIG_DNSBL_HOST,     OPM_TYPE_STRING},
    {OPM_CONFIG_TARGET_STRING,  OPM_TYPE_STRINGLIST},
    {OPM_CONFIG_SCAN_IP,        OPM_TYPE_STRING},
    {OPM_CONFIG_SCAN_PORT,      OPM_TYPE_INT},
    {OPM_CONFIG_MAX_READ,       OPM_TYPE_INT},
    {OPM_CONFIG_TIMEOUT,        OPM_TYPE_INT},
+   {OPM_CONFIG_SCAN_URL,       OPM_TYPE_STRING},
 };
 
 
 /* config_create
  *
  *    Create an OPM_CONFIG_T struct, set default values and return it
diff -ru6 ../bopm-3.1.0.orig/src/libopm/src/libopm.c ./src/libopm/src/libopm.c
--- ../bopm-3.1.0.orig/src/libopm/src/libopm.c	Sun Jun 22 15:19:40 2003
+++ ./src/libopm/src/libopm.c	Fri Jun 27 22:18:04 2003
@@ -99,13 +99,14 @@
 static OPM_PROTOCOL_T OPM_PROTOCOLS[] = {
     {OPM_TYPE_HTTP,               libopm_proxy_http_write,     NULL},
     {OPM_TYPE_SOCKS4,             libopm_proxy_socks4_write,   NULL},
     {OPM_TYPE_SOCKS5,             libopm_proxy_socks5_write,   NULL},
     {OPM_TYPE_ROUTER,             libopm_proxy_router_write,   NULL},
     {OPM_TYPE_WINGATE,            libopm_proxy_wingate_write,  NULL},
-    {OPM_TYPE_HTTPPOST,           libopm_proxy_httppost_write, NULL}
+    {OPM_TYPE_HTTPPOST,           libopm_proxy_httppost_write, NULL},
+    {OPM_TYPE_HTTPGET,            libopm_proxy_httpget_write,  NULL}
 };
 
 
 
 
 /* opm_create
Only in ./src/libopm/src: libopm.c.orig
diff -ru6 ../bopm-3.1.0.orig/src/libopm/src/opm_types.h ./src/libopm/src/opm_types.h
--- ../bopm-3.1.0.orig/src/libopm/src/opm_types.h	Tue Dec 10 01:44:57 2002
+++ ./src/libopm/src/opm_types.h	Fri Jun 27 22:18:04 2003
@@ -7,12 +7,13 @@
 #define OPM_CONFIG_DNSBL_HOST    2
 #define OPM_CONFIG_TARGET_STRING 3
 #define OPM_CONFIG_SCAN_IP       4
 #define OPM_CONFIG_SCAN_PORT     5
 #define OPM_CONFIG_MAX_READ      6
 #define OPM_CONFIG_TIMEOUT       7
+#define OPM_CONFIG_SCAN_URL      8
 
 /* Configuration Variable Types */
 #define OPM_TYPE_INT             1
 #define OPM_TYPE_STRING          2
 #define OPM_TYPE_ADDRESS         3
 #define OPM_TYPE_STRINGLIST      4
@@ -21,12 +22,13 @@
 #define OPM_TYPE_HTTP            1
 #define OPM_TYPE_SOCKS4          2
 #define OPM_TYPE_SOCKS5          3
 #define OPM_TYPE_WINGATE         4
 #define OPM_TYPE_ROUTER          5
 #define OPM_TYPE_HTTPPOST        6
+#define OPM_TYPE_HTTPGET         7
 
 /* States */
 #define OPM_STATE_UNESTABLISHED  1
 #define OPM_STATE_ESTABLISHED    2
 #define OPM_STATE_NEGSENT        3
 #define OPM_STATE_CLOSED         4
diff -ru6 ../bopm-3.1.0.orig/src/libopm/src/proxy.c ./src/libopm/src/proxy.c
--- ../bopm-3.1.0.orig/src/libopm/src/proxy.c	Sat Jun 21 06:27:32 2003
+++ ./src/libopm/src/proxy.c	Fri Jun 27 22:18:04 2003
@@ -238,6 +238,25 @@
             scan_ip, scan_port);
 
    send(conn->fd, SENDBUF, (unsigned int)len, 0);
 
    return OPM_SUCCESS;
 }
+
+/*
+ * HTTP GET Scanning
+ *
+ */
+
+int libopm_proxy_httpget_write(OPM_T *scanner, OPM_SCAN_T *scan, OPM_CONNECTION_T *conn)
+{
+    int len;
+    char *scan_url;
+
+    scan_url = (char *) libopm_config(scanner->config, OPM_CONFIG_SCAN_URL);
+
+    len = snprintf(SENDBUF, SENDBUFLEN, "GET %s HTTP/1.0\r\n\r\n",
+            scan_url);
+
+    send(conn->fd, SENDBUF, len, 0);
+    return(1);
+}
Only in ./src/libopm/src: proxy.c.orig
diff -ru6 ../bopm-3.1.0.orig/src/libopm/src/proxy.h ./src/libopm/src/proxy.h
--- ../bopm-3.1.0.orig/src/libopm/src/proxy.h	Thu Nov  7 02:37:33 2002
+++ ./src/libopm/src/proxy.h	Fri Jun 27 22:18:04 2003
@@ -6,9 +6,9 @@
 int libopm_proxy_http_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
 int libopm_proxy_socks4_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
 int libopm_proxy_socks5_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
 int libopm_proxy_wingate_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
 int libopm_proxy_router_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
 int libopm_proxy_httppost_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
-
+int libopm_proxy_httpget_write(OPM_T *, OPM_SCAN_T *, OPM_CONNECTION_T *);
 
 #endif /* PROXY_H */
diff -ru6 ../bopm-3.1.0.orig/src/scan.c ./src/scan.c
--- ../bopm-3.1.0.orig/src/scan.c	Sun Jun 22 19:05:30 2003
+++ ./src/scan.c	Fri Jun 27 22:17:27 2003
@@ -175,12 +175,13 @@
    static char *undef = "undefined";
 
    static struct protocol_assoc protocols[] =
       {
          { OPM_TYPE_HTTP,     "HTTP"     },
          { OPM_TYPE_HTTPPOST, "HTTPPOST" },
+         { OPM_TYPE_HTTPGET,  "HTTPGET"  },
          { OPM_TYPE_SOCKS4,   "SOCKS4"   },
          { OPM_TYPE_SOCKS5,   "SOCKS5"   },
          { OPM_TYPE_WINGATE,  "WINGATE"  },
          { OPM_TYPE_ROUTER,   "ROUTER"   }
       };
 
@@ -235,12 +236,13 @@
       scs->masks = list_create();
 
       /* Setup configuration */
       opm_config(scs->scanner, OPM_CONFIG_FD_LIMIT, &(sc->fd));
       opm_config(scs->scanner, OPM_CONFIG_SCAN_IP, sc->target_ip);
       opm_config(scs->scanner, OPM_CONFIG_SCAN_PORT, &(sc->target_port));
+      opm_config(scs->scanner, OPM_CONFIG_SCAN_URL, sc->target_url);
       opm_config(scs->scanner, OPM_CONFIG_TIMEOUT, &(sc->timeout));
       opm_config(scs->scanner, OPM_CONFIG_MAX_READ, &(sc->max_read));
       opm_config(scs->scanner, OPM_CONFIG_BIND_IP, sc->vhost);
 
       /* add target strings */
       LIST_FOREACH(p2, sc->target_string->head)
diff -ru6 ../bopm-3.1.0.orig/src/stats.c ./src/stats.c
--- ../bopm-3.1.0.orig/src/stats.c	Sat Jun 21 16:33:11 2003
+++ ./src/stats.c	Fri Jun 27 22:17:01 2003
@@ -74,12 +74,13 @@
 static unsigned int STATS_DNSBLSENT;
 
 static struct StatsHash STATS_PROXIES[] =
    {
       {OPM_TYPE_HTTP,     0, "HTTP"     },
       {OPM_TYPE_HTTPPOST, 0, "HTTPPOST" },
+      {OPM_TYPE_HTTPGET,  0, "HTTPGET"  },
       {OPM_TYPE_SOCKS4,   0, "SOCKS4"   },
       {OPM_TYPE_SOCKS5,   0, "SOCKS5"   },
       {OPM_TYPE_ROUTER,   0, "ROUTER"   },
       {OPM_TYPE_WINGATE,  0, "WINGATE"  }
    };
 
