X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=datafile.c;h=46a9a266c976cc9e152c68abd393c9cf630b5e07;hb=41c9275ce788f5d8683006f9ddf6bcc25962440d;hp=a0339c8d3e72f82eacf8ef8aa1fbdab8c8c3ade6;hpb=61d965f3719e7e4f22c14de73c37e4a8ceb2c24e;p=thirdparty%2Fsarg.git diff --git a/datafile.c b/datafile.c index a0339c8..46a9a26 100644 --- a/datafile.c +++ b/datafile.c @@ -1,6 +1,6 @@ /* * SARG Squid Analysis Report Generator http://sarg.sourceforge.net - * 1998, 2012 + * 1998, 2015 * * SARG donations: * please look at http://sarg.sourceforge.net/donations.php @@ -44,6 +44,7 @@ void data_file(char *tmp) char *str; char tmp3[MAXLEN]; char u2[MAX_USER_LEN]; + char userlabel[MAX_USER_LEN]; userscan uscan; long long int nbytes=0; long long int nelap=0; @@ -79,17 +80,19 @@ void data_file(char *tmp) ip2name(u2,sizeof(u2)); strcpy(nameantes,u2); } - user_find(uinfo->label,MAX_USER_LEN, u2); + user_find(userlabel,MAX_USER_LEN, u2); + userinfo_label(uinfo,userlabel); if(debug) debuga(_("Reading user file: %s/%s\n"),tmp,uinfo->filename); sort_users_log(tmp,debug,uinfo); - if (snprintf(tmp3,sizeof(tmp3),"%s/%s.log",tmp,uinfo->filename)>=sizeof(tmp3)) { - debuga(_("(datafile) directory path too long: %s/%s.log\n"),tmp,uinfo->filename); + if (snprintf(tmp3,sizeof(tmp3),"%s/%s.user_log",tmp,uinfo->filename)>=sizeof(tmp3)) { + debuga(_("Path too long: ")); + debuga_more("%s/%s.user_log\n",tmp,uinfo->filename); exit(EXIT_FAILURE); } if((fp_in=MY_FOPEN(tmp3,"r"))==NULL){ - debuga(_("(datafile) Cannot open file %s\n"),tmp3); + debuga(_("Cannot open file \"%s\": %s\n"),tmp3,strerror(errno)); exit(EXIT_FAILURE); } @@ -106,11 +109,11 @@ void data_file(char *tmp) getword(accip,sizeof(accip),&gwarea,'\t')<0 || getword_ptr(buf,&accurl,&gwarea,'\t')<0 || getword_atoll(&accbytes,&gwarea,'\t')<0 || getword(acccode,sizeof(acccode),&gwarea,'\t')<0 || getword_atoll(&accelap,&gwarea,'\t')<0) { - debuga(_("There is a broken record or garbage in file %s\n"),tmp3); + debuga(_("Invalid record in file \"%s\"\n"),tmp3); exit(EXIT_FAILURE); } if (getword_skip(20000,&gwarea,'"')<0 || getword(accsmart,sizeof(accsmart),&gwarea,'"')<0) { - debuga(_("There is an invalid smart info in file %s\n"),tmp3); + debuga(_("Invalid smart info in file \"%s\"\n"),tmp3); exit(EXIT_FAILURE); } @@ -145,7 +148,7 @@ void data_file(char *tmp) if(!same_url || new_user){ if(!fp_ou && (fp_ou=MY_FOPEN(DataFile,"w"))==NULL){ - debuga(_("(datafile) Cannot open file %s\n"),DataFile); + debuga(_("Cannot open file \"%s\": %s\n"),DataFile,strerror(errno)); exit(EXIT_FAILURE); } saverecs(fp_ou,uinfo,nacc,oldurl,nbytes,oldaccip,oldacchora,oldaccdia,nelap,incache,oucache); @@ -187,12 +190,18 @@ void data_file(char *tmp) strcpy(oldacchora,acchora); } - fclose(fp_in); + if (fclose(fp_in)==EOF) { + debuga(_("Read error in \"%s\": %s\n"),tmp3,strerror(errno)); + exit(EXIT_FAILURE); + } longline_destroy(&line); } userinfo_stopscan(uscan); if (oldurl) free(oldurl); - if (fp_ou) fclose(fp_ou); + if (fp_ou && fclose(fp_ou)==EOF) { + debuga(_("Write error in \"%s\": %s\n"),DataFile,strerror(errno)); + exit(EXIT_FAILURE); + } if(debug) debuga(_("Datafile %s written successfully\n"),DataFile);