From b2877fff319beb00978f9c668aec66dd638d9dff Mon Sep 17 00:00:00 2001 From: John Kohl Date: Tue, 19 Jul 1988 06:16:27 +0000 Subject: fix problem in restricting classes which have same hash value --- server/class.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'server/class.c') diff --git a/server/class.c b/server/class.c index 8a12b7d..d51a9c1 100644 --- a/server/class.c +++ b/server/class.c @@ -394,8 +394,17 @@ ZAcl_t *acl; class_bucket[hashval] = ptr2; return(ZERR_NONE); - } else - return(ZSRV_CLASSXISTS); + } else { + for (ptr2 = ptr->q_forw; ptr2 != ptr; ptr2 = ptr2->q_forw) + /* walk down the list, looking for a match */ + if (!strcmp(ptr2->zct_classname, class)) + return(ZSRV_CLASSXISTS); + if (!(ptr2 = class_alloc(class))) + return(ENOMEM); + ptr2->zct_acl = acl; + xinsque(ptr2, ptr); + return(ZERR_NONE); + } } /* private routines */ -- cgit v1.2.3