Annotation of sbbs/src/sbbs3/slog.c, revision 1.1

1.1     ! root        1: /* SLOG.C */
        !             2: 
        !             3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
        !             4: 
        !             5: #include <stdio.h>
        !             6: #include <stdlib.h>
        !             7: #include <fcntl.h>
        !             8: #include <sys/stat.h>
        !             9: #include <time.h>
        !            10: #include <errno.h>
        !            11: 
        !            12: #include "sbbsdefs.h"
        !            13: #include "nopen.h"
        !            14: #include "dirwrap.h"
        !            15: 
        !            16: /****************************************************************************/
        !            17: /* Lists system statistics for everyday the bbs has been running.           */
        !            18: /* Either for the current node (node=1) or the system (node=0)              */
        !            19: /****************************************************************************/
        !            20: int main(int argc, char **argv)
        !            21: {
        !            22:        char str[256],dir[256]={""},*p;
        !            23:     uchar *buf;
        !            24:        int i,file,pause=0,lncntr=0;
        !            25:     time_t timestamp;
        !            26:     long l;
        !            27:     ulong   length,
        !            28:             logons,
        !            29:             timeon,
        !            30:             posts,
        !            31:             emails,
        !            32:             fbacks,
        !            33:             ulb,
        !            34:             uls,
        !            35:             dlb,
        !            36:             dls;
        !            37:        time_t  yesterday;
        !            38:        struct tm *curdate;
        !            39: 
        !            40: 
        !            41: printf("\nSynchronet System/Node Statistics Log Viewer v1.02\n\n");
        !            42: 
        !            43: for(i=1;i<argc;i++)
        !            44:        if(!stricmp(argv[i],"/P"))
        !            45:                pause=1;
        !            46:        else
        !            47:                strcpy(dir,argv[1]);
        !            48: if(!dir[0]) {
        !            49:        p=getenv("SBBSCTRL");
        !            50:        if(p!=NULL)
        !            51:                strcpy(dir,p); }
        !            52: 
        !            53: backslash(dir);
        !            54: 
        !            55: sprintf(str,"%scsts.dab",dir);
        !            56: if(!fexistcase(str)) {
        !            57:        printf("%s does not exist\r\n",str);
        !            58:        return(1); }
        !            59: if((file=nopen(str,O_RDONLY))==-1) {
        !            60:        printf("Error opening %s\r\n",str);
        !            61:        return(1); }
        !            62: length=filelength(file);
        !            63: if(length<40) {
        !            64:     close(file);
        !            65:        return(1); }
        !            66: if((buf=(char *)malloc(length))==0) {
        !            67:     close(file);
        !            68:        printf("error allocating %lu bytes\r\n",length);
        !            69:        return(1); }
        !            70: read(file,buf,length);
        !            71: close(file);
        !            72: l=length-4;
        !            73: while(l>-1L) {
        !            74:     fbacks=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            75:         |((long)buf[l+3]<<24);
        !            76:     l-=4;
        !            77:     emails=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            78:         |((long)buf[l+3]<<24);
        !            79:     l-=4;
        !            80:     posts=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            81:         |((long)buf[l+3]<<24);
        !            82:     l-=4;
        !            83:     dlb=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            84:         |((long)buf[l+3]<<24);
        !            85:     l-=4;
        !            86:     dls=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            87:         |((long)buf[l+3]<<24);
        !            88:     l-=4;
        !            89:     ulb=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            90:         |((long)buf[l+3]<<24);
        !            91:     l-=4;
        !            92:     uls=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            93:         |((long)buf[l+3]<<24);
        !            94:     l-=4;
        !            95:     timeon=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            96:         |((long)buf[l+3]<<24);
        !            97:     l-=4;
        !            98:     logons=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !            99:         |((long)buf[l+3]<<24);
        !           100:     l-=4;
        !           101:     timestamp=buf[l]|((long)buf[l+1]<<8)|((long)buf[l+2]<<16)
        !           102:         |((long)buf[l+3]<<24);
        !           103:     l-=4;
        !           104:        yesterday=timestamp-(24*60*60); /* 1 day less than stamp */
        !           105:        curdate=localtime(&yesterday);
        !           106:        printf("%2.2d/%2.2d/%2.2d T:%5lu   L:%3lu   P:%3lu   "
        !           107:                "E:%3lu   F:%3lu   U:%6luk %3lu  D:%6luk %3lu\n"
        !           108:                ,curdate->tm_mon+1,curdate->tm_mday,curdate->tm_year%100,timeon,logons,posts,emails
        !           109:                ,fbacks,ulb/1024,uls,dlb/1024,dls);
        !           110:        lncntr++;
        !           111:        if(pause && lncntr>=20) {
        !           112:                printf("[Hit a key]");
        !           113:                if(getch()==3)
        !           114:                        break;
        !           115:                printf("\r");
        !           116:                lncntr=0; } }
        !           117: free(buf);
        !           118: return(0);
        !           119: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.