]> git.ipfire.org Git - thirdparty/sarg.git/commitdiff
Remove a message about the redirector log that can't be deleted
authorFrédéric Marchal <fmarchal@users.sourceforge.net>
Fri, 31 Aug 2012 19:46:41 +0000 (21:46 +0200)
committerFrédéric Marchal <fmarchal@users.sourceforge.net>
Fri, 31 Aug 2012 19:46:41 +0000 (21:46 +0200)
If no redirector log was provided, a message was displayed in debug mode to
inform the user about a temporary file that can't be deleted. That message
was unnecessary and misleading. It is now displayed only when appropriate.

redirector.c

index d52c05dd9d9ebbcd3760fbbca09886e344f6d407..80a67b482ea0469331293ee12714f19c97cb1ea8 100644 (file)
@@ -32,6 +32,8 @@ static int nfiles_done = 0;
 
 //! The number of invalid lines found in the redirector report.
 static int RedirectorErrors=0;
+//! The file containing the sorted entries.
+static char redirector_sorted[MAXLEN]="";
 
 static void parse_log(FILE *fp_ou,char *buf)
 {
@@ -285,7 +287,6 @@ void redirector_log(void)
        FILE *fp_ou = NULL, *fp_guard = NULL;
        char buf[MAXLEN];
        char guard_in[MAXLEN];
-       char guard_ou[MAXLEN];
        char logdir[MAXLEN];
        char user[MAXLEN];
        char tmp6[MAXLEN];
@@ -304,8 +305,7 @@ void redirector_log(void)
        }
 
        snprintf(guard_in,sizeof(guard_in),"%s/redirector.int_unsort",tmp);
-       snprintf(guard_ou,sizeof(guard_ou),"%s/redirector.int_log",tmp);
-       if((fp_ou=fopen(guard_in,"a"))==NULL) {
+       if((fp_ou=fopen(guard_in,"w"))==NULL) {
                debuga(_("(squidguard) Cannot open log file %s\n"),guard_in);
                exit(EXIT_FAILURE);
        }
@@ -383,19 +383,22 @@ void redirector_log(void)
                free(files_done);
        }
 
