]> git.ipfire.org Git - thirdparty/sarg.git/blobdiff - siteuser.c
Don't report clickable link for aliased url
[thirdparty/sarg.git] / siteuser.c
index d38f4c915f4bcb7b8ae6f4d34509855adc1dea68..09c220b4a17c2332d61019e9ccd8a472d73d8e7b 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * SARG Squid Analysis Report Generator      http://sarg.sourceforge.net
- *                                                            1998, 2010
+ *                                                            1998, 2011
  *
  * SARG donations:
  *      please look at http://sarg.sourceforge.net/donations.php
@@ -59,7 +59,10 @@ void siteuser(void)
        sprintf(general2,"%s/sarg-general2",outdirname);
        sprintf(report,"%s/siteuser.html",outdirname);
 
-       sprintf(csort,"sort -k 4,4 -k 1,1 -o \"%s\" \"%s\"",general2,general);
+       if (snprintf(csort,sizeof(csort),"sort -t \"\t\" -k 4,4 -k 1,1 -o \"%s\" \"%s\"",general2,general)>=sizeof(csort)) {
+               debuga(_("Sort command too long when sorting file \"%s\" to \"%s\"\n"),general,general2);
+               exit(EXIT_FAILURE);
+       }
        cstatus=system(csort);
        if (!WIFEXITED(cstatus) || WEXITSTATUS(cstatus)) {
                debuga(_("sort command return status %d\n"),WEXITSTATUS(cstatus));
@@ -68,14 +71,14 @@ void siteuser(void)
        }
 
        if((fp_in=fopen(general2,"r"))==NULL) {
-       debuga(_("(siteuser) Cannot open log file %s\n"),general2);
-       debuga(_("sort command: %s\n"),csort);
-       exit(EXIT_FAILURE);
+               debuga(_("(siteuser) Cannot open log file %s\n"),general2);
+               debuga(_("sort command: %s\n"),csort);
+               exit(EXIT_FAILURE);
        }
 
        if((fp_ou=fopen(report,"w"))==NULL) {
-       debuga(_("(siteuser) Cannot open log file %s\n"),report);
-       exit(EXIT_FAILURE);
+               debuga(_("(siteuser) Cannot open log file %s\n"),report);
+               exit(EXIT_FAILURE);
        }
 
        write_html_header(fp_ou,(IndexTree == INDEX_TREE_DATE) ? 3 : 1,_("Sites & Users"),HTML_JS_SORTTABLE);
@@ -154,16 +157,13 @@ void siteuser(void)
 
                if(strcmp(item.url,ourl) != 0 && nsitesusers) {
                        fprintf(fp_ou,"<tr><td class=\"data\">%d</td><td class=\"data2\">",regs);
-                       if(BlockIt[0]!='\0') {
+                       if(BlockIt[0]!='\0' && ourl[0]!=ALIAS_PREFIX) {
                                fprintf(fp_ou,"<a href=\"%s%s?url=",wwwDocumentRoot,BlockIt);
                                output_html_url(fp_ou,ourl);
                                fputs("\"><img src=\"../images/sarg-squidguard-block.png\"></a>&nbsp;",fp_ou);
                        }
-                       fputs("<a href=\"http://",fp_ou);
-                       output_html_url(fp_ou,ourl);
-                       fputs("\">",fp_ou);
-                       output_html_string(fp_ou,ourl,100);
-                       fputs("</a></td>",fp_ou);
+                       output_html_link(fp_ou,ourl,100);
+                       fputs("</td>",fp_ou);
 
                        if (BytesInSitesUsersReport) {
                                fputs("<td class=\"data\"",fp_ou);
@@ -194,16 +194,13 @@ void siteuser(void)
 
        if(nsitesusers) {
                fprintf(fp_ou,"<tr><td class=\"data\">%d</td><td class=\"data2\">",regs);
-               if(BlockIt[0]!='\0') {
+               if(BlockIt[0]!='\0' && ourl[0]!=ALIAS_PREFIX) {
                        fprintf(fp_ou,"<a href=\"%s%s?url=",wwwDocumentRoot,BlockIt);
                        output_html_url(fp_ou,ourl);
                        fputs("\"><img src=\"../images/sarg-squidguard-block.png\"></a>&nbsp;",fp_ou);
                }
-               fputs("<a href=\"http://",fp_ou);
-               output_html_url(fp_ou,ourl);
-               fputs("\">",fp_ou);
-               output_html_string(fp_ou,ourl,100);
-               fputs("</a></td>",fp_ou);
+               output_html_link(fp_ou,ourl,100);
+               fputs("</td>",fp_ou);
                if (BytesInSitesUsersReport) {
                        fputs("<td class=\"data\"",fp_ou);
                        if (SortTableJs[0]) fprintf(fp_ou," sorttable_customkey=\"%"PRId64"\"",(int64_t)obytes);
@@ -213,7 +210,10 @@ void siteuser(void)
        }
        if (ourl) free(ourl);
 
-       unlink(general2);
+       if (unlink(general2)) {
+               debuga(_("Cannot delete %s - %s\n"),general2,strerror(errno));
+               exit(EXIT_FAILURE);
+       }
 
        fputs("</table></div>\n",fp_ou);
        if (write_html_trailer(fp_ou)<0)