summaryrefslogtreecommitdiffstats
path: root/mbbsd/bbs.c
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-04-09 23:35:48 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2008-04-09 23:35:48 +0800
commitf680ef20c2d16966a408c56608b28c1e014c2105 (patch)
treec2fcf02c6d4cb8147e9ea8f5ed219348b9264970 /mbbsd/bbs.c
parent2320c0c0743af362779009ae09dee8053df9738b (diff)
downloadpttbbs-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.c18
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)