/* snfmultidll.h // Copyright (C) 2007-2009 ARM Research Labs, LLC // // SNFMulti DLL header. */ #ifndef snfmultidll_included #define snfmultidll_included const int snf_SUCCESS = 0; const int snf_ERROR_CMD_LINE = 65; const int snf_ERROR_LOG_FILE = 66; const int snf_ERROR_RULE_FILE = 67; const int snf_ERROR_RULE_DATA = 68; const int snf_ERROR_RULE_AUTH = 73; const int snf_ERROR_MSG_FILE = 69; const int snf_ERROR_ALLOCATION = 70; const int snf_ERROR_BAD_MATRIX = 71; const int snf_ERROR_MAX_EVALS = 72; const int snf_ERROR_UNKNOWN = 99; const int snf_ERROR_NO_HANDLE = -1; const int snf_ERROR_SCAN_FAILED = -2; const int snf_ERROR_EXCEPTION = -3; /* enum snfIPRange { // IP action ranges Unknown, // Unknown - not defined. White, // This is a good guy. Normal, // Benefit of the doubt. New, // It is new to us. Caution, // This is suspicious. Black, // This is bad. Truncate // Don't even bother looking. }; */ /* Map these C constants to the enum snfIPRange */ const int snf_IP_Unknown = 0; const int snf_IP_White = 1; const int snf_IP_Normal = 2; const int snf_IP_New = 3; const int snf_IP_Caution = 4; const int snf_IP_Black = 5; const int snf_IP_Truncate = 6; /* IP Reputation Figure Constants */ const double snf_ReputationMehResult = 0.0; /* Don't know or don't care */ const double snf_ReputationBadResult = 1.0; /* IP is pure evil */ const double snf_ReputationGoodResult = -1.0; /* IP is pure good */ /* This is the API to the SNFMulti DLL */ #define IMP __declspec(dllimport) extern "C" { IMP int setThrottle(int Threads); /* Set a scan thread limit */ IMP int startupSNF(char* Path); /* Start SNF with configuration. */ IMP int startupSNFAuthenticated(char* Path, char* Lic, char* Auth); /* Start SNF with conf & auth. */ IMP int shutdownSNF(); /* Shutdown SNF. */ IMP int testIP(unsigned long int IPToCheck); /* Test the IP for a GBUdb range. */ IMP double getIPReputation(unsigned long int IPToCheck); /* Get reputation figure for IP. */ IMP int scanBuffer(unsigned char* Bfr, int Length, char* Name, int Setup); /* Scan msgBuffer, name, setup time. */ IMP int scanFile(char* FilePath, int Setup); /* Scan msgFile, setup time. */ IMP int getScanXHeaders(int ScanHandle, char** Bfr, int* Length); /* Get result & XHeaders. */ IMP int getScanXMLLog(int ScanHandle, char** Bfr, int* Length); /* Get result & XML Log. */ IMP int getScanClassicLog(int ScanHandle, char** Bfr, int* Length); /* Get result & Classic Log. */ IMP int getScanResult(int ScanHandle); /* Get just the scan result. */ IMP int closeScan(int ScanHandle); /* Close the scan result. */ } #endif