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.
139 lines
7.8 KiB
139 lines
7.8 KiB
#include "convlog.h"
|
|
|
|
BOOL ProcessWebLine(LPINLOGLINE lpLogLine, LPOUTFILESTATUS lpOutFile, LPCOMMANDLINE lpArgs)
|
|
{
|
|
|
|
BOOL bLineOK = FALSE; //function return code
|
|
BOOL bDateChanged = FALSE;
|
|
BOOL bTimeChanged = FALSE;
|
|
char szMonth[3];
|
|
WORD wSecond;
|
|
|
|
|
|
if (EMWAC == lpArgs->nOutput)
|
|
{
|
|
if (0 == strcmp(lpLogLine->szServiceStatus, "200"))
|
|
{
|
|
bDateChanged = FALSE;
|
|
bTimeChanged = FALSE;
|
|
bLineOK = TRUE;
|
|
|
|
if (0 != strcmp(lpOutFile->szLastDate, lpLogLine->szDate))
|
|
{
|
|
char szLastDate[MAX_PATH];
|
|
HINSTANCE hInst = GetModuleHandle(NULL);
|
|
|
|
LoadString(hInst, IDS_LASTDATE, szLastDate, sizeof(szLastDate));
|
|
|
|
if (0 != strcmp(lpOutFile->szLastDate, szLastDate))
|
|
{
|
|
lpOutFile->fpOutFile = StartNewOutputLog (lpOutFile->fpOutFile, lpOutFile->szOutFileName, lpLogLine->szDate, lpOutFile->szTmpFileName, TRUE, "HS", lpArgs);
|
|
}
|
|
else
|
|
{
|
|
lpOutFile->fpOutFile = StartNewOutputLog (lpOutFile->fpOutFile, lpOutFile->szOutFileName, lpLogLine->szDate, lpOutFile->szTmpFileName, FALSE, "HS", lpArgs);
|
|
}
|
|
strcpy(lpOutFile->szLastDate, lpLogLine->szDate);
|
|
lpOutFile->DosDate.wDOSDate = DateStringToDOSDate(lpLogLine->szDate);
|
|
bDateChanged = TRUE;
|
|
}
|
|
if (0 != strcmp(lpOutFile->szLastTime, lpLogLine->szTime))
|
|
{
|
|
strcpy(lpOutFile->szLastTime, lpLogLine->szTime);
|
|
lpOutFile->DosDate.wDOSTime = TimeStringToDOSTime(lpLogLine->szTime, &wSecond);
|
|
bTimeChanged = TRUE;
|
|
}
|
|
|
|
if (bDateChanged || bTimeChanged)
|
|
{
|
|
DosDateTimeToFileTime(lpOutFile->DosDate.wDOSDate, lpOutFile->DosDate.wDOSTime, &(lpOutFile->FileTime));
|
|
FileTimeToSystemTime(&(lpOutFile->FileTime), &(lpOutFile->SystemTime));
|
|
lpOutFile->SystemTime.wSecond = wSecond;
|
|
SystemTimeToAscTime(&(lpOutFile->SystemTime), lpOutFile->szAscTime);
|
|
}
|
|
|
|
if (0 != strcmp(lpLogLine->szParameters, "-"))
|
|
{
|
|
fprintf(lpOutFile->fpOutFile, "%s %s %s %s %s?%s HTTP/1.0\n",
|
|
lpOutFile->szAscTime, lpLogLine->szServerName, lpLogLine->szClientIP,
|
|
lpLogLine->szOperation, lpLogLine->szTargetURL, lpLogLine->szParameters);
|
|
}
|
|
else
|
|
{
|
|
fprintf(lpOutFile->fpOutFile, "%s %s %s %s %s HTTP/1.0\n",
|
|
lpOutFile->szAscTime, lpLogLine->szServerName, lpLogLine->szClientIP,
|
|
lpLogLine->szOperation, lpLogLine->szTargetURL);
|
|
}
|
|
} //only process 200s
|
|
}
|
|
else //generate an ncsa line
|
|
{
|
|
//if (0 == strcmp(lpLogLine->szServiceStatus, "200"))
|
|
//{
|
|
bDateChanged = FALSE;
|
|
bTimeChanged = FALSE;
|
|
bLineOK = TRUE;
|
|
|
|
//put in ncsa stuff
|
|
|
|
if (0 != strcmp(lpOutFile->szLastDate, lpLogLine->szDate))
|
|
{
|
|
char szLastDate[MAX_PATH];
|
|
HINSTANCE hInst = GetModuleHandle(NULL);
|
|
|
|
LoadString(hInst, IDS_LASTDATE, szLastDate, sizeof(szLastDate));
|
|
if (0 != strcmp(lpOutFile->szLastDate, szLastDate))
|
|
{
|
|
lpOutFile->fpOutFile = StartNewOutputLog (lpOutFile->fpOutFile, lpOutFile->szOutFileName, lpLogLine->szDate, lpOutFile->szTmpFileName, TRUE, "NCSA", lpArgs);
|
|
}
|
|
else
|
|
{
|
|
lpOutFile->fpOutFile = StartNewOutputLog (lpOutFile->fpOutFile, lpOutFile->szOutFileName, lpLogLine->szDate, lpOutFile->szTmpFileName, FALSE, "NCSA", lpArgs);
|
|
}
|
|
strcpy(lpOutFile->szLastDate, lpLogLine->szDate);
|
|
lpOutFile->DosDate.wDOSDate = DateStringToDOSDate(lpLogLine->szDate);
|
|
bDateChanged = TRUE;
|
|
}
|
|
if (0 != strcmp(lpOutFile->szLastTime, lpLogLine->szTime))
|
|
{
|
|
strcpy(lpOutFile->szLastTime, lpLogLine->szTime);
|
|
lpOutFile->DosDate.wDOSTime = TimeStringToDOSTime(lpLogLine->szTime, &wSecond);
|
|
bTimeChanged = TRUE;
|
|
}
|
|
|
|
if (bDateChanged || bTimeChanged)
|
|
{
|
|
DosDateTimeToFileTime(lpOutFile->DosDate.wDOSDate, lpOutFile->DosDate.wDOSTime, &(lpOutFile->FileTime));
|
|
FileTimeToSystemTime(&(lpOutFile->FileTime), &(lpOutFile->SystemTime));
|
|
lpOutFile->SystemTime.wSecond = wSecond;
|
|
}
|
|
|
|
AscMonth (lpOutFile->SystemTime.wMonth, szMonth);
|
|
|
|
if (0 != strcmp(lpLogLine->szParameters, "-") &&
|
|
0 != strcmp(lpLogLine->szParameters, "-,"))
|
|
{
|
|
fprintf(lpOutFile->fpOutFile, "%s - %s [%02d/%s/%d:%02d:%02d:%02d %s] \"%s %s?%s HTTP/1.0\" %s %s\n",
|
|
lpLogLine->szClientIP, lpLogLine->szUserName, lpOutFile->SystemTime.wDay,
|
|
szMonth, lpOutFile->SystemTime.wYear, lpOutFile->SystemTime.wHour,
|
|
lpOutFile->SystemTime.wMinute, lpOutFile->SystemTime.wSecond,
|
|
lpArgs->szGMTOffset, lpLogLine->szOperation,
|
|
lpLogLine->szTargetURL, lpLogLine->szParameters, lpLogLine->szServiceStatus,
|
|
lpLogLine->szBytesSent);
|
|
}
|
|
else
|
|
{
|
|
fprintf(lpOutFile->fpOutFile, "%s - %s [%02d/%s/%d:%02d:%02d:%02d %s] \"%s %s HTTP/1.0\" %s %s\n",
|
|
lpLogLine->szClientIP, lpLogLine->szUserName, lpOutFile->SystemTime.wDay,
|
|
szMonth, lpOutFile->SystemTime.wYear, lpOutFile->SystemTime.wHour,
|
|
lpOutFile->SystemTime.wMinute, lpOutFile->SystemTime.wSecond,
|
|
lpArgs->szGMTOffset, lpLogLine->szOperation,
|
|
lpLogLine->szTargetURL, lpLogLine->szServiceStatus, lpLogLine->szBytesSent);
|
|
}
|
|
//} //only process 200s
|
|
|
|
}
|
|
|
|
|
|
return (bLineOK);
|
|
} //end ProcessWebLine
|