Re: [M3] ㄏみ者戈挾l^存的bug.
※ 引述《itoc.bbs@bbs.cs.nthu.edu.tw (Query M3)》之銘言:
> usr_fpath(fpath, cuser.userid, fn_acct);
> - fd = open(fpath, O_WRONLY);
> - write(fd, &cuser, sizeof(ACCT));
> - close(fd);
> + if ((fd = open(fpath, O_RDWR)) >= 0)
> + {
> + ACCT tuser;
> + if (read(fd, &tuser, sizeof(ACCT)) == sizeof(ACCT))
> + {
> /* itoc.010805.注解: 這次的寫回 .ACCT 是為了讓別人 Query 線上使用者時
> 出現的上站時間/來源正確,以及回存正確的 userlvel */
> + tuser.userlevel = cuser.userlevel;
> + tuser.lastlogin = start;
> + strcpy(tuser.lasthost, cuser.lasthost);
這樣似乎不夠,要寫回的應該還包括:
tuser.numlogins = cuser.numlogins;
tuser.ufo = cuser.ufo;
tuser.tcheck = cuser.tcheck;
tuser.tvalid = cuser.tvalid;
> + lseek(fd, (off_t) 0, SEEK_SET);
> + write(fd, &tuser, sizeof(ACCT));
> + }
> + close(fd);
--
※ Origin: 明月水軒 <bbs.hightman.net>
◆ From: 192.168.3.1
Maple 近期熱門文章
PTT數位生活區 即時熱門文章