From: Frédéric Marchal Date: Fri, 31 Aug 2012 20:06:39 +0000 (+0200) Subject: Report the IP address from which the user visited some site X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d2a6d53441d801de1a13fffaf851a1f8c101a06;p=thirdparty%2Fsarg.git Report the IP address from which the user visited some site The IP address makes sense in that report to detect users visiting sites from another computer but still identified by their credential. --- diff --git a/report.c b/report.c index 67bc5f9..6798776 100644 --- a/report.c +++ b/report.c @@ -47,12 +47,13 @@ void gerarel(void) FILE *fp_tmp=NULL; char *buf; - char accdia[11], acchora[9], accip[MAXLEN], *accurl; - char oldaccdia[11], oldacchora[9], oldaccip[MAXLEN]; + char accdia[11], acchora[9], accip[256], *accurl; + char oldaccdia[11], oldacchora[9], oldaccip[256]; + char oldacciptt[256]; char wdirname[MAXLEN]; char *oldurl=NULL; char oldmsg[50], acccode[MAXLEN/2 - 1], oldacccode[MAXLEN/2 - 1]; - char ipantes[MAXLEN], nameantes[MAXLEN]; + char ipantes[256], nameantes[MAXLEN]; char accsmart[MAXLEN]; char crc2[MAXLEN/2 -1]; char siteind[MAX_TRUNCATED_URL]; @@ -131,7 +132,7 @@ void gerarel(void) strcpy(u2,uinfo->id); if(Ip2Name && uinfo->id_is_ip) { - strcpy(ipantes,u2); + safe_strcpy(ipantes,u2,sizeof(ipantes)); ip2name(u2,sizeof(u2)); strcpy(nameantes,u2); } @@ -147,6 +148,7 @@ void gerarel(void) ourltt_size=0; memset(oldaccdiatt,0,sizeof(oldaccdiatt)); memset(oldacchoratt,0,sizeof(oldacchoratt)); + memset(oldacciptt,0,sizeof(oldacciptt)); new_user=true; nacc=0; nbytes=0; @@ -188,7 +190,7 @@ void gerarel(void) strcpy(ipantes,accip); ip2name(accip,sizeof(accip)); strcpy(nameantes,accip); - } else strcpy(accip,nameantes); + } else safe_strcpy(accip,nameantes,sizeof(accip)); } if (!indexonly) { @@ -235,7 +237,8 @@ void gerarel(void) nelap+=accelap; if ((ReportType & REPORT_TYPE_SITE_USER_TIME_DATE) != 0 && !indexonly && - (!oldurltt || strcmp(oldurltt,accurl) || strcmp(oldaccdiatt,accdia) || strcmp(oldacchoratt,acchora))) { + (!oldurltt || strcmp(oldurltt,accurl) || strcmp(oldaccdiatt,accdia) || strcmp(oldacchoratt,acchora) || + strcmp(oldacciptt,accip))) { if(!ttopen) { snprintf(arqtt,sizeof(arqtt),"%s/%s",outdirname,uinfo->filename); @@ -266,12 +269,16 @@ void gerarel(void) close_html_header(fp_tt); fputs("
\n",fp_tt); - fprintf(fp_tt,"\n",_("ACCESSED SITE"),_("DATE"),_("TIME")); + fprintf(fp_tt,"",_("ACCESSED SITE")); + fprintf(fp_tt,"",_("IP")); + fprintf(fp_tt,"\n",_("DATE"),_("TIME")); } fputs("\n",accdia,acchora); + fputs("",fp_tt); + fprintf(fp_tt,"",accip); + fprintf(fp_tt,"\n",accdia,acchora); url_len=strlen(accurl); if (!oldurltt || url_len>=ourltt_size) { @@ -285,6 +292,7 @@ void gerarel(void) strcpy(oldurltt,accurl); strcpy(oldaccdiatt,accdia); strcpy(oldacchoratt,acchora); + strcpy(oldacciptt,accip); } strcpy(crc2,acccode);
%s%s%s
%s%s%s%s
",fp_tt); output_html_string(fp_tt,accurl,100); - fprintf(fp_tt,"%s%s
%s%s%s