summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormhsin <mhsin@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-07-05 18:00:23 +0800
committermhsin <mhsin@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-07-05 18:00:23 +0800
commitcaa0b5092fb3f18492fbc24bdc3fe6d18edbedbe (patch)
tree61cf5e5078044247765525ade772d1c5d5448dee
parent2ca657c2e90fb4429b94edac0acaef2d5461d23d (diff)
downloadpttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.tar
pttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.tar.gz
pttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.tar.bz2
pttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.tar.lz
pttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.tar.xz
pttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.tar.zst
pttbbs-caa0b5092fb3f18492fbc24bdc3fe6d18edbedbe.zip
Fix file timestamping for vote report and innbbsd.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@4724 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/innbbsd/receive_article.c4
-rw-r--r--pttbbs/mbbsd/vote.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/pttbbs/innbbsd/receive_article.c b/pttbbs/innbbsd/receive_article.c
index becdda61..f79096b6 100644
--- a/pttbbs/innbbsd/receive_article.c
+++ b/pttbbs/innbbsd/receive_article.c
@@ -295,6 +295,7 @@ receive_article()
"OCAgIFNreXBlOmp1bnNreWVwCg==", "ooqq.bbs@bbs.wretch.cc",
"http://jsvcd.3cc.cc", "http://bestgirl.mytw.net", "http://98.to/",
"http://www.boss888.net", "amuro.bbs@bbs.csie.nctu.edu.tw",
+ "請問有需要幫忙報告.論文spss統計分析嗎",
"http://www.whymsi.com", "http://www.msi-team.com/", NULL};
#endif
@@ -739,7 +740,8 @@ post_article(homepath, userid, board, writebody, pathname, firstpath)
now = time(NULL);
while (1) {
- sprintf(name, "M.%ld.A", (long)++now);
+ /* TODO: extract record.c:stampfile_u() to common lib */
+ sprintf(name, "M.%ld.A.%3.3X", (long)++now, (unsigned int)(random() & 0xFFF));
sprintf(article, "%s/%s", homepath, name);
fh = open(article, O_CREAT | O_EXCL | O_WRONLY, 0644);
if (fh >= 0)
diff --git a/pttbbs/mbbsd/vote.c b/pttbbs/mbbsd/vote.c
index 39c5eb67..8eb2c756 100644
--- a/pttbbs/mbbsd/vote.c
+++ b/pttbbs/mbbsd/vote.c
@@ -144,7 +144,8 @@ vote_report(const char *bname, const char *fname, char *fpath)
dtime = now;
for (;;) {
- sprintf(ip, "M.%d.A", (int)++dtime);
+ /* TODO: extract record.c:stampfile_u() to common lib */
+ sprintf(ip, "M.%d.A.%3.3X", (int)++dtime, (unsigned int)(random() & 0xFFF));
fd = open(fpath, O_CREAT | O_EXCL | O_WRONLY, 0644);
if (fd >= 0)
break;
@@ -152,6 +153,7 @@ vote_report(const char *bname, const char *fname, char *fpath)
}
close(fd);
+ /* XXX: FIXME: Possible race condition */
unlink(fpath);
link(fname, fpath);