/*
* SARG Squid Analysis Report Generator http://sarg.sourceforge.net
- * 1998, 2010
+ * 1998, 2011
*
* SARG donations:
* please look at http://sarg.sourceforge.net/donations.php
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));
}
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);
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> ",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(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> ",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);
}
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)