diff options
author | scw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-05-16 19:30:16 +0800 |
---|---|---|
committer | scw <scw@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-05-16 19:30:16 +0800 |
commit | 280c2707ef087a032cd9a846f3fd9549e194fa19 (patch) | |
tree | d307be9b02e36ba3c132cdc73c33d04fb8eddf45 /util | |
parent | 3d0fa7c79b4d5d08868f32f44052392d03638074 (diff) | |
download | pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.tar pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.tar.gz pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.tar.bz2 pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.tar.lz pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.tar.xz pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.tar.zst pttbbs-280c2707ef087a032cd9a846f3fd9549e194fa19.zip |
merge from trunk.
git-svn-id: http://opensvn.csie.org/pttbbs/branches/scw.angel@1995 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'util')
-rw-r--r-- | util/Makefile | 2 | ||||
-rw-r--r-- | util/account.c | 34 | ||||
-rw-r--r-- | util/antispam.c | 122 | ||||
-rw-r--r-- | util/boardlist.c | 3 | ||||
-rw-r--r-- | util/killdeadbbs.c | 56 | ||||
-rw-r--r-- | util/lunar-1,15run.pl | 11 | ||||
-rw-r--r-- | util/testkenben.txt | 11 |
7 files changed, 29 insertions, 210 deletions
diff --git a/util/Makefile b/util/Makefile index 99461ffe..99ff62af 100644 --- a/util/Makefile +++ b/util/Makefile @@ -26,7 +26,7 @@ CPROG_WITH_UTIL= \ # ¤U±³o¨Çµ{¦¡, ·|ª½±µ³Q compile CPROG_WITHOUT_UTIL= \ - shmsweep uhash_loader showboard antispam \ + shmsweep uhash_loader showboard \ countalldice webgrep bbsrf initbbs \ userlist tunepasswd buildir merge_passwd \ merge_board xchatd bbsmail diff --git a/util/account.c b/util/account.c index bb1b1bc4..6c05b569 100644 --- a/util/account.c +++ b/util/account.c @@ -1,6 +1,7 @@ /* $Id$ */ #include "bbs.h" +//test #define ACCOUNT_MAX_LINE 16 #define ADJUST_M 6 /* adjust back 5 minutes */ @@ -90,9 +91,10 @@ void gzip(source, target, stamp) int main(int argc, char **argv) { int hour, max, item, total, i, j, mo, da, max_user = 0, max_login = 0, - max_reg = 0, mahour = 0, k; + max_reg = 0, mahour = 0, k, wday; char *act_file = ".act"; char *log_file = "usies"; + char *wday_str = "UMTWRFS"; char buf[256], buf1[256], *p; FILE *fp, *fp1; int act[27]; /* ¦¸¼Æ/²Öp®É¶¡/pointer */ @@ -328,11 +330,29 @@ int main(int argc, char **argv) if((fp = fopen("etc/feast", "r"))) { while(fgets(buf1, sizeof(buf1), fp)) { if(buf[0] != '#' && - sscanf(buf1, "%d %d ", &mo, &da) == 2) { - if(ptime->tm_mday == da && ptime->tm_mon + 1 == mo) { - i = 1; - fprintf(fp1, "%-14.14s", &buf1[6]); - } + sscanf(buf1, "%d %c%c", &mo, buf, buf+1) == 3) { + if (isdigit(buf[0])) { + if (isdigit(buf[1])) { + da = 10 * (buf[0] - '0') + (buf[1] - '0'); + if(ptime->tm_mday == da && ptime->tm_mon + 1 == mo) { + i = 1; + fprintf(fp1, "%-14.14s", &buf1[6]); + } + } + else { + if (buf[0] - '0' <= 4) { + wday = 0; + buf[1] = toupper(buf[1]); + while(wday < 7 && buf[1] != *(wday_str + wday)) + wday++; + if (ptime->tm_mon + 1 == mo && ptime->tm_wday == wday && + (ptime->tm_mday - 1)/7 + 1 == (buf[0] - '0')) { + i = 1; + fprintf(fp1, "%-14.14s", &buf1[6]); + } + } + } + } } } fclose(fp); @@ -341,7 +361,7 @@ int main(int argc, char **argv) if(i == 0) { if((fp = fopen("etc/today_boring", "r"))) { while(fgets(buf1, sizeof(buf1), fp)) - if(strlen(buf) > 3) + if(strlen(buf1) > 3) fprintf(fp1, "%s", buf1); fclose(fp); } else diff --git a/util/antispam.c b/util/antispam.c deleted file mode 100644 index e5b2ed59..00000000 --- a/util/antispam.c +++ /dev/null @@ -1,122 +0,0 @@ -/* $Id$ */ -/* §ì¼s§i«Hªºµ{¦¡ */ -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <sys/types.h> -#include "config.h" - -#define WINDOW 100 /* ¤@¦¸window¦h¤ÖÓserver */ -#define LEVEL 21 /* Y´X¦¸«´_´Nºâ¼s§i«H */ - -#define mailog BBSHOME "/etc/mailog" -#define spamlog BBSHOME "/etc/spam" - -typedef struct sendinfo -{ - char time[18]; - char from[50]; - char userid[20]; - int count; -} -sendinfo; - -int -main(int argc, char **argv) -{ - char buf[200], *from, *userid; - int num = -1, numb = -1, n, nb; - FILE *fp = fopen(mailog, "r"), *fo; - sendinfo data[WINDOW]; - sendinfo bad[WINDOW]; - - unlink(spamlog); - fo = fopen(spamlog, "a"); - memset(data, 0, sizeof(data)); - memset(bad, 0, sizeof(bad)); - - if (!fp || !fo) - return 0; - - while (fgets(buf, 200, fp)) - { - strtok(buf, "\r\n"); - from = strchr(buf, '>') + 2; - userid = strstr(buf, " =>"); - - if (!from || !userid) - continue; - - *userid = 0; - userid += 4; - - if (strstr(from, "MAILER-DAEMON") - || strstr(from, userid)) - continue; /* °h«H³qª¾¤£ºÞ */ - /* ¬O§_¤w¬Obadhost */ - - for (nb = 0; nb < WINDOW && bad[nb].from[0]; nb++) - if (!strcmp(bad[nb].from, from)) - break; - - if (nb < WINDOW && bad[nb].from[0]) - { - bad[nb].count++; - continue; - } - - /* ²¬d¹L¥h°O¿ý */ - - for (n = 0; n < WINDOW && data[n].from[0]; n++) - if (!strcmp(data[n].from, from)) - break; - - if (n < WINDOW && data[n].from[0]) - { - if (!strncmp(data[n].userid, userid, 20)) - continue; - /* Â൹¦P¤@Ó¤H´N¤£ºÞ */ - strncpy(data[n].userid, userid, 20); - if (++data[n].count >= LEVEL) - { - /* Åܦ¨bad ²¾data¨ìbad ªÅ¯Ê¥Ñ«á¤@µ§¸ê®Æ¸É¤W */ - if (nb >= WINDOW) - { - numb = (numb + 1) % WINDOW; - nb = numb; - fprintf(fo, "%s %s «ÂбH %d ¦¸\n", - bad[nb].time, bad[nb].from, bad[nb].count); -/* printf(" %s send %d times\n", - bad[nb].from, bad[nb].count); */ - } - memcpy(&bad[nb], &data[n], sizeof(sendinfo)); - memcpy(&data[n], &data[n + 1], sizeof(sendinfo) * (WINDOW - n - 1)); - if (num > n) - num--; - } - } - else - { - if (n >= WINDOW) - { - num = (num + 1) % WINDOW; - n = num; - } -/* printf("[%s] to [%s]\n", from, userid); */ - buf[17] = 0; - strncpy(data[n].time, buf, 17); - strncpy(data[n].from, from, 50); - strncpy(data[n].userid, userid, 20); - } - } - - for (nb = 0; nb < WINDOW && bad[nb].from[0]; nb++) - { - fprintf(fo, "%s %s «ÂбH %d ¦¸\n", bad[nb].time, - bad[nb].from, bad[nb].count); -/* printf(" %s send %d times\n", bad[nb].from, bad[nb].count); */ - } - fclose(fp); - fclose(fo); - return 0; -} diff --git a/util/boardlist.c b/util/boardlist.c index a37de82f..606a0192 100644 --- a/util/boardlist.c +++ b/util/boardlist.c @@ -9,8 +9,7 @@ load_uidofgid(const int gid, const int type) int n, childcount = 0; currbptr = &bcache[gid - 1]; for (n = 0; n < numboards; ++n) { - bptr = SHM->bsorted[type][n]; - if (bptr->brdname[0] == '\0') + if( !(bptr = SHM->bsorted[type][n]) || bptr->brdname[0] == '\0' ) continue; if (bptr->gid == gid) { if (currbptr == &bcache[gid - 1]) diff --git a/util/killdeadbbs.c b/util/killdeadbbs.c deleted file mode 100644 index 0c83fe29..00000000 --- a/util/killdeadbbs.c +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef FreeBSD -int main(int argc, char **argv) -{ - puts("this program is only for FreeBSD"); -} -#else -#include <err.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <signal.h> -#include <kvm.h> -#include <fcntl.h> -#include <limits.h> -#include <sys/param.h> -#include <sys/sysctl.h> -#include <sys/user.h> -#include "config.h" // for BBSUID - -int main(int argc, char **argv) -{ - kvm_t *kd; - struct kinfo_proc *kp; - char errbuf[_POSIX2_LINE_MAX]; - int nentries, i, npids; - pid_t pids[8192]; - kd = kvm_openfiles("/dev/null", "/dev/null", NULL, O_RDONLY, errbuf); - if( kd == NULL ) - errx(1, "%s", errbuf); - - if ((kp = kvm_getprocs(kd, KERN_PROC_UID, BBSUID, &nentries)) == 0 || - nentries < 0) - errx(1, "%s", kvm_geterr(kd)); - - for( npids = 0, i = nentries ; --i >= 0 ; ++kp ){ - if( strncmp(kp->ki_comm, "mbbsd", 5) == 0 ){ - if( kp->ki_runtime > (60 * 1000000) ){ // 60 secs - kill(kp->ki_pid, 1); - pids[npids++] = kp->ki_pid; - printf("%d\n", kp->ki_pid); - } - } - } - - if( npids != 0 ){ - sleep(2); - while( --npids >= 0 ) - kill(pids[npids], 9); - } - - kvm_close(kd); - return 0; -} - -#endif diff --git a/util/lunar-1,15run.pl b/util/lunar-1,15run.pl deleted file mode 100644 index d4cd2f20..00000000 --- a/util/lunar-1,15run.pl +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/perl -use lib '/home/bbs/bin/'; -use LocalVars; -# ¨C¹A¾äªì¤@, ¤Q¤´N·|¶]¤@¦¸ $ARGV[0] -# ¸ê®Æ¨Ó·½ http://tw.weathers.yahoo.com/ -open FH, "$LYNX -source http://tw.weathers.yahoo.com/ | grep '¥Á°ê'|"; -$din = <FH>; -close FH; - -($month, $day) = $din =~ /¹A¾ä (.*?)¤ë (.*?)¤é/; -system("@ARGV") if( $day eq '¤@' || $day eq '¤@¤Q¤' ); diff --git a/util/testkenben.txt b/util/testkenben.txt deleted file mode 100644 index df3893d3..00000000 --- a/util/testkenben.txt +++ /dev/null @@ -1,11 +0,0 @@ -HCGH-306 ¦Ë¤k ¡·¦³¤K¨ö¡I¡I¡I 7/24 jennywen/molly -Foolshome ¹ÎÅé ¡·CCC~~~¤dÁH¦~ 1/14 truth/citizen/nathon -KHCHS-87-306·s²ø ¡·³£¶]¨ìþ¸Ì¥h¤F 6/12 -TGHS8714 «n¤k ¡·²z©Ê¤Ñ®ð¡F·P©Ê¥ 8/07 grassflying/EPOCH -PttDoc ¼Tù ¡·Ptt Document Pr 8/07 -Delphi µ{³] ¡·Delphi¨g·Q¦± 3/09 cying -ciacia_Her ¥xÆW ¡·ciacia¥Î¤å¦r¬D³ 8/16 sherbet -CS87Love ¤¤¤s ¡··R©O! 8/08 sylna/fancydream -Wanfang ¥xÆW ¡·´Nȱo¤F·R¸UªÚ 8/07 zkkk -KS87-308 ¶¯¤¤ ¡´¶¯¤¤¤K±¾¯Z¡m¤@¤ 8/07 SBT/shouhou - |