diff options
author | John Kohl <jtkohl@mit.edu> | 1988-07-19 06:16:27 +0000 |
---|---|---|
committer | John Kohl <jtkohl@mit.edu> | 1988-07-19 06:16:27 +0000 |
commit | b2877fff319beb00978f9c668aec66dd638d9dff (patch) | |
tree | 1acc8a231431c5d110e8cc845f740e0ae2254d89 /server | |
parent | d0553a544500ee433a4419bba318e3338f4cfcc4 (diff) |
fix problem in restricting classes which have same hash value
Diffstat (limited to 'server')
-rw-r--r-- | server/class.c | 13 |
1 files changed, 11 insertions, 2 deletions
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 */ |