]> git.ipfire.org Git - thirdparty/sarg.git/blobdiff - useragent.c
Add support to decompress xz files
[thirdparty/sarg.git] / useragent.c
index 11934204afd0a7d1a43a6cc4ff46df007a986067..c95c2fdf54673a0ea19ef246324f7404d2812fae 100644 (file)
@@ -71,9 +71,13 @@ FILE *UserAgent_Open(void)
  * \param User The user name.
  * \param Agent The user agent string.
  */
-void UserAgent_Write(FILE *fp,const char *Ip,const char *User,const char *Agent)
+void UserAgent_Write(FILE *fp,const struct tm *Time,const char *Ip,const char *User,const char *Agent)
 {
        if (fp) {
+               if (useragent_count==0 || compare_date(&UserAgentStartDate,Time)>0)
+                       memcpy(&UserAgentStartDate,Time,sizeof(UserAgentStartDate));
+               if (useragent_count==0 || compare_date(&UserAgentEndDate,Time)<0)
+                       memcpy(&UserAgentEndDate,Time,sizeof(UserAgentEndDate));
                fprintf(fp,"%s\t%s\t%s\n",Ip,Agent,User);
                useragent_count++;
        }
@@ -150,10 +154,6 @@ void UserAgent_Readlog(void)
                        logtime.tm_year=year-1900;
                        logtime.tm_mon=month-1;
                        logtime.tm_mday=day;
-                       if (totregsl==1 || compare_date(&UserAgentStartDate,&logtime)>0)
-                               memcpy(&UserAgentStartDate,&logtime,sizeof(logtime));
-                       if (compare_date(&UserAgentEndDate,&logtime)<0)
-                               memcpy(&UserAgentEndDate,&logtime,sizeof(logtime));
                        if (getword_skip(MAXLEN,&gwarea,'"')<0 || getword(agent,sizeof(agent),&gwarea,'"')<0) {
                                debuga(__FILE__,__LINE__,_("Invalid useragent in file \"%s\"\n"),FileName);
                                exit(EXIT_FAILURE);
@@ -172,7 +172,7 @@ void UserAgent_Readlog(void)
                                strcpy(user,ip);
                        }
 
-                       UserAgent_Write(fp_ou,ip,user,agent);
+                       UserAgent_Write(fp_ou,&logtime,ip,user,agent);
                }
 
                if (FileObject_Close(fp_log)==EOF) {