home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / sarg1221.zip / repday.c < prev    next >
C/C++ Source or Header  |  2002-10-11  |  7KB  |  218 lines

  1. /*
  2.  * sarg - Squid user management log
  3.  * Mar/98 - Pedro L Orso - orso@onda.com.br
  4.  */
  5.  
  6. #include "include/conf.h"
  7.  
  8. extern numlist hours;
  9.  
  10. void report_day(const char *dirname, char *user, int *iprel, int *ipuser, char *BgColor, char *TxColor, char *TxBgColor, char *TiColor, char *LogoImage, char *LogoText, char *LogoTextColor, char *Width, char *Height, char *Title, char *BgImage, char *FontFace, char *HeaderColor, char *HeaderBgColor, char *FontSize, char *TempDir, char *UserSortField, char *UserSortOrder, char *DateFormat, char *periodo)
  11.  
  12. {
  13.  
  14.    FILE *fp_in, *fp_ou;
  15.  
  16.    char data[20];
  17.    char dia[3];
  18.    char mes[3];
  19.    char ano[3];
  20.    char odata[20];
  21.    char hora[20];
  22.    char elap[20];
  23.    char oelap[20];
  24.    char whora[3];
  25.    char html[8000];
  26.    char arqout[MAXLEN];
  27.    char wdirname[MAXLEN];
  28.    char wuser[255];
  29.    char c[ 24 ][20];
  30.    int  count=0;
  31.    int  ihora=0;
  32.    long long int telap=0;
  33.    long long int v[ 24 ] = { 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
  34.                  0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L };
  35.    long long int t[ 24 ] = { 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
  36.                  0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L };
  37.    long long int tt=0, ttt=0;
  38.    char ftime[128];
  39.    int i;
  40.  
  41.    sprintf(wdirname,"%s/%s.day",dirname,user);
  42.    sprintf(arqout,"%s/d%s.html",dirname,user);
  43.  
  44.    if((fp_in=fopen(wdirname,"r"))==NULL) {
  45.      fprintf(stderr, "SARG: (totday) %s: %s\n",text[8],wdirname);
  46.      exit(1);
  47.    }
  48.  
  49.    if((fp_ou=fopen(arqout,"w"))==NULL) {
  50.      fprintf(stderr, "SARG: (totday) %s: %s\n",text[8],arqout);
  51.      exit(1);
  52.    }
  53.  
  54.    fputs("<html>\n",fp_ou);
  55.    fputs("<head>\n",fp_ou);
  56.    sprintf(html,"  <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">\n",CharSet);
  57.    fputs(html,fp_ou);
  58.    fputs("</head>\n",fp_ou);
  59.  
  60.    // DAS: Using style=font-family more corresponds to standards. 
  61.    sprintf(html,"<body bgcolor=%s text=%s background='%s' style='font-family:%s;'>\n",BgColor,TxColor,BgImage,FontFace);
  62.    fputs(html,fp_ou);
  63.  
  64.    fputs("<center><table cellpadding=0 cellspacing=0>\n",fp_ou);
  65.  
  66.    if(strlen(LogoImage) > 0) {
  67.       sprintf(html,"<tr><th align=left><img src='%s' border=0 align=absmiddle width=%s height=%s><font color=%s>%s</font>\n",LogoImage,Width,Height,LogoTextColor,LogoText); 
  68.       fputs(html,fp_ou);
  69.    }
  70.  
  71.    sprintf(html,"<tr><th align=center colspan=2><b><font color=%s size=+1>%s</font></b></th></tr>\n",TiColor,Title);
  72.    fputs(html,fp_ou);
  73.    
  74.    fputs("</table></center>\n",fp_ou);
  75.    fputs("<center><table cellpadding=0 cellspacing=0>\n",fp_ou);
  76.  
  77.    sprintf(html,"<tr><td align=right bgcolor=%s><font size=%s>%s:</font></td><td align=left bgcolor=%s><font size=%s> %s</font></td></td></tr>\n",HeaderBgColor,FontSize,text[89],TxBgColor,FontSize,periodo);
  78.    fputs(html,fp_ou);
  79.  
  80.    strcpy(wuser,user);
  81.    if(strstr(wuser,"_") != 0)
  82.       fixip(wuser);
  83.  
  84.    if(strcmp(Ip2Name,"yes") == 0)
  85.       if((str=(char *) strstr(name, ".")) != (char *) NULL) {
  86.          if((str=(char *) strstr(str+1, ".")) != (char *) NULL)
  87.             ip2name(wuser);
  88.    }
  89.  
  90.    if(UserTabFile[0] != '\0') {
  91.       sprintf(warea,":%s:",wuser);
  92.       if((str=(char *) strstr(userfile,warea)) != (char *) NULL ) {
  93.          z1=0;
  94.          str2=(char *) strstr(str+1,":");
  95.          str2++;
  96.          bzero(name, MAXLEN);
  97.          while(str2[z1] != ':') {
  98.             name[z1]=str2[z1];
  99.             z1++;
  100.          }
  101.       } else strcpy(name,wuser);
  102.    } else strcpy(name,user);
  103.      
  104.    sprintf(html,"<tr><td align=right bgcolor=%s><font size=%s>%s:</font></td><td align=left bgcolor=%s><font size=%s> %s</font></td></td></tr>\n",HeaderBgColor,FontSize,text[90],TxBgColor,FontSize,name);
  105.    fputs(html,fp_ou);
  106.  
  107.    fputs("<tr><td></td></tr><tr><td></td></tr>\n",fp_ou);
  108.    fputs("<tr><td></td></tr><tr><td></td></tr></table>\n",fp_ou);
  109.  
  110.    fputs("<table cellpadding=1 cellspacing=1>\n", fp_ou);
  111.  
  112.    fputs( "<tr><td border=0></td>\n", fp_ou );
  113.  
  114.    if(strcmp(datetimeby,"bytes") == 0)
  115.      strcpy( html, "BYTES" );
  116.    else
  117.      strcpy( html, "H:M:S" );
  118.  
  119.    for( i = 0; i < hours.len; i++ )
  120.      fprintf( fp_ou,
  121.     "<td align=center bgcolor=%s><font size=-2>%02d<br>%s</td>\n",
  122.           HeaderBgColor, hours.list[ i ], html );
  123.    fprintf( fp_ou,
  124.      "<td align=center bgcolor=%s><font size=-2>%s<br>%s</td></tr>\n",
  125.       HeaderBgColor, text[107], html );
  126.  
  127.    while(fgets(buf,sizeof(buf),fp_in)!=NULL) {
  128.       getword(data,buf,' ');
  129.       if(!count) {
  130.          strcpy(odata,data);
  131.          count++;
  132.       }
  133.  
  134.       getword(hora,buf,' ');
  135.       getword(elap,buf,' ');
  136.       elap[strlen(elap)-1]='\0';
  137.  
  138.       if(strcmp(data,odata) != 0) {
  139.          strcpy(oelap,elap);
  140.  
  141.      for( i = 0; i < hours.len; i++ )
  142.        sprintf(c[ hours.list[ i ] ],"%s",fixtime(v[ hours.list[ i ] ]));
  143.  
  144.      for( i = 8; i <= 17; i++ )
  145.        if(strcmp(c[ hours.list[ i ] ],"00:00:00") == 0)
  146.         bzero(c[ hours.list[ i ] ],12);
  147.  
  148.          fprintf( fp_ou,
  149.        "<tr><td align=center bgcolor=%s><font color=darkblue size=-2>%s</td>\n",
  150.         HeaderBgColor,odata );
  151.      for( i = 0; i < hours.len; i++ )
  152.        fprintf( fp_ou,
  153.          "<td align=center bgcolor=%s><font color=blue size=-2>%s</td>\n",
  154.          TxBgColor, c[ hours.list[ i ] ] );
  155.      fprintf( fp_ou,
  156.        "<td align=right bgcolor=%s><font color=darkblue size=-2>%s</td>\n",
  157.           HeaderBgColor,fixtime(tt) );
  158.         
  159.          tt=0;
  160.      for( i = 0; i < hours.len; i++ ) v[ hours.list[ i ] ]=0;
  161.          strcpy(odata,data);
  162.          strcpy(elap,oelap);
  163.       }
  164.  
  165.       ihora=atoi(hora);
  166.  
  167.       v[ ihora ]+=my_atoll(elap);
  168.       tt+=my_atoll(elap);
  169.       t[ ihora ]+=my_atoll(elap);
  170.       ttt+=my_atoll(elap);
  171.  
  172.    }
  173.  
  174.    for( i = 0; i < hours.len; i++ )
  175.      sprintf(c[ hours.list[ i ] ],"%s",fixtime(v[ hours.list[ i ] ]));
  176.  
  177.    for( i = 0; i < hours.len; i++ )
  178.      if(strcmp(c[ hours.list[ i ] ],"00:00:00") == 0) bzero(c[ hours.list[ i ] ],12);
  179.  
  180.    fprintf( fp_ou,
  181.      "<tr><td align=center bgcolor=%s><font color=darkblue size=-2>%s</td>\n",
  182.     HeaderBgColor, data );
  183.    for( i = 0; i < hours.len; i++ )
  184.      fprintf( fp_ou,
  185.        "<td align=center bgcolor=%s><font color=blue size=-2>%s</td>\n",
  186.        TxBgColor, c[ hours.list[ i ] ] );
  187.    fprintf( fp_ou,
  188.      "<td align=right bgcolor=%s><font color=darkblue size=-2>%s</td></tr>\n",
  189.     HeaderBgColor, fixtime(tt) );
  190.  
  191.    for( i = 0; i < hours.len; i++ )
  192.      sprintf(c[ hours.list[ i ] ],"%s",fixtime(t[ hours.list[ i ] ]));
  193.  
  194.    fprintf( fp_ou,
  195.      "<tr><td align=center bgcolor=%s><font color=darkblue size=-2>%s</td>\n",
  196.     HeaderBgColor, text[107] );
  197.    for( i = 0; i < hours.len; i++ )
  198.      fprintf( fp_ou,
  199.        "<td align=center bgcolor=%s><font color=blue size=-2>%s</td>\n",
  200.        TxBgColor, c[ hours.list[ i ] ] );
  201.    fprintf( fp_ou,
  202.      "<td align=right bgcolor=%s><font color=darkblue size=-2>%s</td></tr>\n",
  203.      HeaderBgColor, fixtime(ttt) );
  204.  
  205.    fputs("</table>\n", fp_ou);
  206.  
  207.    zdate(ftime, DateFormat);
  208.    sprintf(html,"<br><br><center><font size=-2>%s <a href='%s'>%s-%s</a> %s %s</font></center>\n",text[108],URL,PGM,VERSION,text[109],ftime);
  209.    fputs(html, fp_ou);
  210.  
  211.    fclose(fp_in);
  212.    fclose(fp_ou);
  213.  
  214.    unlink(wdirname);
  215.  
  216.    return;
  217. }
  218.