diff options
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/bbs.c | 23 | ||||
-rw-r--r-- | mbbsd/user.c | 1 |
2 files changed, 20 insertions, 4 deletions
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c index e8d9fa02..20b2327e 100644 --- a/mbbsd/bbs.c +++ b/mbbsd/bbs.c @@ -75,7 +75,7 @@ anticrosspost(void) mail_id(cuser.userid, "Cross-Post»@³æ", "etc/crosspost.txt", "Pttĵ¹î³¡¶¤"); if ((now - cuser.firstlogin) / 86400 < 14) - delete_allpost(); + delete_allpost(cuser.userid); kick_all(cuser.userid); // XXX: in2: wait for testing u_exit("Cross Post"); exit(0); @@ -592,16 +592,19 @@ deleteCrossPost(fileheader_t *fh, char *bname) } void -delete_allpost() +delete_allpost(char *userid) { fileheader_t fhdr; int fd, i; char bdir[MAXPATHLEN]="", file[MAXPATHLEN]=""; + + if(!userid) return; + setbdir(bdir, ALLPOST); if( (fd = open(bdir, O_RDWR)) != -1) { for(i=0; read(fd, &fhdr, sizeof(fileheader_t)) >0; i++){ - if(strcmp(fhdr.owner, cuser.userid)) + if(strcmp(fhdr.owner, userid)) continue; deleteCrossPost(&fhdr, ALLPOST); setbfile(file, ALLPOST, fhdr.filename); @@ -939,7 +942,19 @@ do_general(int isbid) append_record(genbuf,(void*) &bidinfo, sizeof(bidinfo)); postfile.filemode |= FILE_BID ; } - if (append_record(buf, &postfile, sizeof(postfile)) != -1) { + strcpy(genbuf, fpath); + setbpath(fpath, currboard); + stampfile(fpath, &postfile); + // Ptt: stamp file again to make it order + // fix the bug that search failure in getindex + // + if (append_record(buf, &postfile, sizeof(postfile)) == -1) + { + unlink(genbuf); + } + else + { + rename(genbuf, fpath); setbtotal(currbid); if( currmode & MODE_SELECT ) diff --git a/mbbsd/user.c b/mbbsd/user.c index a43b1d7c..3a3c396f 100644 --- a/mbbsd/user.c +++ b/mbbsd/user.c @@ -24,6 +24,7 @@ kill_user(int num, const char *userid) sethomepath(src, userid); snprintf(dst, sizeof(dst), "tmp/%s", userid); friend_delete_all(userid, FRIEND_ALOHA); + delete_allpost(userid); if (dashd(src) && Rename(src, dst) == 0) { snprintf(src, sizeof(src), "/bin/rm -fr home/%c/%s >/dev/null 2>&1", userid[0], userid); system(src); |