mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
4.8 KiB
137 lines
4.8 KiB
#if !defined CONVLOG_H
|
|
#define CONVLOG_H
|
|
|
|
#include <windows.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <io.h>
|
|
#include <winsock.h>
|
|
#include <strings.h>
|
|
|
|
#define CONVLOG_BASE (120)
|
|
#define NUM_SERVICES (4)
|
|
|
|
#define DAILY (CONVLOG_BASE + 0)
|
|
#define MONTHLY (CONVLOG_BASE + 1)
|
|
#define ONE_BIG_FILE (CONVLOG_BASE + 2)
|
|
|
|
#define EMWAC (CONVLOG_BASE + 3)
|
|
#define NCSA (CONVLOG_BASE + 4)
|
|
|
|
#define ILLEGAL_COMMAND_LINE (CONVLOG_BASE + 5)
|
|
#define COMMAND_LINE_OK (CONVLOG_BASE + 6)
|
|
#define OUT_DIR_NOT_OK (CONVLOG_BASE + 7)
|
|
|
|
#define NOFORMAT (CONVLOG_BASE + 8)
|
|
|
|
#define MAXWINSOCKVERSION 2
|
|
|
|
#define MAXASCIIIPLEN 16
|
|
|
|
#define ISWHITE( ch ) ((ch) == ' ' || (ch) == '\t' || (ch) == '\r')
|
|
|
|
#define MAXMACHINELEN 260
|
|
|
|
#define GREATEROF(p1,p2) ((p1)>(p2)) ? (p1) : (p2)
|
|
|
|
|
|
typedef struct _HASHENTRY {
|
|
ULONG uIPAddr;
|
|
ULONG NextPtr;
|
|
char szMachineName[MAXMACHINELEN];
|
|
} HASHENTRY, *PHASHENTRY;
|
|
|
|
|
|
typedef struct _COMMANDLINE
|
|
{
|
|
char szFileName[MAX_PATH];
|
|
int nInterval;
|
|
int nOutput;
|
|
ULONG ulCacheSize;
|
|
BOOL bProcessFTP;
|
|
BOOL bProcessWWW;
|
|
BOOL bProcessGopher;
|
|
BOOL bProcessGateway;
|
|
BOOL bCustomOut;
|
|
BOOL bNCSADNSConvert;
|
|
BOOL bUseMachineNames;
|
|
char szTemplateFile[MAX_PATH];
|
|
char szGMTOffset[6];
|
|
char szOutputDir[MAX_PATH];
|
|
char szTempFileDir[MAX_PATH];
|
|
} COMMANDLINE, *LPCOMMANDLINE;
|
|
|
|
typedef struct _INLOGLINE
|
|
{
|
|
LPSTR szClientIP; //client ip address
|
|
LPSTR szUserName; //client user name (not put in https log)
|
|
LPSTR szDate; //date string in format DD/MM/YY
|
|
LPSTR szTime; //time string in format HH:MM:SS 24 hour format
|
|
LPSTR szService; //Service name (not put in https log)
|
|
LPSTR szServerName; //netbios name of Server
|
|
LPSTR szServerIP; //Server ip address
|
|
LPSTR szProcTime; //time taken to process request (not put in https log)
|
|
LPSTR szBytesRec; //number of bytes received (not put in https log)
|
|
LPSTR szBytesSent; //number of bytes sent (not put in https log)
|
|
LPSTR szServiceStatus; //HTTP status code (not put in https log)
|
|
LPSTR szWin32Status; //win32 status code (not put in https log)
|
|
LPSTR szOperation; //one of GET, POST, or HEAD
|
|
LPSTR szTargetURL; //URL as requested by the client
|
|
LPSTR szUserAgent; //only logged (by W3SVC) if NewLog.dll installed
|
|
LPSTR szReferer; //only logged (by W3SVC) if NewLog.dll installed
|
|
LPSTR szParameters; //any parameters passed with the URL
|
|
} *LPINLOGLINE, INLOGLINE;
|
|
|
|
|
|
typedef struct _DOSDATE
|
|
{
|
|
WORD wDOSDate; //holds the DOS Date packed word
|
|
WORD wDOSTime; //holds teh DOS Time packed word
|
|
} *LPDOSDATE, DOSDATE;
|
|
|
|
typedef struct _OUTFILESTATUS
|
|
{
|
|
FILE *fpOutFile;
|
|
char szLastDate[10];
|
|
char szLastTime[10];
|
|
char szOutFileName[MAX_PATH];
|
|
char szTmpFileName[MAX_PATH];
|
|
SYSTEMTIME SystemTime;
|
|
FILETIME FileTime;
|
|
DOSDATE DosDate;
|
|
char szAscTime[25];
|
|
|
|
|
|
} OUTFILESTATUS, *LPOUTFILESTATUS;
|
|
|
|
|
|
char * FindComma (char *);
|
|
char * SkipWhite (char *);
|
|
BOOL GetLogLine (FILE *, char *, LPINLOGLINE, BOOL, BOOL);
|
|
WORD DateStringToDOSDate(char *);
|
|
//WORD TimeStringToDOSTime(char *);
|
|
WORD TimeStringToDOSTime(char *, LPWORD);
|
|
char * SystemTimeToAscTime(LPSYSTEMTIME, char *);
|
|
char * AscDay (WORD, char *);
|
|
char * AscMonth (WORD, char *);
|
|
FILE * StartNewOutputLog (FILE *, LPTSTR, char *, LPSTR, BOOL, char *, LPCOMMANDLINE);
|
|
void CombineFiles(LPTSTR, LPTSTR);
|
|
void Usage (char*);
|
|
int ParseArgs (int, char **, LPCOMMANDLINE);
|
|
char * FindChar (char *, char);
|
|
BOOL AsciiIPToBinaryIP( char *, UCHAR *);
|
|
VOID ProcessNoConvertLine(LPINLOGLINE, LPTSTR, LPOUTFILESTATUS, LPCOMMANDLINE, BOOL *);
|
|
BOOL ProcessWebLine(LPINLOGLINE, LPOUTFILESTATUS, LPCOMMANDLINE);
|
|
BOOL ProcessFTPLine(LPINLOGLINE, LPOUTFILESTATUS, LPCOMMANDLINE);
|
|
BOOL ProcessGopherLine(LPINLOGLINE, LPOUTFILESTATUS, LPCOMMANDLINE);
|
|
VOID printfids(DWORD ids,...);
|
|
VOID InitHashTable (ULONG);
|
|
ULONG GetHashEntry();
|
|
ULONG GetElementFromCache(ULONG uIPAddr);
|
|
VOID AddEntryToCache(ULONG uIPAddr, char *szMachineName);
|
|
char *GetMachineName(char *szClientIP);
|
|
VOID PrintCacheTotals();
|
|
|
|
|
|
#endif //CONVLOG_H
|