home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
sarg1221.zip
/
totday.c
< prev
next >
Wrap
C/C++ Source or Header
|
2002-10-08
|
2KB
|
109 lines
/*
* sarg - Squid user management log
* Mar/98 - Pedro L Orso - orso@onda.com.br
*/
#include "include/conf.h"
void totaliza_day(const char *dirname, char *user, int indexonly)
{
FILE *fp_in, *fp_ou;
char data[20];
char hora[20];
char min[20];
char elap[20];
char odata[20];
char ohora[20];
char oelap[20];
char hm[20];
char ohm[20];
char csort[255];
char wdirname[MAXLEN];
char sortout[MAXLEN];
char arqout[MAXLEN];
int regs=0;
long long int telap=0;
long long int tused=0;
if(indexonly) return;
if(strstr(ReportType,"users_sites") == 0) return;
sprintf(wdirname,"%s/%s.htmp",dirname,user);
sprintf(arqout,"%s/%s.day",dirname,user);
sprintf(sortout,"%s/%s.sort",dirname,user);
sprintf(csort, SORT" -k 1,1 -k 2,2 -o %s %s",sortout,wdirname);
system(csort);
unlink(wdirname);
if((fp_in=fopen(sortout,"r"))==NULL) {
fprintf(stderr, "SARG: (totday) %s: %s\n",text[8],sortout);
exit(1);
}
if((fp_ou=fopen(arqout,"w"))==NULL) {
fprintf(stderr, "SARG: (totday) %s: %s\n",text[8],arqout);
exit(1);
}
while(fgets(buf,sizeof(buf),fp_in)!=NULL) {
if(strstr(buf,"\n") != 0)
buf[strlen(buf)-1]='\0';
getword(data,buf,' ');
getword(hora,buf,':');
getword(min,buf,':');
getword(elap,buf,' ');
strcpy(elap,buf);
sprintf(hm,"%s%s",hora,min);
if(!regs) {
strcpy(odata,data);
strcpy(ohora,hora);
strcpy(oelap,elap);
strcpy(ohm,hm);
regs++;
}
if(strcmp(hora,ohora) != 0) {
// if(tused > telap)
// tused=telap;
my_lltoa(telap,val1,15);
sprintf(buf,"%s %s %s\n",odata,ohora,val1);
fputs(buf, fp_ou);
strcpy(odata,data);
strcpy(ohora,hora);
strcpy(ohm,hm);
telap=0;
tused=0;
}
if(strcmp(ohm,hm) != 0) {
tused+=60000;
strcpy(ohm,hm);
}
telap+=my_atoll(elap);
}
if(tused > telap)
tused=telap;
my_lltoa(telap,val1,15);
sprintf(buf,"%s %s %s\n",data,hora,val1);
fputs(buf, fp_ou);
fclose(fp_in);
fclose(fp_ou);
unlink(sortout);
return;
}