diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-09-14 09:58:13 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2009-09-14 09:58:13 +0800 |
commit | 7de888edf2ad8774e81fb0c481118bbf99c39aaa (patch) | |
tree | 79b5204810996b88c8e202aee0958e4e4ab8bb6e | |
parent | 801c017e356fa3173594e719719782e27907ccce (diff) | |
download | pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.tar pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.tar.gz pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.tar.bz2 pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.tar.lz pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.tar.xz pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.tar.zst pttbbs-7de888edf2ad8774e81fb0c481118bbf99c39aaa.zip |
* enable size tag in shm
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@4842 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/UPDATING | 4 | ||||
-rw-r--r-- | pttbbs/common/bbs/cache.c | 6 | ||||
-rw-r--r-- | pttbbs/include/pttstruct.h | 7 | ||||
-rw-r--r-- | pttbbs/util/uhash_loader.c | 1 |
4 files changed, 14 insertions, 4 deletions
diff --git a/pttbbs/UPDATING b/pttbbs/UPDATING index 863bf7ff..26967506 100644 --- a/pttbbs/UPDATING +++ b/pttbbs/UPDATING @@ -21,6 +21,10 @@ https://opensvn.csie.org/traccgi/pttbbs/changeset/2273 make r4826_numlogin ----------------------------------------------------------------------------- +r4841: [shm size tag] +由於站台設定變動後導致 SHM 大小不同 (eg, MAX_BOARDS) 然後有 utility 沒 build +到的問題再次發生,所以我們開啟了 size check. 請重 build 所有程式並重開 SHM。 + r4826: [numlogindays, lastseen] numlogins 的算法有調整,並且改名為 numlogindays; lastlogin 也多了一個叫 lastseen (別人 talk->query 到的值) diff --git a/pttbbs/common/bbs/cache.c b/pttbbs/common/bbs/cache.c index a23326bd..e224e5f4 100644 --- a/pttbbs/common/bbs/cache.c +++ b/pttbbs/common/bbs/cache.c @@ -104,6 +104,12 @@ attach_SHM(void) "or use ipcrm(1) command to clean share memory.\n"); exit(1); } + if(SHM->size != sizeof(SHM_t)) { + fprintf(stderr, "Error: SHM->size(%d) != sizeof(SHM_t)(%d)\n", SHM->size, sizeof(SHM_t)); + fprintf(stderr, "Please use the configuration corresponding to SHM,\n" + "or use ipcrm(1) command to clean share memory.\n"); + exit(1); + } if (!SHM->loaded) /* (uhash) assume fresh shared memory is * zeroed */ exit(1); diff --git a/pttbbs/include/pttstruct.h b/pttbbs/include/pttstruct.h index e9453f5a..6b76a965 100644 --- a/pttbbs/include/pttstruct.h +++ b/pttbbs/include/pttstruct.h @@ -482,13 +482,12 @@ typedef struct keeploc_t { // TODO // 哪天請好心人整理 shm: -// (1) 增加 shmsize // (2) userinfo_t 可以移掉一些已不用的 -#define SHM_VERSION 3276 +#define SHM_VERSION 4842 typedef struct { - int version; - // int shmsize; // TODO add this: sizeof(SHM_t), for verification + int version; // SHM_VERSION for verification + int size; // sizeof(SHM_t) for verification /* uhash */ /* uhash is a userid->uid hash table -- jochang */ diff --git a/pttbbs/util/uhash_loader.c b/pttbbs/util/uhash_loader.c index 8696b3c4..4fac0b21 100644 --- a/pttbbs/util/uhash_loader.c +++ b/pttbbs/util/uhash_loader.c @@ -45,6 +45,7 @@ void load_uhash(void) { if( err != EEXIST ) { SHM->number=SHM->loaded = 0; SHM->version = SHM_VERSION; + SHM->size = sizeof(SHM_t); } if(SHM->version != SHM_VERSION) { |