diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2008-04-09 23:35:48 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2008-04-09 23:35:48 +0800 |
commit | f680ef20c2d16966a408c56608b28c1e014c2105 (patch) | |
tree | c2fcf02c6d4cb8147e9ea8f5ed219348b9264970 /mbbsd/bbs.c | |
parent | 2320c0c0743af362779009ae09dee8053df9738b (diff) | |
download | pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.tar pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.tar.gz pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.tar.bz2 pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.tar.lz pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.tar.xz pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.tar.zst pttbbs-f680ef20c2d16966a408c56608b28c1e014c2105.zip |
- restrict VIOLATE_LAW cross-posting
- add owner/delete in SAFEDEL title as log
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4118 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/bbs.c')
-rw-r--r-- | mbbsd/bbs.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index 90538221..e99874a1 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -770,9 +770,7 @@ delete_allpost(const char *userid) setbfile(file, BN_ALLPOST, fhdr.filename); unlink(file); - sprintf(fhdr.title, "(本文已被刪除)"); - strcpy(fhdr.filename, ".deleted"); - strcpy(fhdr.owner, "-"); + set_safedel_fhdr(&fhdr); lseek(fd, sizeof(fileheader_t) * i, SEEK_SET); write(fd, &fhdr, sizeof(fileheader_t)); } @@ -1730,7 +1728,11 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) bp = getbcache(currbid); if (bp && (bp->brdattr & BRD_VOTEBOARD) ) - return FULLUPDATE; + return DONOTHING; + + // if file is SAFE_DELETED, skip it. + if (fhdr->owner[0] == '-' && fhdr->owner[1] == 0) + return DONOTHING; setbfile(fname, currboard, fhdr->filename); if (!dashf(fname)) @@ -1756,6 +1758,14 @@ cross_post(int ent, fileheader_t * fhdr, const char *direct) } #endif // USE_AUTOCPLOG + // XXX TODO 為避免違法使用者大量對申訴板轉文,限定每次發文量。 + if (HasUserPerm(PERM_VIOLATELAW)) + { + static int violatecp = 0; + if (violatecp++ >= MAX_CROSSNUM) + return DONOTHING; + } + move(2, 0); clrtoeol(); if (postrecord.times > 1) |