home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
sarg1221.zip
/
sort.c
< prev
next >
Wrap
C/C++ Source or Header
|
2002-10-11
|
2KB
|
91 lines
/*
* sarg - Squid user management log
* Mar/98 - Pedro L Orso - orso@onda.com.br
*/
#include "include/conf.h"
void tmpsort(const char *dirname, int debug, char *TempDir, char *TopuserSortField, char *UserSortField, char *TopuserSortOrder, char *UserSortOrder, int indexonly)
{
DIR *dirp;
struct dirent *direntp;
char csort[MAXLEN];
char wentp[MAXLEN];
char arqou[MAXLEN], arqin[MAXLEN], wnome[MAXLEN], wnome2[MAXLEN];
char field1[10]="2,2";
char field2[10]="1,1";
char field3[10]="3,3";
char order[4]="-r";
if(indexonly) return;
if(strstr(ReportType,"users_sites") == 0) return;
wnome[0]='\0';
wnome2[0]='\0';
dirp = opendir(dirname);
while ( (direntp = readdir( dirp )) != NULL ){
if(strstr(direntp->d_name,".tmp") == 0)
continue;
strcpy(wentp,direntp->d_name);
wnome[0]='\0';
striptmp:
getword(wnome2,wentp,'.');
strcat(wnome,wnome2);
if(strcmp(wentp,"tmp") !=0) {
strcat(wnome,".");
goto striptmp;
}
strcpy(arqou,dirname);
strcat(arqou,"/");
strcpy(arqin,arqou);
strcat(arqou,wnome);
strcat(arqin,direntp->d_name);
if(debug) {
sprintf(msg,"%s: %s",text[54],arqou);
debuga(msg);
}
strup(UserSortField);
strlow(UserSortOrder);
if(strcmp(UserSortField,"CONNECT") == 0) {
strcpy(field1,"1,1");
strcpy(field2,"2,2");
strcpy(field3,"3,3");
}
if(strcmp(UserSortField,"SITE") == 0) {
strcpy(field1,"3,3");
strcpy(field2,"2,2");
strcpy(field3,"1,1");
}
if(strcmp(UserSortField,"TIME") == 0) {
strcpy(field1,"5,5");
strcpy(field2,"2,2");
strcpy(field3,"1,1");
}
if(strcmp(UserSortOrder,"normal") == 0)
order[0]='\0';
strcat(arqou,".txt");
sprintf(csort, SORT" -n -T %s %s -k %s -k %s -k %s -o %s %s",TempDir,order,field1,field2,field3,arqou,arqin);
system(csort);
unlink(arqin);
}
(void)closedir( dirp );
return;
}