diff -uN havp-0.80/havp/scanners/generaldisti.cpp genHAVP/havp/scanners/generaldisti.cpp
--- havp-0.80/havp/scanners/generaldisti.cpp	1970-01-01 02:00:00.000000000 +0200
+++ genHAVP/havp/scanners/generaldisti.cpp	2006-10-03 17:54:48.000000000 +0200
@@ -0,0 +1,77 @@
+/***************************************************************************
+                          avastscanner.cpp  -  description
+                             -------------------
+    begin                : Sa Feb 12 2005
+    copyright            : (C) 2005 by Christian Hilgers
+    email                : christian@hilgers.ag
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "generaldisti.h"
+const int MAX_MSG_LEN = 256;
+typedef struct sockaddr SA;
+
+string GeneralDisti::Scan( const char *FileName )
+{
+//    fd_set rset;
+//    FD_ZERO(&rset);
+
+    sendto(m_sockfd, FileName, strlen(FileName), 0, (SA *) &m_servaddr, sizeof(m_servaddr)); 
+//    FD_SET(m_sockfd, &rset);
+//    timeval tm; tm.tv_sec = 3; tm.tv_usec = 0;
+
+//    if (select(m_sockfd, &rset, NULL, NULL, &tm) < 1) // Timeout or Error
+//    {
+//       LogFile::ErrorMessage("General Disti Timeout on: %s\n", FileName);
+//        return "2Timeout";
+//    }
+
+    char reply[MAX_MSG_LEN] = "";
+    int n = recvfrom(m_sockfd, reply, MAX_MSG_LEN, 0, NULL, NULL);
+    reply[n] = '\0';
+
+    if (!strcmp(reply, "OK"))
+    {
+        return "0Clean";
+    }
+    else if (!strcmp(reply, "Block"))
+    {
+        return "1Malicious content";
+    }
+    else
+    {
+        return "2Unknown disti error";
+    }
+
+}
+
+//Constructor
+GeneralDisti::GeneralDisti()
+{
+    ScannerName = "General Distributor Scanner";
+    ScannerNameShort = "Disti";
+
+
+    m_sockfd = socket(AF_LOCAL, SOCK_DGRAM, 0); 
+    bzero(&m_cliaddr, sizeof(m_cliaddr));                 // bind an address for us 
+    m_cliaddr.sun_family = AF_LOCAL; 
+    
+    char* filename = tmpnam(NULL);
+    strcpy(m_cliaddr.sun_path, filename);         // gives warnings could nt find areplacement
+    bind(m_sockfd, (SA *) &m_cliaddr, sizeof(m_cliaddr)); 
+    
+    bzero(&m_servaddr, sizeof(m_servaddr));               // fill in server's address 
+    m_servaddr.sun_family = AF_LOCAL; 
+    
+    strcpy(m_servaddr.sun_path, Params::GetConfigString("DISTISOCKET").c_str()); 
+}
+
+
diff -uN havp-0.80/havp/scanners/generaldisti.h genHAVP/havp/scanners/generaldisti.h
--- havp-0.80/havp/scanners/generaldisti.h	1970-01-01 02:00:00.000000000 +0200
+++ genHAVP/havp/scanners/generaldisti.h	2006-10-03 15:55:56.000000000 +0200
@@ -0,0 +1,36 @@
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef GENERALDISTI_H
+#define GENERALDISTI_H
+
+#include "../genericscanner.h"
+
+class GeneralDisti : public GenericScanner 
+{
+public:
+    
+    bool InitDatabase() { return true; }
+    bool ReloadDatabase() { return false; }
+    void FreeDatabase() {}
+    string Scan( const char *FileName );
+
+    GeneralDisti();
+    ~GeneralDisti() {}
+
+private:
+    
+    string ScannerCmd;   
+    int    m_sockfd; 
+
+    struct sockaddr_un m_cliaddr;
+    struct sockaddr_un m_servaddr; 
+};
+
+#endif
--- havp-0.80/havp/scannerhandler.cpp	2006-05-09 10:52:13.000000000 +0300
+++ genHAVP/havp/scannerhandler.cpp	2006-10-04 08:53:27.000000000 +0200
@@ -35,6 +35,7 @@
 #include "scanners/clamdscanner.h"
 #include "scanners/sophiescanner.h"
 #include "scanners/avastscanner.h"
+#include "scanners/generaldisti.h"
 
 #include <sys/types.h>
 #include <signal.h>
@@ -132,6 +133,11 @@
         }
     }
 
+    if (Params::GetConfigBool("ENABLEGENDISTI"))
+    {
+        VirusScanner.push_back(new GeneralDisti);
+    }
+
     LogFile::ErrorMessage("--- All scanners initialized\n");
 
     return true;
--- havp-0.80/havp/default.h.in	2006-05-24 15:41:14.000000000 +0300
+++ genHAVP/havp/default.h.in	2006-10-04 12:33:36.000000000 +0200
@@ -47,7 +47,8 @@
  "ENABLENOD32","NOD32SOCKET", \
  "ENABLECLAMD","CLAMDSOCKET","CLAMDSERVER","CLAMDPORT", \
  "ENABLESOPHIE","SOPHIESOCKET", \
- "ENABLEAVAST","AVASTSOCKET","AVASTSERVER","AVASTPORT"
+ "ENABLEAVAST","AVASTSOCKET","AVASTSERVER","AVASTPORT", \
+ "DISTISOCKET", "ENABLEGENDISTI"
 //SCANNERS
 
 #define CONFIGFILE "/usr/local/etc/havp/havp.config"
--- havp-0.80/havp/params.cpp	2006-10-04 12:39:42.000000000 +0200
+++ genHAVP/havp/params.cpp	2006-10-04 08:53:18.000000000 +0200
@@ -70,37 +70,39 @@
     SetConfig("MAXDOWNLOADSIZE","0");
     SetConfig("SCANNERTIMEOUT",	"10");
     SetConfig("ENABLECLAMLIB","false");
-        SetConfig("CLAMDBDIR","");
-        SetConfig("CLAMBLOCKMAX","false");
-        SetConfig("CLAMBLOCKENCRYPTED","false");
-        SetConfig("CLAMMAXFILES","1000");
-        SetConfig("CLAMMAXFILESIZE","10");
-        SetConfig("CLAMMAXRECURSION","8");
-        SetConfig("CLAMMAXRATIO","250");
+    SetConfig("CLAMDBDIR","");
+    SetConfig("CLAMBLOCKMAX","false");
+    SetConfig("CLAMBLOCKENCRYPTED","false");
+    SetConfig("CLAMMAXFILES","1000");
+    SetConfig("CLAMMAXFILESIZE","10");
+    SetConfig("CLAMMAXRECURSION","8");
+    SetConfig("CLAMMAXRATIO","250");
     SetConfig("ENABLECLAMD","false");
 	SetConfig("CLAMDSOCKET","/tmp/clamd");
 	SetConfig("CLAMDSERVER","");
 	SetConfig("CLAMDPORT","3310");
     SetConfig("ENABLEAVG","false");
-        SetConfig("AVGSERVER","127.0.0.1");
-        SetConfig("AVGPORT","55555");
+    SetConfig("AVGSERVER","127.0.0.1");
+    SetConfig("AVGPORT","55555");
     SetConfig("ENABLEAVESERVER","false");
-        SetConfig("AVESOCKET","/var/run/aveserver");
+    SetConfig("AVESOCKET","/var/run/aveserver");
     SetConfig("ENABLEFPROT","false");
-        SetConfig("FPROTPORT","10200");
-        SetConfig("FPROTSERVER","127.0.0.1");
+    SetConfig("FPROTPORT","10200");
+    SetConfig("FPROTSERVER","127.0.0.1");
     SetConfig("ENABLENOD32","false");
-        SetConfig("NOD32SOCKET","/tmp/nod32d.sock");
+    SetConfig("NOD32SOCKET","/tmp/nod32d.sock");
     SetConfig("ENABLETROPHIE","false");
-        SetConfig("TROPHIEMAXFILES","1000");
-        SetConfig("TROPHIEMAXFILESIZE","10");
-        SetConfig("TROPHIEMAXRATIO","250");
+    SetConfig("TROPHIEMAXFILES","1000");
+    SetConfig("TROPHIEMAXFILESIZE","10");
+    SetConfig("TROPHIEMAXRATIO","250");
     SetConfig("ENABLESOPHIE","false");
 	SetConfig("SOPHIESOCKET","/var/run/sophie");
     SetConfig("ENABLEAVAST","false");
-        SetConfig("AVASTSOCKET","/var/run/avast4/local.sock");
-        SetConfig("AVASTSERVER","");
-        SetConfig("AVASTPORT","5036");
+    SetConfig("AVASTSOCKET","/var/run/avast4/local.sock");
+    SetConfig("AVASTSERVER","");
+    SetConfig("AVASTPORT","5036");
+    SetConfig("DISTISOCKET","/tmp/disti.sock");
+    SetConfig("ENABLEGENDISTI","false");
 }
 
 bool Params::ReadConfig( string file )
--- havp-0.80/havp/Makefile.in	2006-04-23 15:31:11.000000000 +0300
+++ genHAVP/havp/Makefile.in	2006-10-03 13:14:31.000000000 +0200
@@ -13,7 +13,7 @@
           httphandler.o params.o sockethandler.o connectiontohttp.o havp.o proxyhandler.o \
           utils.o whitelist.o scanners/avgscanner.o scanners/f-protscanner.o \
           scanners/kasperskyscanner.o scanners/nod32scanner.o scanners/clamdscanner.o \
-          scanners/sophiescanner.o scanners/avastscanner.o @SCANNEROBJECT@
+          scanners/sophiescanner.o scanners/avastscanner.o scanners/generaldisti.o @SCANNEROBJECT@
 
 all: havp
 
