diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2007-12-02 16:22:10 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2007-12-02 16:22:10 +0800 |
commit | 0487a9a1af3e435516f8a938d1a8b960a32e11b7 (patch) | |
tree | 334f10927e9ba29c91b61c0711e597542c99762f | |
parent | 265caeebaf11f1ba546b8114c62356490c3b5444 (diff) | |
download | pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.tar pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.tar.gz pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.tar.bz2 pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.tar.lz pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.tar.xz pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.tar.zst pttbbs-0487a9a1af3e435516f8a938d1a8b960a32e11b7.zip |
- brc v3 update: ptt2's MAX_BOAORD reached uint16 limitation,
so expand board size at same time for brc v3.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3610 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | docs/brc.txt | 3 | ||||
-rw-r--r-- | mbbsd/brc.c | 18 |
2 files changed, 15 insertions, 6 deletions
diff --git a/docs/brc.txt b/docs/brc.txt index d64f7918..954ea5f2 100644 --- a/docs/brc.txt +++ b/docs/brc.txt @@ -58,6 +58,9 @@ v3 說明 由於 v2 v3 實際差異並不大,這裡的說明保留以 v2 為主。 麻煩自己查 svn 就知道 v3 改了哪邊了。 + - ptt2 更換 brc V3 前夕, MAX_BOARD 到達上限 (42000),討論後決定順便把 brc V3 + 設計成 brcbid_t = int32。 + BRC v2 實作 diff --git a/mbbsd/brc.c b/mbbsd/brc.c index 0d93169b..7d35018c 100644 --- a/mbbsd/brc.c +++ b/mbbsd/brc.c @@ -20,8 +20,8 @@ please rewrite brc.c #endif -typedef unsigned short brcbid_t; -typedef unsigned short brcnbrd_t; +typedef uint32_t brcbid_t; +typedef uint16_t brcnbrd_t; typedef struct { time4_t create; @@ -261,6 +261,9 @@ read_brc2(void) size_t sz2 = 0, sz3 = 0; char *cvt = NULL, *cvthead = NULL; + // brc v2 is using 16 bit for brcbid_t and brcnbrd_t. + uint16_t bid2, num2; + brcbid_t bid; brcnbrd_t num; time4_t create; @@ -277,13 +280,16 @@ read_brc2(void) cvthead = cvt = malloc (sz3); // now calculate real sz3 - while (read(fd, &bid, sizeof(bid)) > 0) + while (read(fd, &bid2, sizeof(bid2)) > 0) { - if (read(fd, &num, sizeof(num)) < 1) + if (read(fd, &num2, sizeof(num2)) < 1) break; - *(brcbid_t*)cvt = bid; cvt += sizeof(brcbid_t); - *(brcnbrd_t*)cvt = num;cvt += sizeof(brcnbrd_t); + bid = bid2; + num = num2; + + *(brcbid_t*) cvt = bid; cvt += sizeof(brcbid_t); + *(brcnbrd_t*)cvt = num; cvt += sizeof(brcnbrd_t); for (; num > 0; num--) { |