From 7e4a044df382f797fad46e8c860f48c7ae0c340a Mon Sep 17 00:00:00 2001 From: kcwu Date: Sun, 27 Mar 2005 01:29:08 +0000 Subject: more statistic git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2681 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- include/statistic.h | 12 ++++++++++++ mbbsd/bbs.c | 13 +++++++++++++ mbbsd/mbbsd.c | 9 +++++++++ util/shmctl.c | 12 ++++++++++++ 4 files changed, 46 insertions(+) diff --git a/include/statistic.h b/include/statistic.h index 81ad937b..a2b66a85 100644 --- a/include/statistic.h +++ b/include/statistic.h @@ -32,6 +32,18 @@ enum { // XXX description in shmctl.c STAT_RECOMMEND, STAT_TODAYLOGIN_MIN, STAT_TODAYLOGIN_MAX, + STAT_SIGINT, + STAT_SIGQUIT, + STAT_SIGILL, + STAT_SIGABRT, + STAT_SIGFPE, + STAT_SIGBUS, + STAT_SIGSEGV, + STAT_READPOST_12HR, + STAT_READPOST_1DAY, + STAT_READPOST_3DAY, + STAT_READPOST_7DAY, + STAT_READPOST_OLD, /* insert here. don't forget update shmctl.c */ STAT_NUM, STAT_MAX=512 diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 8fb5ebb2..256868ce 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -1157,6 +1157,19 @@ read_post(int ent, fileheader_t * fhdr, const char *direct) if ((more_result = more(genbuf, YEA)) == -1) return READ_SKIP; + { + int posttime=atoi(fhdr->filename+2); + if(posttime>now-12*3600) + STATINC(STAT_READPOST_12HR); + else if(posttime>now-1*86400) + STATINC(STAT_READPOST_1DAY); + else if(posttime>now-3*86400) + STATINC(STAT_READPOST_3DAY); + else if(posttime>now-7*86400) + STATINC(STAT_READPOST_7DAY); + else + STATINC(STAT_READPOST_OLD); + } brc_addlist(fhdr->filename); strncpy(currtitle, subject(fhdr->title), TTLEN); diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index 9a9b0ea7..d9f63df7 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -204,6 +204,15 @@ abort_bbs_debug(int sig) static int reentrant = 0; #endif + switch(sig) { + case SIGINT: STATINC(STAT_SIGINT); break; + case SIGQUIT: STATINC(STAT_SIGQUIT); break; + case SIGILL: STATINC(STAT_SIGILL); break; + case SIGABRT: STATINC(STAT_SIGABRT); break; + case SIGFPE: STATINC(STAT_SIGFPE); break; + case SIGBUS: STATINC(STAT_SIGBUS); break; + case SIGSEGV: STATINC(STAT_SIGSEGV); break; + } #define CRASH_MSG "\033[0m\r\n程式異常, 立刻斷線. 請洽 PttBug 板詳述你發生的問題.\n" /* NOTE: It's better to use signal-safe functions. Avoid to call * functions with global/static variable -- data may be corrupted */ diff --git a/util/shmctl.c b/util/shmctl.c index 235a5d86..dcaeadcd 100644 --- a/util/shmctl.c +++ b/util/shmctl.c @@ -930,6 +930,18 @@ int showstat(int argc, char *argv[]) "STAT_RECOMMEND", "STAT_TODAYLOGIN_MIN", "STAT_TODAYLOGIN_MAX", + "STAT_SIGINT", + "STAT_SIGQUIT", + "STAT_SIGILL", + "STAT_SIGABRT", + "STAT_SIGFPE", + "STAT_SIGBUS", + "STAT_SIGSEGV", + "STAT_READPOST_12HR", + "STAT_READPOST_1DAY", + "STAT_READPOST_3DAY", + "STAT_READPOST_7DAY", + "STAT_READPOST_OLD", }; if(argv[1] && strcmp(argv[1],"-c")==0) -- cgit v1.2.3