diff options
-rw-r--r-- | include/pttstruct.h | 6 | ||||
-rw-r--r-- | mbbsd/assess.c | 4 | ||||
-rw-r--r-- | mbbsd/mbbsd.c | 10 | ||||
-rw-r--r-- | util/shmctl.c | 2 |
4 files changed, 18 insertions, 4 deletions
diff --git a/include/pttstruct.h b/include/pttstruct.h index dd9e4b6c..9b9efe72 100644 --- a/include/pttstruct.h +++ b/include/pttstruct.h @@ -262,8 +262,10 @@ typedef struct userinfo_t { /* 好友比較的cache 前兩個bit是狀態 */ int reject[MAX_REJECT]; - int idoffset; /* shm id上的 offset */ - /* idoffset 好像沒用到 */ + unsigned char goodpost; /* 評價為好文章數 */ + unsigned char badpost; /* 評價為壞文章數 */ + unsigned char goodsale; /* 競標 好的評價 */ + unsigned char badsale; /* 競標 壞的評價 */ int lock; int friendtotal; /* 好友比較的cache 大小 */ diff --git a/mbbsd/assess.c b/mbbsd/assess.c index 957d3042..95426e26 100644 --- a/mbbsd/assess.c +++ b/mbbsd/assess.c @@ -17,6 +17,7 @@ int inc_goodpost(int uid, int num) { passwd_query(uid, &xuser); inc(&xuser.goodpost, num); + SHM->uinfo[uid - 1].goodpost = xuser.goodpost; passwd_update(uid, &xuser); return xuser.goodpost; } @@ -25,6 +26,7 @@ int inc_badpost(int uid, int num) { passwd_query(uid, &xuser); inc(&xuser.badpost, num); + SHM->uinfo[uid - 1].badpost = xuser.badpost; passwd_update(uid, &xuser); return xuser.badpost; } @@ -33,6 +35,7 @@ int inc_goodsale(int uid, int num) { passwd_query(uid, &xuser); inc(&xuser.goodsale, num); + SHM->uinfo[uid - 1].goodsale = xuser.goodsale; passwd_update(uid, &xuser); return xuser.goodsale; } @@ -41,6 +44,7 @@ int inc_badsale(int uid, int num) { passwd_query(uid, &xuser); inc(&xuser.badsale, num); + SHM->uinfo[uid - 1].badsale = xuser.badsale; passwd_update(uid, &xuser); return xuser.badsale; } diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index edd2f36d..a985c2bf 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -150,6 +150,11 @@ u_exit(char *mode) setflags(CLOAK_FLAG, currutmp->invisible); save_brdbuf(); + cuser.goodpost = currutmp->goodpost; + cuser.badpost = currutmp->badpost; + cuser.goodsale = currutmp->goodsale; + cuser.badsale = currutmp->badsale; + cuser.invisible = currutmp->invisible; cuser.pager = currutmp->pager; memcpy(cuser.mind, currutmp->mind, 4); @@ -722,6 +727,11 @@ setup_utmp(int mode) uinfo.mode = currstat = mode; uinfo.mailalert = load_mailalert(cuser.userid); + uinfo.goodpost = cuser.goodpost; + uinfo.badpost = cuser.badpost; + uinfo.goodsale = cuser.goodsale; + uinfo.badsale = cuser.badsale; + uinfo.userlevel = cuser.userlevel; uinfo.sex = cuser.sex % 8; uinfo.lastact = time(NULL); diff --git a/util/shmctl.c b/util/shmctl.c index 357b24a1..74cf3e12 100644 --- a/util/shmctl.c +++ b/util/shmctl.c @@ -231,8 +231,6 @@ inline void utmpsort(int sortall) } SHM->UTMPnumber = count; qsort(SHM->sorted[ns][0], count, sizeof(userinfo_t *), cmputmpuserid); - for (i = 0; i < count; ++i) - ((userinfo_t *) SHM->sorted[ns][0][i])->idoffset = i; memcpy(SHM->sorted[ns][6], SHM->sorted[ns][0], sizeof(userinfo_t *) * count); memcpy(SHM->sorted[ns][7], |