-       if(debug) {
-               debuga(_("Sorting file: %s\n"),guard_ou);
-       }
+       if (redirector_count) {
+               snprintf(redirector_sorted,sizeof(redirector_sorted),"%s/redirector.int_log",tmp);
+               if(debug) {
+                       debuga(_("Sorting file: %s\n"),redirector_sorted);
+               }
 
-       if (snprintf(tmp6,sizeof(tmp6),"sort -t \"\t\" -k 1,1 -k 2,2 -k 4,4 \"%s\" -o \"%s\"",guard_in, guard_ou)>=sizeof(tmp6)) {
-               debuga(_("Sort command too long when sorting file \"%s\" to \"%s\"\n"),guard_in,guard_ou);
-               exit(EXIT_FAILURE);
-       }
-       cstatus=system(tmp6);
-       if (!WIFEXITED(cstatus) || WEXITSTATUS(cstatus)) {
-               debuga(_("sort command return status %d\n"),WEXITSTATUS(cstatus));
-               debuga(_("sort command: %s\n"),tmp6);
-               exit(EXIT_FAILURE);
+               if (snprintf(tmp6,sizeof(tmp6),"sort -t \"\t\" -k 1,1 -k 2,2 -k 4,4 \"%s\" -o \"%s\"",guard_in, redirector_sorted)>=sizeof(tmp6)) {
+                       debuga(_("Sort command too long when sorting file \"%s\" to \"%s\"\n"),guard_in,redirector_sorted);
+                       exit(EXIT_FAILURE);
+               }
+               cstatus=system(tmp6);
+               if (!WIFEXITED(cstatus) || WEXITSTATUS(cstatus)) {
+                       debuga(_("sort command return status %d\n"),WEXITSTATUS(cstatus));
+                       debuga(_("sort command: %s\n"),tmp6);
+                       exit(EXIT_FAILURE);
+               }
        }
 
        if (!KeepTempLog && unlink(guard_in)) {
@@ -419,7 +422,6 @@ void redirector_report(void)
 
        char *buf;
        char *url;
-       char squidguard_in[MAXLEN];
        char report[MAXLEN];
        char ip[45];
        char rule[255];
@@ -442,18 +444,18 @@ void redirector_report(void)
        ouser[0]='\0';
        ouser2[0]='\0';
 
-       snprintf(squidguard_in,sizeof(squidguard_in),"%s/redirector.int_log",tmp);
        if(!redirector_count) {
-               if (!KeepTempLog && unlink(squidguard_in))
-                       debuga(_("Cannot delete \"%s\": %s\n"),squidguard_in,strerror(errno));
-               if (debugz) debugaz(_("Redirector report not generated because it is empty\n"));
+               if (debugz) {
+                       if (redirector_sorted[0])
+                               debugaz(_("Redirector report not generated because it is empty\n"));
+               }
                return;
        }
 
        snprintf(report,sizeof(report),"%s/redirector.html",outdirname);
 
-       if((fp_in=fopen(squidguard_in,"r"))==NULL) {
-               debuga(_("(squidguard) Cannot open log file %s\n"),squidguard_in);
+       if((fp_in=fopen(redirector_sorted,"r"))==NULL) {
+               debuga(_("(squidguard) Cannot open log file %s\n"),redirector_sorted);
                exit(EXIT_FAILURE);
        }
 
@@ -480,33 +482,33 @@ void redirector_report(void)
        while((buf=longline_read(fp_in,line))!=NULL) {
                getword_start(&gwarea,buf);
                if (getword(user,sizeof(user),&gwarea,'\t')<0) {
-                       debuga(_("Invalid user in file %s\n"),squidguard_in);
+                       debuga(_("Invalid user in file %s\n"),redirector_sorted);
                        exit(EXIT_FAILURE);
                }
                if (getword_atoll(&data2,&gwarea,'\t')<0) {
-                       debuga(_("Invalid date in file %s\n"),squidguard_in);
+                       debuga(_("Invalid date in file %s\n"),redirector_sorted);
                        exit(EXIT_FAILURE);
                }
                if (getword(hora,sizeof(hora),&gwarea,'\t')<0) {
-                       debuga(_("Invalid time in file %s\n"),squidguard_in);
+                       debuga(_("Invalid time in file %s\n"),redirector_sorted);
                        exit(EXIT_FAILURE);
                }
                if (getword(ip,sizeof(ip),&gwarea,'\t')<0) {
-                       debuga(_("Invalid IP address in file %s\n"),squidguard_in);
+                       debuga(_("Invalid IP address in file %s\n"),redirector_sorted);
                        exit(EXIT_FAILURE);
                }
                if (getword_ptr(buf,&url,&gwarea,'\t')<0) {
-                       debuga(_("Invalid URL in file %s\n"),squidguard_in);
+                       debuga(_("Invalid URL in file %s\n"),redirector_sorted);
                        exit(EXIT_FAILURE);
                }
                if (getword(rule,sizeof(rule),&gwarea,'\n')<0) {
-                       debuga(_("Invalid rule in file %s\n"),squidguard_in);
+                       debuga(_("Invalid rule in file %s\n"),redirector_sorted);
                        exit(EXIT_FAILURE);
                }
 
                uinfo=userinfo_find_from_id(user);
                if (!uinfo) {
-                       debuga(_("Unknown user ID %s in file %s\n"),user,squidguard_in);
+                       debuga(_("Unknown user ID %s in file %s\n"),user,redirector_sorted);
                        exit(EXIT_FAILURE);
                }
 
@@ -576,8 +578,8 @@ void redirector_report(void)
        if (fclose(fp_ou)==EOF)
                debuga(_("Failed to close file %s - %s\n"),report,strerror(errno));
 
-       if (!KeepTempLog && unlink(squidguard_in)) {
-               debuga(_("Cannot delete \"%s\": %s\n"),squidguard_in,strerror(errno));
+       if (!KeepTempLog && unlink(redirector_sorted)) {
+               debuga(_("Cannot delete \"%s\": %s\n"),redirector_sorted,strerror(errno));
                exit(EXIT_FAILURE);
        }