debuga(_("Not enough memory to read a log file\n"));
exit(EXIT_FAILURE);
}
-
+
for (iarq=0 ; iarq<NAccessLog ; iarq++) {
arq=AccessLog[iarq];
fflush (stdout);
OutputNonZero = REPORT_EVERY_X_LINES ;
}
-
+
/*
The following checks are retained here as I don't know to
what format they apply. They date back to pre 2.4 versions.
if (current_format) {
log_entry_status=current_format->ReadEntry(linebuf,&log_entry);
}
-
+
// find out what line format to use
if (log_entry_status==RLRC_Unknown) {
x=-1;
continue;
if (log_entry.DataSize<0) log_entry.DataSize=0;
-
+
if (log_entry.ElapsedTime<0) log_entry.ElapsedTime=0;
if (Filter->max_elapsed>0 && log_entry.ElapsedTime>Filter->max_elapsed) {
log_entry.ElapsedTime=0;
char end_hour[128];
char val2[40];
char val4[255];//val4 must not be bigger than arq_log without fixing the strcpy below
-
+
fclose(fp_log);
safe_strcpy(end_hour,tbuf2,sizeof(end_hour));
strftime(val2,sizeof(val2),"%d%m%Y",&period.start);
}
if(debug)
debuga(_("Sarg parsed log saved as %s\n"),arq_log);
- }
+ }
denied_close();
authfail_close();
int Hour;
int Minute;
int Second;
-
+
if (strncmp(Line,"*** SARG Log ***",16)==0) {
InSargLog=true;
return(RLRC_Ignore);
}
if (!InSargLog) return(RLRC_Unknown);
-
+
// get the date
Day=0;
while (isdigit(*Line)) Day=Day*10+(*Line++-'0');
Year=0;
while (isdigit(*Line)) Year=Year*10+(*Line++-'0');
if (*Line!='\t' || Year<1900 || Year>2200) return(RLRC_Unknown);
-
+
// get the time
++Line;
Hour=0;
Entry->User=++Line;
for (UserLen=0 ; *Line && *Line!='\t' ; UserLen++) Line++;
if (*Line!='\t' || UserLen==0) return(RLRC_Unknown);
-
+
// get IP address
Entry->Ip=++Line;
for (IpLen=0 ; *Line && *Line!='\t' ; IpLen++) Line++;
Entry->Url=++Line;
for (UrlLen=0 ; *Line && *Line!='\t' ; UrlLen++) Line++;
if (*Line!='\t' || UrlLen==0) return(RLRC_Unknown);
-
+
// get the number of transfered bytes.
Begin=++Line;
Entry->DataSize=0LL;
while (isdigit(*Line)) Entry->DataSize=Entry->DataSize*10+(*Line++-'0');
if (*Line!='\t' || Begin==Line) return(RLRC_Unknown);
-
+
// get the HTTP code.
Entry->HttpCode=++Line;
for (HttpCodeLen=0 ; *Line && *Line!='\t' ; HttpCodeLen++) Line++;
Entry->HttpCode[HttpCodeLen]='\0';
Entry->Url[UrlLen]='\0';
Entry->User[UserLen]='\0';
-
+
return(RLRC_NoError);
}