Annotation of sbbs/src/sbbs3/dstsedit.c, revision 1.1.1.1

1.1       root        1: /* DSTSEDIT.C */
                      2: 
                      3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
                      4: 
                      5: #include <stdio.h>
                      6: #include <sys/stat.h>
                      7: #include <fcntl.h>
                      8: #include <errno.h>
                      9: #include <stdlib.h>
                     10: 
                     11: #include "sbbs.h"
                     12: #include "dirwrap.h"
                     13: #include "nopen.h"
                     14: #include "sbbsdefs.h"
                     15: #include "conwrap.h"
                     16: 
                     17: int 
                     18: main(int argc, char **argv)
                     19: {
                     20:        char            ch, str[MAX_PATH+1], path[MAX_PATH + 1]
                     21:                       ,*lst = "%c) %-25s: %13lu\n"
                     22:                       ,*nv = "\nNew value: ", *p;
                     23:        int             file;
                     24:        stats_t         stats;
                     25:        time32_t                t;
                     26:        scfg_t          cfg;
                     27: 
                     28:        memset(&cfg, 0, sizeof(cfg));
                     29: 
                     30:        if (argc > 1)
                     31:                strcpy(path, argv[1]);
                     32:        else {
                     33:                p=getenv("SBBSCTRL");
                     34:                if(p)
                     35:                        SAFECOPY(path, p);
                     36:                else
                     37:                        getcwd(path, sizeof(path));
                     38:        }
                     39:        backslash(path);
                     40: 
                     41:        sprintf(str, "%sdsts.dab", path);
                     42:        if ((file = nopen(str, O_RDONLY)) == -1) {
                     43:                printf("Can't open %s\r\n", str);
                     44:                exit(1);
                     45:        }
                     46:        read(file, &t, 4L);
                     47:        if (read(file, &stats, sizeof(stats_t)) != sizeof(stats_t)) {
                     48:                close(file);
                     49:                printf("Error reading %u bytes from %s\r\n", sizeof(stats_t), str);
                     50:                exit(1);
                     51:        }
                     52:        close(file);
                     53:        while (1) {
                     54:                printf("Synchronet Daily Statistics Editor v1.01\r\n\r\n");
                     55:                printf("S) %-25s: %13s\n", "Date Stamp (MM/DD/YY)", unixtodstr(&cfg, t, str));
                     56:                printf(lst, 'L', "Total Logons", stats.logons);
                     57:                printf(lst, 'O', "Logons Today", stats.ltoday);
                     58:                printf(lst, 'T', "Total Time on", stats.timeon);
                     59:                printf(lst, 'I', "Time on Today", stats.ttoday);
                     60:                printf(lst, 'U', "Uploaded Files Today", stats.uls);
                     61:                printf(lst, 'B', "Uploaded Bytes Today", stats.ulb);
                     62:                printf(lst, 'D', "Downloaded Files Today", stats.dls);
                     63:                printf(lst, 'W', "Downloaded Bytes Today", stats.dlb);
                     64:                printf(lst, 'P', "Posts Today", stats.ptoday);
                     65:                printf(lst, 'E', "E-Mails Today", stats.etoday);
                     66:                printf(lst, 'F', "Feedback Today", stats.ftoday);
                     67:                printf("%c) %-25s: %13u\r\n", 'N', "New Users Today", stats.nusers);
                     68: 
                     69:                printf("Q) Quit and save changes\r\n");
                     70:                printf("X) Quit and don't save changes\r\n");
                     71: 
                     72:                printf("\r\nWhich: ");
                     73: 
                     74:                ch = toupper(getch());
                     75:                printf("%c\r\n", ch);
                     76: 
                     77:                switch (ch) {
                     78:                case 'S':
                     79:                        printf("Date stamp (MM/DD/YY): ");
                     80:                        fgets(str, sizeof(str), stdin);
                     81:                        if (str[0])
                     82:                                t = dstrtounix(&cfg, str);
                     83:                        break;
                     84:                case 'L':
                     85:                        printf(nv);
                     86:                        fgets(str, sizeof(str), stdin);
                     87:                        if (str[0])
                     88:                                stats.logons = atol(str);
                     89:                        break;
                     90:                case 'O':
                     91:                        printf(nv);
                     92:                        fgets(str, sizeof(str), stdin);
                     93:                        if (str[0])
                     94:                                stats.ltoday = atol(str);
                     95:                        break;
                     96:                case 'T':
                     97:                        printf(nv);
                     98:                        fgets(str, sizeof(str), stdin);
                     99:                        if (str[0])
                    100:                                stats.timeon = atol(str);
                    101:                        break;
                    102:                case 'I':
                    103:                        printf(nv);
                    104:                        fgets(str, sizeof(str), stdin);
                    105:                        if (str[0])
                    106:                                stats.ttoday = atol(str);
                    107:                        break;
                    108:                case 'U':
                    109:                        printf(nv);
                    110:                        fgets(str, sizeof(str), stdin);
                    111:                        if (str[0])
                    112:                                stats.uls = atol(str);
                    113:                        break;
                    114:                case 'B':
                    115:                        printf(nv);
                    116:                        fgets(str, sizeof(str), stdin);
                    117:                        if (str[0])
                    118:                                stats.ulb = atol(str);
                    119:                        break;
                    120:                case 'D':
                    121:                        printf(nv);
                    122:                        fgets(str, sizeof(str), stdin);
                    123:                        if (str[0])
                    124:                                stats.dls = atol(str);
                    125:                        break;
                    126:                case 'W':
                    127:                        printf(nv);
                    128:                        fgets(str, sizeof(str), stdin);
                    129:                        if (str[0])
                    130:                                stats.dlb = atol(str);
                    131:                        break;
                    132:                case 'P':
                    133:                        printf(nv);
                    134:                        fgets(str, sizeof(str), stdin);
                    135:                        if (str[0])
                    136:                                stats.ptoday = atol(str);
                    137:                        break;
                    138:                case 'E':
                    139:                        printf(nv);
                    140:                        fgets(str, sizeof(str), stdin);
                    141:                        if (str[0])
                    142:                                stats.etoday = atol(str);
                    143:                        break;
                    144:                case 'F':
                    145:                        printf(nv);
                    146:                        fgets(str, sizeof(str), stdin);
                    147:                        if (str[0])
                    148:                                stats.ftoday = atol(str);
                    149:                        break;
                    150:                case 'N':
                    151:                        printf(nv);
                    152:                        fgets(str, sizeof(str), stdin);
                    153:                        if (str[0])
                    154:                                stats.nusers = atoi(str);
                    155:                        break;
                    156:                case 'Q':
                    157:                        sprintf(str, "%sdsts.dab", path);
                    158:                        if ((file = nopen(str, O_WRONLY)) == -1) {
                    159:                                printf("Error opening %s\r\n", str);
                    160:                                exit(1);
                    161:                        }
                    162:                        write(file, &t, 4L);
                    163:                        write(file, &stats, sizeof(stats_t));
                    164:                        close(file);
                    165:                case 'X':
                    166:                        exit(0);
                    167:                default:
                    168:                        putchar(7);
                    169:                        break;
                    170:                }
                    171:        }
                    172: }

unix.superglobalmegacorp.com

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