From 4a8851c2a5cb962eb43db0ad0eeb06e82974d6a6 Mon Sep 17 00:00:00 2001 From: kcwu Date: Fri, 25 Feb 2005 20:53:49 +0000 Subject: fix HASH_BITS checking condition. suggest to use bigger value if MAX_USERS is quite large. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2550 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- include/config.h | 4 ++++ include/pttstruct.h | 5 +---- mbbsd/cache.c | 7 ++++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/config.h b/include/config.h index 14b14d03..5b562c10 100644 --- a/include/config.h +++ b/include/config.h @@ -121,6 +121,10 @@ #define ADD_EXMAILBOX 0 /* 贈送信箱 */ #endif +#ifndef HASH_BITS +#define HASH_BITS 16 /* userid->uid hashing bits */ +#endif + /* more.c 中文章頁數上限(lines/22), +4 for safe */ #define MAX_PAGES (MAX_EDIT_LINE / 22 + 4) diff --git a/include/pttstruct.h b/include/pttstruct.h index 26eacc51..e0259c40 100644 --- a/include/pttstruct.h +++ b/include/pttstruct.h @@ -280,10 +280,6 @@ typedef struct fileheader_t { #define STRLEN 80 /* Length of most string data */ -/* uhash is a userid->uid hash table -- jochang */ - -#define HASH_BITS 16 - union xitem_t { struct { /* bbs_item */ char fdate[9]; /* [mm/dd/yy] */ @@ -466,6 +462,7 @@ typedef struct keeploc_t { typedef struct { int version; /* uhash */ + /* uhash is a userid->uid hash table -- jochang */ char userid[MAX_USERS][IDLEN + 1]; char gap_1[IDLEN+1]; int next_in_hash[MAX_USERS]; diff --git a/mbbsd/cache.c b/mbbsd/cache.c index 4345e282..493b9b91 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -150,9 +150,6 @@ add_to_uhash(int n, char *id) int *p, h = StringHash(id)%(1<userid[n], id, sizeof(SHM->userid[n])); -#if (1<hash_head[h]); @@ -186,6 +183,10 @@ remove_from_uhash(int n) *p = SHM->next_in_hash[n]; } +#if (1<